diff mbox series

mmc: sdhci-msm: detect if tassadar_dll is used by using core version

Message ID 20201111220122.2392823-1-dmitry.baryshkov@linaro.org
State Accepted
Commit 8ffbfe43e903775832484c3ca9773ae07845d478
Headers show
Series mmc: sdhci-msm: detect if tassadar_dll is used by using core version | expand

Commit Message

Dmitry Baryshkov Nov. 11, 2020, 10:01 p.m. UTC
Detect if tassadar_dll is required by using core version rather than
just specifying it in the sdhci_msm_variant_info.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>

Cc: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
---
 drivers/mmc/host/sdhci-msm.c | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

-- 
2.28.0

Comments

Dmitry Baryshkov Nov. 12, 2020, 12:44 p.m. UTC | #1
On Thu, 12 Nov 2020 at 08:59, Veerabhadrarao Badiganti
<vbadigan@codeaurora.org> wrote:
>

>

> On 11/12/2020 3:31 AM, Dmitry Baryshkov wrote:

> > Detect if tassadar_dll is required by using core version rather than

> > just specifying it in the sdhci_msm_variant_info.

> >

> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>

> > Cc: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>

> > ---

> >   drivers/mmc/host/sdhci-msm.c | 15 +++++----------

> >   1 file changed, 5 insertions(+), 10 deletions(-)

> >

> > diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c

> > index 3451eb325513..dd67acab1660 100644

> > --- a/drivers/mmc/host/sdhci-msm.c

> > +++ b/drivers/mmc/host/sdhci-msm.c

> > @@ -248,7 +248,6 @@ struct sdhci_msm_variant_ops {

> >   struct sdhci_msm_variant_info {

> >       bool mci_removed;

> >       bool restore_dll_config;

> > -     bool uses_tassadar_dll;

> >       const struct sdhci_msm_variant_ops *var_ops;

> >       const struct sdhci_msm_offset *offset;

> >   };

> > @@ -2154,18 +2153,11 @@ static const struct sdhci_msm_variant_info sdm845_sdhci_var = {

> >       .offset = &sdhci_msm_v5_offset,

> >   };

> >

> > -static const struct sdhci_msm_variant_info sm8250_sdhci_var = {

> > -     .mci_removed = true,

> > -     .uses_tassadar_dll = true,

> > -     .var_ops = &v5_var_ops,

> > -     .offset = &sdhci_msm_v5_offset,

> > -};

> > -

> >   static const struct of_device_id sdhci_msm_dt_match[] = {

> >       {.compatible = "qcom,sdhci-msm-v4", .data = &sdhci_msm_mci_var},

> >       {.compatible = "qcom,sdhci-msm-v5", .data = &sdhci_msm_v5_var},

> >       {.compatible = "qcom,sdm845-sdhci", .data = &sdm845_sdhci_var},

> > -     {.compatible = "qcom,sm8250-sdhci", .data = &sm8250_sdhci_var},

> > +     {.compatible = "qcom,sm8250-sdhci", .data = &sdm845_sdhci_var},

> Since you have made it 'uses_tassadar_dll' check generic,

> SM8250 should work with default compatible string (qcom,sdhci-msm-v5).

> We can drop the entry to SM8250 from this table.


Does SM8250 need restore_dll_config like sdm845/sc7180?

> >       {.compatible = "qcom,sc7180-sdhci", .data = &sdm845_sdhci_var},

> >       {},

> >   };

> > @@ -2249,7 +2241,6 @@ static int sdhci_msm_probe(struct platform_device *pdev)

> >       msm_host->restore_dll_config = var_info->restore_dll_config;

> >       msm_host->var_ops = var_info->var_ops;

> >       msm_host->offset = var_info->offset;

> > -     msm_host->uses_tassadar_dll = var_info->uses_tassadar_dll;

> >

> >       msm_offset = msm_host->offset;

> >

> > @@ -2396,6 +2387,10 @@ static int sdhci_msm_probe(struct platform_device *pdev)

> >       if (core_major == 1 && core_minor >= 0x49)

> >               msm_host->updated_ddr_cfg = true;

> >

> > +     if (core_major == 1 &&

> > +         (core_minor == 0x6e || core_minor == 0x71 || core_minor == 0x72))

> > +             msm_host->uses_tassadar_dll = true;

> > +

> This new registers that got introduced for supporting this new DLL are

> present on all versions > 0x71

> So we can update check as core_minor >= 0x71.

>

> And i dont find any target with SDCC controller minor version 0x6e.So we

> can remove check for version 0x6e.


I was basing this patch on the published 4.19 tree, which checks for
0x6e. I'll drop it from v2.

> >       ret = sdhci_msm_register_vreg(msm_host);

> >       if (ret)

> >               goto clk_disable;




-- 
With best wishes
Dmitry
Veerabhadrarao Badiganti Nov. 12, 2020, 12:59 p.m. UTC | #2
On 11/12/2020 6:14 PM, Dmitry Baryshkov wrote:
> On Thu, 12 Nov 2020 at 08:59, Veerabhadrarao Badiganti

> <vbadigan@codeaurora.org> wrote:

>>

>> On 11/12/2020 3:31 AM, Dmitry Baryshkov wrote:

>>> Detect if tassadar_dll is required by using core version rather than

>>> just specifying it in the sdhci_msm_variant_info.

>>>

>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>

>>> Cc: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>

>>> ---

>>>    drivers/mmc/host/sdhci-msm.c | 15 +++++----------

>>>    1 file changed, 5 insertions(+), 10 deletions(-)

>>>

>>> diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c

>>> index 3451eb325513..dd67acab1660 100644

>>> --- a/drivers/mmc/host/sdhci-msm.c

>>> +++ b/drivers/mmc/host/sdhci-msm.c

>>> @@ -248,7 +248,6 @@ struct sdhci_msm_variant_ops {

>>>    struct sdhci_msm_variant_info {

>>>        bool mci_removed;

>>>        bool restore_dll_config;

>>> -     bool uses_tassadar_dll;

>>>        const struct sdhci_msm_variant_ops *var_ops;

>>>        const struct sdhci_msm_offset *offset;

>>>    };

>>> @@ -2154,18 +2153,11 @@ static const struct sdhci_msm_variant_info sdm845_sdhci_var = {

>>>        .offset = &sdhci_msm_v5_offset,

>>>    };

>>>

>>> -static const struct sdhci_msm_variant_info sm8250_sdhci_var = {

>>> -     .mci_removed = true,

>>> -     .uses_tassadar_dll = true,

>>> -     .var_ops = &v5_var_ops,

>>> -     .offset = &sdhci_msm_v5_offset,

>>> -};

>>> -

>>>    static const struct of_device_id sdhci_msm_dt_match[] = {

>>>        {.compatible = "qcom,sdhci-msm-v4", .data = &sdhci_msm_mci_var},

>>>        {.compatible = "qcom,sdhci-msm-v5", .data = &sdhci_msm_v5_var},

>>>        {.compatible = "qcom,sdm845-sdhci", .data = &sdm845_sdhci_var},

>>> -     {.compatible = "qcom,sm8250-sdhci", .data = &sm8250_sdhci_var},

>>> +     {.compatible = "qcom,sm8250-sdhci", .data = &sdm845_sdhci_var},

>> Since you have made it 'uses_tassadar_dll' check generic,

>> SM8250 should work with default compatible string (qcom,sdhci-msm-v5).

>> We can drop the entry to SM8250 from this table.

> Does SM8250 need restore_dll_config like sdm845/sc7180?

No. Its not needed.
>>>        {.compatible = "qcom,sc7180-sdhci", .data = &sdm845_sdhci_var},

>>>        {},

>>>    };

>>> @@ -2249,7 +2241,6 @@ static int sdhci_msm_probe(struct platform_device *pdev)

>>>        msm_host->restore_dll_config = var_info->restore_dll_config;

>>>        msm_host->var_ops = var_info->var_ops;

>>>        msm_host->offset = var_info->offset;

>>> -     msm_host->uses_tassadar_dll = var_info->uses_tassadar_dll;

>>>

>>>        msm_offset = msm_host->offset;

>>>

>>> @@ -2396,6 +2387,10 @@ static int sdhci_msm_probe(struct platform_device *pdev)

>>>        if (core_major == 1 && core_minor >= 0x49)

>>>                msm_host->updated_ddr_cfg = true;

>>>

>>> +     if (core_major == 1 &&

>>> +         (core_minor == 0x6e || core_minor == 0x71 || core_minor == 0x72))

>>> +             msm_host->uses_tassadar_dll = true;

>>> +

>> This new registers that got introduced for supporting this new DLL are

>> present on all versions > 0x71

>> So we can update check as core_minor >= 0x71.

>>

>> And i dont find any target with SDCC controller minor version 0x6e.So we

>> can remove check for version 0x6e.

> I was basing this patch on the published 4.19 tree, which checks for

> 0x6e. I'll drop it from v2.


Correct. In qcom downstream code, 0x6e version check was wrongly added.

>>>        ret = sdhci_msm_register_vreg(msm_host);

>>>        if (ret)

>>>                goto clk_disable;

>

>
diff mbox series

Patch

diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c
index 3451eb325513..dd67acab1660 100644
--- a/drivers/mmc/host/sdhci-msm.c
+++ b/drivers/mmc/host/sdhci-msm.c
@@ -248,7 +248,6 @@  struct sdhci_msm_variant_ops {
 struct sdhci_msm_variant_info {
 	bool mci_removed;
 	bool restore_dll_config;
-	bool uses_tassadar_dll;
 	const struct sdhci_msm_variant_ops *var_ops;
 	const struct sdhci_msm_offset *offset;
 };
@@ -2154,18 +2153,11 @@  static const struct sdhci_msm_variant_info sdm845_sdhci_var = {
 	.offset = &sdhci_msm_v5_offset,
 };
 
-static const struct sdhci_msm_variant_info sm8250_sdhci_var = {
-	.mci_removed = true,
-	.uses_tassadar_dll = true,
-	.var_ops = &v5_var_ops,
-	.offset = &sdhci_msm_v5_offset,
-};
-
 static const struct of_device_id sdhci_msm_dt_match[] = {
 	{.compatible = "qcom,sdhci-msm-v4", .data = &sdhci_msm_mci_var},
 	{.compatible = "qcom,sdhci-msm-v5", .data = &sdhci_msm_v5_var},
 	{.compatible = "qcom,sdm845-sdhci", .data = &sdm845_sdhci_var},
-	{.compatible = "qcom,sm8250-sdhci", .data = &sm8250_sdhci_var},
+	{.compatible = "qcom,sm8250-sdhci", .data = &sdm845_sdhci_var},
 	{.compatible = "qcom,sc7180-sdhci", .data = &sdm845_sdhci_var},
 	{},
 };
@@ -2249,7 +2241,6 @@  static int sdhci_msm_probe(struct platform_device *pdev)
 	msm_host->restore_dll_config = var_info->restore_dll_config;
 	msm_host->var_ops = var_info->var_ops;
 	msm_host->offset = var_info->offset;
-	msm_host->uses_tassadar_dll = var_info->uses_tassadar_dll;
 
 	msm_offset = msm_host->offset;
 
@@ -2396,6 +2387,10 @@  static int sdhci_msm_probe(struct platform_device *pdev)
 	if (core_major == 1 && core_minor >= 0x49)
 		msm_host->updated_ddr_cfg = true;
 
+	if (core_major == 1 &&
+	    (core_minor == 0x6e || core_minor == 0x71 || core_minor == 0x72))
+		msm_host->uses_tassadar_dll = true;
+
 	ret = sdhci_msm_register_vreg(msm_host);
 	if (ret)
 		goto clk_disable;