2023-03-06 17:20:56

by Lux Aliaga

[permalink] [raw]
Subject: [PATCH v7 3/6] phy: qcom-qmp: Add SM6125 UFS PHY support

The SM6125 UFS PHY is compatible with the one from SM6115. Add a
compatible for it and modify the config from SM6115 to make them
compatible with the SC8280XP binding

Signed-off-by: Lux Aliaga <[email protected]>
Reviewed-by: Martin Botka <[email protected]>
---
drivers/phy/qualcomm/phy-qcom-qmp-ufs.c | 12 ++++++++++++
1 file changed, 12 insertions(+)

diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
index 318eea35b972..44c29fdfc551 100644
--- a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
+++ b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
@@ -620,6 +620,13 @@ static const char * const qmp_phy_vreg_l[] = {
"vdda-phy", "vdda-pll",
};

+static const struct qmp_ufs_offsets qmp_ufs_offsets_v3_660 = {
+ .serdes = 0,
+ .pcs = 0xc00,
+ .tx = 0x400,
+ .rx = 0x600,
+};
+
static const struct qmp_ufs_offsets qmp_ufs_offsets_v5 = {
.serdes = 0,
.pcs = 0xc00,
@@ -693,6 +700,8 @@ static const struct qmp_phy_cfg sdm845_ufsphy_cfg = {
static const struct qmp_phy_cfg sm6115_ufsphy_cfg = {
.lanes = 1,

+ .offsets = &qmp_ufs_offsets_v3_660,
+
.serdes_tbl = sm6115_ufsphy_serdes_tbl,
.serdes_tbl_num = ARRAY_SIZE(sm6115_ufsphy_serdes_tbl),
.tx_tbl = sm6115_ufsphy_tx_tbl,
@@ -1172,6 +1181,9 @@ static const struct of_device_id qmp_ufs_of_match_table[] = {
}, {
.compatible = "qcom,sm6115-qmp-ufs-phy",
.data = &sm6115_ufsphy_cfg,
+ }, {
+ .compatible = "qcom,sm6125-qmp-ufs-phy",
+ .data = &sm6115_ufsphy_cfg,
}, {
.compatible = "qcom,sm6350-qmp-ufs-phy",
.data = &sdm845_ufsphy_cfg,
--
2.39.2



2023-03-08 10:10:03

by Konrad Dybcio

[permalink] [raw]
Subject: Re: [PATCH v7 3/6] phy: qcom-qmp: Add SM6125 UFS PHY support



On 6.03.2023 18:08, Lux Aliaga wrote:
> The SM6125 UFS PHY is compatible with the one from SM6115. Add a
> compatible for it and modify the config from SM6115 to make them
> compatible with the SC8280XP binding
>
> Signed-off-by: Lux Aliaga <[email protected]>
> Reviewed-by: Martin Botka <[email protected]>
> ---
> drivers/phy/qualcomm/phy-qcom-qmp-ufs.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
> index 318eea35b972..44c29fdfc551 100644
> --- a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
> +++ b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
> @@ -620,6 +620,13 @@ static const char * const qmp_phy_vreg_l[] = {
> "vdda-phy", "vdda-pll",
> };
>
> +static const struct qmp_ufs_offsets qmp_ufs_offsets_v3_660 = {
> + .serdes = 0,
> + .pcs = 0xc00,
> + .tx = 0x400,
> + .rx = 0x600,
> +};
> +
> static const struct qmp_ufs_offsets qmp_ufs_offsets_v5 = {
> .serdes = 0,
> .pcs = 0xc00,
> @@ -693,6 +700,8 @@ static const struct qmp_phy_cfg sdm845_ufsphy_cfg = {
> static const struct qmp_phy_cfg sm6115_ufsphy_cfg = {
> .lanes = 1,
>
> + .offsets = &qmp_ufs_offsets_v3_660,
Will this not trigger OOB r/w for the users of qcom,sm6115-smp-ufs-phy
which specify the regions separately (old binding style)?

Konrad
> +
> .serdes_tbl = sm6115_ufsphy_serdes_tbl,
> .serdes_tbl_num = ARRAY_SIZE(sm6115_ufsphy_serdes_tbl),
> .tx_tbl = sm6115_ufsphy_tx_tbl,
> @@ -1172,6 +1181,9 @@ static const struct of_device_id qmp_ufs_of_match_table[] = {
> }, {
> .compatible = "qcom,sm6115-qmp-ufs-phy",
> .data = &sm6115_ufsphy_cfg,
> + }, {
> + .compatible = "qcom,sm6125-qmp-ufs-phy",
> + .data = &sm6115_ufsphy_cfg,
> }, {
> .compatible = "qcom,sm6350-qmp-ufs-phy",
> .data = &sdm845_ufsphy_cfg,

2023-03-08 11:02:14

by Johan Hovold

[permalink] [raw]
Subject: Re: [PATCH v7 3/6] phy: qcom-qmp: Add SM6125 UFS PHY support

On Wed, Mar 08, 2023 at 11:09:48AM +0100, Konrad Dybcio wrote:
>
>
> On 6.03.2023 18:08, Lux Aliaga wrote:
> > The SM6125 UFS PHY is compatible with the one from SM6115. Add a
> > compatible for it and modify the config from SM6115 to make them
> > compatible with the SC8280XP binding
> >
> > Signed-off-by: Lux Aliaga <[email protected]>
> > Reviewed-by: Martin Botka <[email protected]>
> > ---
> > drivers/phy/qualcomm/phy-qcom-qmp-ufs.c | 12 ++++++++++++
> > 1 file changed, 12 insertions(+)
> >
> > diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
> > index 318eea35b972..44c29fdfc551 100644
> > --- a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
> > +++ b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
> > @@ -620,6 +620,13 @@ static const char * const qmp_phy_vreg_l[] = {
> > "vdda-phy", "vdda-pll",
> > };
> >
> > +static const struct qmp_ufs_offsets qmp_ufs_offsets_v3_660 = {
> > + .serdes = 0,
> > + .pcs = 0xc00,
> > + .tx = 0x400,
> > + .rx = 0x600,
> > +};
> > +
> > static const struct qmp_ufs_offsets qmp_ufs_offsets_v5 = {
> > .serdes = 0,
> > .pcs = 0xc00,
> > @@ -693,6 +700,8 @@ static const struct qmp_phy_cfg sdm845_ufsphy_cfg = {
> > static const struct qmp_phy_cfg sm6115_ufsphy_cfg = {
> > .lanes = 1,
> >
> > + .offsets = &qmp_ufs_offsets_v3_660,
> Will this not trigger OOB r/w for the users of qcom,sm6115-smp-ufs-phy
> which specify the regions separately (old binding style)?

No, that should work fine.

But looks like this series needs to be rebased on 6.3-rc1 as these
offsets are now already set in mainline.

Johan

2023-03-08 11:16:05

by Konrad Dybcio

[permalink] [raw]
Subject: Re: [PATCH v7 3/6] phy: qcom-qmp: Add SM6125 UFS PHY support



On 8.03.2023 12:02, Johan Hovold wrote:
> On Wed, Mar 08, 2023 at 11:09:48AM +0100, Konrad Dybcio wrote:
>>
>>
>> On 6.03.2023 18:08, Lux Aliaga wrote:
>>> The SM6125 UFS PHY is compatible with the one from SM6115. Add a
>>> compatible for it and modify the config from SM6115 to make them
>>> compatible with the SC8280XP binding
>>>
>>> Signed-off-by: Lux Aliaga <[email protected]>
>>> Reviewed-by: Martin Botka <[email protected]>
>>> ---
>>> drivers/phy/qualcomm/phy-qcom-qmp-ufs.c | 12 ++++++++++++
>>> 1 file changed, 12 insertions(+)
>>>
>>> diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
>>> index 318eea35b972..44c29fdfc551 100644
>>> --- a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
>>> +++ b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
>>> @@ -620,6 +620,13 @@ static const char * const qmp_phy_vreg_l[] = {
>>> "vdda-phy", "vdda-pll",
>>> };
>>>
>>> +static const struct qmp_ufs_offsets qmp_ufs_offsets_v3_660 = {
>>> + .serdes = 0,
>>> + .pcs = 0xc00,
>>> + .tx = 0x400,
>>> + .rx = 0x600,
>>> +};
>>> +
>>> static const struct qmp_ufs_offsets qmp_ufs_offsets_v5 = {
>>> .serdes = 0,
>>> .pcs = 0xc00,
>>> @@ -693,6 +700,8 @@ static const struct qmp_phy_cfg sdm845_ufsphy_cfg = {
>>> static const struct qmp_phy_cfg sm6115_ufsphy_cfg = {
>>> .lanes = 1,
>>>
>>> + .offsets = &qmp_ufs_offsets_v3_660,
>> Will this not trigger OOB r/w for the users of qcom,sm6115-smp-ufs-phy
>> which specify the regions separately (old binding style)?
>
> No, that should work fine.
So do you think the SM6115 binding could be updated too? Or should
we keep it as-is for ABI purposes?..

>
> But looks like this series needs to be rebased on 6.3-rc1 as these
> offsets are now already set in mainline.
..Or did you do that already and I can't find it?

Konrad
>
> Johan

2023-03-08 11:23:47

by Johan Hovold

[permalink] [raw]
Subject: Re: [PATCH v7 3/6] phy: qcom-qmp: Add SM6125 UFS PHY support

On Wed, Mar 08, 2023 at 12:15:39PM +0100, Konrad Dybcio wrote:
>
>
> On 8.03.2023 12:02, Johan Hovold wrote:
> > On Wed, Mar 08, 2023 at 11:09:48AM +0100, Konrad Dybcio wrote:
> >>
> >>
> >> On 6.03.2023 18:08, Lux Aliaga wrote:
> >>> The SM6125 UFS PHY is compatible with the one from SM6115. Add a
> >>> compatible for it and modify the config from SM6115 to make them
> >>> compatible with the SC8280XP binding
> >>>
> >>> Signed-off-by: Lux Aliaga <[email protected]>
> >>> Reviewed-by: Martin Botka <[email protected]>
> >>> ---
> >>> drivers/phy/qualcomm/phy-qcom-qmp-ufs.c | 12 ++++++++++++
> >>> 1 file changed, 12 insertions(+)
> >>>
> >>> diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
> >>> index 318eea35b972..44c29fdfc551 100644
> >>> --- a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
> >>> +++ b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
> >>> @@ -620,6 +620,13 @@ static const char * const qmp_phy_vreg_l[] = {
> >>> "vdda-phy", "vdda-pll",
> >>> };
> >>>
> >>> +static const struct qmp_ufs_offsets qmp_ufs_offsets_v3_660 = {
> >>> + .serdes = 0,
> >>> + .pcs = 0xc00,
> >>> + .tx = 0x400,
> >>> + .rx = 0x600,
> >>> +};
> >>> +
> >>> static const struct qmp_ufs_offsets qmp_ufs_offsets_v5 = {
> >>> .serdes = 0,
> >>> .pcs = 0xc00,
> >>> @@ -693,6 +700,8 @@ static const struct qmp_phy_cfg sdm845_ufsphy_cfg = {
> >>> static const struct qmp_phy_cfg sm6115_ufsphy_cfg = {
> >>> .lanes = 1,
> >>>
> >>> + .offsets = &qmp_ufs_offsets_v3_660,
> >> Will this not trigger OOB r/w for the users of qcom,sm6115-smp-ufs-phy
> >> which specify the regions separately (old binding style)?
> >
> > No, that should work fine.
> So do you think the SM6115 binding could be updated too? Or should
> we keep it as-is for ABI purposes?..

They could be and the possibility has been raised. I think it may be
more important to convert the old combo-phy binding (it's on my list,
but I keep getting preempted), but at some point we can get rid of the
legacy UFS binding as well.

> > But looks like this series needs to be rebased on 6.3-rc1 as these
> > offsets are now already set in mainline.
> ..Or did you do that already and I can't find it?

It seems a previous version of this patch was merged almost two months
ago.

9b9e29af984c ("phy: qcom-qmp: Add SM6125 UFS PHY support")

Not sure what failed here.

Johan

2023-03-08 11:35:00

by Konrad Dybcio

[permalink] [raw]
Subject: Re: [PATCH v7 3/6] phy: qcom-qmp: Add SM6125 UFS PHY support



On 8.03.2023 12:23, Johan Hovold wrote:
> On Wed, Mar 08, 2023 at 12:15:39PM +0100, Konrad Dybcio wrote:
>>
>>
>> On 8.03.2023 12:02, Johan Hovold wrote:
>>> On Wed, Mar 08, 2023 at 11:09:48AM +0100, Konrad Dybcio wrote:
>>>>
>>>>
>>>> On 6.03.2023 18:08, Lux Aliaga wrote:
>>>>> The SM6125 UFS PHY is compatible with the one from SM6115. Add a
>>>>> compatible for it and modify the config from SM6115 to make them
>>>>> compatible with the SC8280XP binding
>>>>>
>>>>> Signed-off-by: Lux Aliaga <[email protected]>
>>>>> Reviewed-by: Martin Botka <[email protected]>
>>>>> ---
>>>>> drivers/phy/qualcomm/phy-qcom-qmp-ufs.c | 12 ++++++++++++
>>>>> 1 file changed, 12 insertions(+)
>>>>>
>>>>> diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
>>>>> index 318eea35b972..44c29fdfc551 100644
>>>>> --- a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
>>>>> +++ b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
>>>>> @@ -620,6 +620,13 @@ static const char * const qmp_phy_vreg_l[] = {
>>>>> "vdda-phy", "vdda-pll",
>>>>> };
>>>>>
>>>>> +static const struct qmp_ufs_offsets qmp_ufs_offsets_v3_660 = {
>>>>> + .serdes = 0,
>>>>> + .pcs = 0xc00,
>>>>> + .tx = 0x400,
>>>>> + .rx = 0x600,
>>>>> +};
>>>>> +
>>>>> static const struct qmp_ufs_offsets qmp_ufs_offsets_v5 = {
>>>>> .serdes = 0,
>>>>> .pcs = 0xc00,
>>>>> @@ -693,6 +700,8 @@ static const struct qmp_phy_cfg sdm845_ufsphy_cfg = {
>>>>> static const struct qmp_phy_cfg sm6115_ufsphy_cfg = {
>>>>> .lanes = 1,
>>>>>
>>>>> + .offsets = &qmp_ufs_offsets_v3_660,
>>>> Will this not trigger OOB r/w for the users of qcom,sm6115-smp-ufs-phy
>>>> which specify the regions separately (old binding style)?
>>>
>>> No, that should work fine.
>> So do you think the SM6115 binding could be updated too? Or should
>> we keep it as-is for ABI purposes?..
>
> They could be and the possibility has been raised. I think it may be
> more important to convert the old combo-phy binding (it's on my list,
> but I keep getting preempted), but at some point we can get rid of the
> legacy UFS binding as well.
Okay sounds good!

>
>>> But looks like this series needs to be rebased on 6.3-rc1 as these
>>> offsets are now already set in mainline.
>> ..Or did you do that already and I can't find it?
>
> It seems a previous version of this patch was merged almost two months
> ago.
>
> 9b9e29af984c ("phy: qcom-qmp: Add SM6125 UFS PHY support")
>
> Not sure what failed here.
My eyes :)

Konrad
>
> Johan

2023-03-08 11:38:46

by Lux Aliaga

[permalink] [raw]
Subject: Re: [PATCH v7 3/6] phy: qcom-qmp: Add SM6125 UFS PHY support



On 8 March 2023 08:23:57 GMT-03:00, Johan Hovold <[email protected]> wrote:
>On Wed, Mar 08, 2023 at 12:15:39PM +0100, Konrad Dybcio wrote:
>>
>>
>> On 8.03.2023 12:02, Johan Hovold wrote:
>> > On Wed, Mar 08, 2023 at 11:09:48AM +0100, Konrad Dybcio wrote:
>> >>
>> >>
>> >> On 6.03.2023 18:08, Lux Aliaga wrote:
>> >>> The SM6125 UFS PHY is compatible with the one from SM6115. Add a
>> >>> compatible for it and modify the config from SM6115 to make them
>> >>> compatible with the SC8280XP binding
>> >>>
>> >>> Signed-off-by: Lux Aliaga <[email protected]>
>> >>> Reviewed-by: Martin Botka <[email protected]>
>> >>> ---
>> >>> drivers/phy/qualcomm/phy-qcom-qmp-ufs.c | 12 ++++++++++++
>> >>> 1 file changed, 12 insertions(+)
>> >>>
>> >>> diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
>> >>> index 318eea35b972..44c29fdfc551 100644
>> >>> --- a/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
>> >>> +++ b/drivers/phy/qualcomm/phy-qcom-qmp-ufs.c
>> >>> @@ -620,6 +620,13 @@ static const char * const qmp_phy_vreg_l[] = {
>> >>> "vdda-phy", "vdda-pll",
>> >>> };
>> >>>
>> >>> +static const struct qmp_ufs_offsets qmp_ufs_offsets_v3_660 = {
>> >>> + .serdes = 0,
>> >>> + .pcs = 0xc00,
>> >>> + .tx = 0x400,
>> >>> + .rx = 0x600,
>> >>> +};
>> >>> +
>> >>> static const struct qmp_ufs_offsets qmp_ufs_offsets_v5 = {
>> >>> .serdes = 0,
>> >>> .pcs = 0xc00,
>> >>> @@ -693,6 +700,8 @@ static const struct qmp_phy_cfg sdm845_ufsphy_cfg = {
>> >>> static const struct qmp_phy_cfg sm6115_ufsphy_cfg = {
>> >>> .lanes = 1,
>> >>>
>> >>> + .offsets = &qmp_ufs_offsets_v3_660,
>> >> Will this not trigger OOB r/w for the users of qcom,sm6115-smp-ufs-phy
>> >> which specify the regions separately (old binding style)?
>> >
>> > No, that should work fine.
>> So do you think the SM6115 binding could be updated too? Or should
>> we keep it as-is for ABI purposes?..
>
>They could be and the possibility has been raised. I think it may be
>more important to convert the old combo-phy binding (it's on my list,
>but I keep getting preempted), but at some point we can get rid of the
>legacy UFS binding as well.
>
>> > But looks like this series needs to be rebased on 6.3-rc1 as these
>> > offsets are now already set in mainline.
>> ..Or did you do that already and I can't find it?
>
>It seems a previous version of this patch was merged almost two months
>ago.
>
> 9b9e29af984c ("phy: qcom-qmp: Add SM6125 UFS PHY support")
>
>Not sure what failed here.
>
>Johan
Yes, but it received some comments regarding using v5 offsets instead of v3-660. I could spin off this change into a new patch if necessary.

2023-03-08 13:28:56

by Johan Hovold

[permalink] [raw]
Subject: Re: [PATCH v7 3/6] phy: qcom-qmp: Add SM6125 UFS PHY support

On Wed, Mar 08, 2023 at 08:37:48AM -0300, Lux Aliaga wrote:
> On 8 March 2023 08:23:57 GMT-03:00, Johan Hovold <[email protected]> wrote:

> >It seems a previous version of this patch was merged almost two months
> >ago.
> >
> > 9b9e29af984c ("phy: qcom-qmp: Add SM6125 UFS PHY support")
> >
> >Not sure what failed here.

> Yes, but it received some comments regarding using v5 offsets instead
> of v3-660. I could spin off this change into a new patch if necessary.

Once a patch has been applied, you generally need to do any further
changes incrementally on top.

It seems Dmitry renamed the struct himself after the patch was applied
in this case.

Johan