mbox series

[0/8] ata: ahci_brcm: Fixes and new device support

Message ID 20191210185351.14825-1-f.fainelli@gmail.com
Headers show
Series ata: ahci_brcm: Fixes and new device support | expand

Message

Florian Fainelli Dec. 10, 2019, 6:53 p.m. UTC
Hi Jens,

The first 4 patches are fixes and should ideally be queued up/picked up
by stable. The last 4 patches add support for BCM7216 which is one of
our latest devices supported by this driver.

Patch #2 does a few things, but it was pretty badly broken before and it
is hard not to fix all call sites (probe, suspend, resume) in one shot.

Please let me know if you have any comments.

Thanks!

Florian Fainelli (8):
  ata: libahci_platform: Export again ahci_platform_<en/dis>able_phys()
  ata: ahci_brcm: Fix AHCI resources management
  ata: ahci_brcm: BCM7425 AHCI requires AHCI_HFLAG_DELAY_ENGINE
  ata: ahci_brcm: Add missing clock management during recovery
  ata: ahci_brcm: Manage reset line during suspend/resume
  ata: ahci_brcm: Add a shutdown callback
  dt-bindings: ata: Document BCM7216 AHCI controller compatible
  ata: ahci_brcm: Support BCM7216 reset controller name

 .../bindings/ata/brcm,sata-brcm.txt           |   7 +
 drivers/ata/ahci_brcm.c                       | 167 ++++++++++++++----
 drivers/ata/libahci_platform.c                |   6 +-
 include/linux/ahci_platform.h                 |   2 +
 4 files changed, 141 insertions(+), 41 deletions(-)

Comments

Hans de Goede Dec. 11, 2019, 1:31 p.m. UTC | #1
Hi,

On 10-12-2019 19:53, Florian Fainelli wrote:
> Hi Jens,
> 
> The first 4 patches are fixes and should ideally be queued up/picked up
> by stable. The last 4 patches add support for BCM7216 which is one of
> our latest devices supported by this driver.
> 
> Patch #2 does a few things, but it was pretty badly broken before and it
> is hard not to fix all call sites (probe, suspend, resume) in one shot.
> 
> Please let me know if you have any comments.
> 
> Thanks!

The entire series looks good to me:

Reviewed-by: Hans de Goede <hdegoede@redhat.com>

Regards,

Hans



> 
> Florian Fainelli (8):
>    ata: libahci_platform: Export again ahci_platform_<en/dis>able_phys()
>    ata: ahci_brcm: Fix AHCI resources management
>    ata: ahci_brcm: BCM7425 AHCI requires AHCI_HFLAG_DELAY_ENGINE
>    ata: ahci_brcm: Add missing clock management during recovery
>    ata: ahci_brcm: Manage reset line during suspend/resume
>    ata: ahci_brcm: Add a shutdown callback
>    dt-bindings: ata: Document BCM7216 AHCI controller compatible
>    ata: ahci_brcm: Support BCM7216 reset controller name
> 
>   .../bindings/ata/brcm,sata-brcm.txt           |   7 +
>   drivers/ata/ahci_brcm.c                       | 167 ++++++++++++++----
>   drivers/ata/libahci_platform.c                |   6 +-
>   include/linux/ahci_platform.h                 |   2 +
>   4 files changed, 141 insertions(+), 41 deletions(-)
>
Florian Fainelli Dec. 26, 2019, 3:34 a.m. UTC | #2
On 12/11/2019 5:31 AM, Hans de Goede wrote:
> Hi,
> 
> On 10-12-2019 19:53, Florian Fainelli wrote:
>> Hi Jens,
>>
>> The first 4 patches are fixes and should ideally be queued up/picked up
>> by stable. The last 4 patches add support for BCM7216 which is one of
>> our latest devices supported by this driver.
>>
>> Patch #2 does a few things, but it was pretty badly broken before and it
>> is hard not to fix all call sites (probe, suspend, resume) in one shot.
>>
>> Please let me know if you have any comments.
>>
>> Thanks!
> 
> The entire series looks good to me:
> 
> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
> 
> Regards,

Thanks Hans, Jens is this good to go from your perspective?
--
Florian
Jens Axboe Dec. 26, 2019, 3:46 a.m. UTC | #3
On 12/25/19 8:34 PM, Florian Fainelli wrote:
> 
> 
> On 12/11/2019 5:31 AM, Hans de Goede wrote:
>> Hi,
>>
>> On 10-12-2019 19:53, Florian Fainelli wrote:
>>> Hi Jens,
>>>
>>> The first 4 patches are fixes and should ideally be queued up/picked up
>>> by stable. The last 4 patches add support for BCM7216 which is one of
>>> our latest devices supported by this driver.
>>>
>>> Patch #2 does a few things, but it was pretty badly broken before and it
>>> is hard not to fix all call sites (probe, suspend, resume) in one shot.
>>>
>>> Please let me know if you have any comments.
>>>
>>> Thanks!
>>
>> The entire series looks good to me:
>>
>> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
>>
>> Regards,
> 
> Thanks Hans, Jens is this good to go from your perspective?

I'll queue 1-4 up for 5.5 and mark for stable, then add 5-8 for
5.6. Thanks!
Florian Fainelli Jan. 2, 2020, 11:06 p.m. UTC | #4
On 12/25/19 7:46 PM, Jens Axboe wrote:
> On 12/25/19 8:34 PM, Florian Fainelli wrote:
>>
>>
>> On 12/11/2019 5:31 AM, Hans de Goede wrote:
>>> Hi,
>>>
>>> On 10-12-2019 19:53, Florian Fainelli wrote:
>>>> Hi Jens,
>>>>
>>>> The first 4 patches are fixes and should ideally be queued up/picked up
>>>> by stable. The last 4 patches add support for BCM7216 which is one of
>>>> our latest devices supported by this driver.
>>>>
>>>> Patch #2 does a few things, but it was pretty badly broken before and it
>>>> is hard not to fix all call sites (probe, suspend, resume) in one shot.
>>>>
>>>> Please let me know if you have any comments.
>>>>
>>>> Thanks!
>>>
>>> The entire series looks good to me:
>>>
>>> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
>>>
>>> Regards,
>>
>> Thanks Hans, Jens is this good to go from your perspective?
> 
> I'll queue 1-4 up for 5.5 and mark for stable, then add 5-8 for
> 5.6. Thanks!

It looks like I will have two incremental changes on top to minimize the
number of resources that get cycled through during EPROBE_DEFER and also
ensure that the 7216 reset line gets properly managed with a call to
reset_control_reset() per review feedback from the reset controller
maintainer.
Naresh Kamboju Jan. 7, 2020, 4:47 p.m. UTC | #5
On Wed, 11 Dec 2019 at 00:25, Florian Fainelli <f.fainelli@gmail.com> wrote:
>
> Hi Jens,
>
> The first 4 patches are fixes and should ideally be queued up/picked up
> by stable. The last 4 patches add support for BCM7216 which is one of
> our latest devices supported by this driver.
>
> Patch #2 does a few things, but it was pretty badly broken before and it
> is hard not to fix all call sites (probe, suspend, resume) in one shot.
>
> Please let me know if you have any comments.
>
> Thanks!
>
> Florian Fainelli (8):
>   ata: libahci_platform: Export again ahci_platform_<en/dis>able_phys()
>   ata: ahci_brcm: Fix AHCI resources management

Following error on stable-rc 4.14 and 4.9 branch for arm build.

 drivers/ata/ahci_brcm.c: In function 'brcm_ahci_probe':
 drivers/ata/ahci_brcm.c:412:28: error: 'struct brcm_ahci_priv' has no
member named 'rcdev'; did you mean 'dev'?
   if (!IS_ERR_OR_NULL(priv->rcdev))
                             ^~~~~
                             dev
   CC      fs/pnode.o
   CC      block/genhd.o
 drivers/ata/ahci_brcm.c:413:3: error: implicit declaration of
function 'reset_control_assert'; did you mean 'ahci_reset_controller'?
[-Werror=implicit-function-declaration]
    reset_control_assert(priv->rcdev);
    ^~~~~~~~~~~~~~~~~~~~
    ahci_reset_controller
 drivers/ata/ahci_brcm.c:413:30: error: 'struct brcm_ahci_priv' has no
member named 'rcdev'; did you mean 'dev'?
    reset_control_assert(priv->rcdev);
                               ^~~~~
                               dev
 cc1: some warnings being treated as errors

Full build log links,
https://ci.linaro.org/view/lkft/job/openembedded-lkft-linux-stable-rc-4.14/DISTRO=lkft,MACHINE=am57xx-evm,label=docker-lkft/702/consoleText
https://ci.linaro.org/view/lkft/job/openembedded-lkft-linux-stable-rc-4.9/DISTRO=lkft,MACHINE=am57xx-evm,label=docker-lkft/773/consoleText
Naresh Kamboju Jan. 7, 2020, 5:29 p.m. UTC | #6
On Tue, 7 Jan 2020 at 22:17, Naresh Kamboju <naresh.kamboju@linaro.org> wrote:
>
> On Wed, 11 Dec 2019 at 00:25, Florian Fainelli <f.fainelli@gmail.com> wrote:
> >
> > Hi Jens,
> >
> > The first 4 patches are fixes and should ideally be queued up/picked up
> > by stable. The last 4 patches add support for BCM7216 which is one of
> > our latest devices supported by this driver.
> >
> > Patch #2 does a few things, but it was pretty badly broken before and it
> > is hard not to fix all call sites (probe, suspend, resume) in one shot.
> >
> > Please let me know if you have any comments.
> >
> > Thanks!
> >
> > Florian Fainelli (8):
> >   ata: libahci_platform: Export again ahci_platform_<en/dis>able_phys()
> >   ata: ahci_brcm: Fix AHCI resources management
>
> Following error on stable-rc 4.14 and 4.9 branch for arm build.

Following error on stable-rc 4.19, 4.14 and 4.9 branch for arm build.

>
>  drivers/ata/ahci_brcm.c: In function 'brcm_ahci_probe':
>  drivers/ata/ahci_brcm.c:412:28: error: 'struct brcm_ahci_priv' has no
> member named 'rcdev'; did you mean 'dev'?
>    if (!IS_ERR_OR_NULL(priv->rcdev))
>                              ^~~~~
>                              dev
>    CC      fs/pnode.o
>    CC      block/genhd.o
>  drivers/ata/ahci_brcm.c:413:3: error: implicit declaration of
> function 'reset_control_assert'; did you mean 'ahci_reset_controller'?
> [-Werror=implicit-function-declaration]
>     reset_control_assert(priv->rcdev);
>     ^~~~~~~~~~~~~~~~~~~~
>     ahci_reset_controller
>  drivers/ata/ahci_brcm.c:413:30: error: 'struct brcm_ahci_priv' has no
> member named 'rcdev'; did you mean 'dev'?
>     reset_control_assert(priv->rcdev);
>                                ^~~~~
>                                dev
>  cc1: some warnings being treated as errors
>
> Full build log links,
> https://ci.linaro.org/view/lkft/job/openembedded-lkft-linux-stable-rc-4.14/DISTRO=lkft,MACHINE=am57xx-evm,label=docker-lkft/702/consoleText
> https://ci.linaro.org/view/lkft/job/openembedded-lkft-linux-stable-rc-4.9/DISTRO=lkft,MACHINE=am57xx-evm,label=docker-lkft/773/consoleText
https://ci.linaro.org/view/lkft/job/openembedded-lkft-linux-stable-rc-4.19/DISTRO=lkft,MACHINE=am57xx-evm,label=docker-lkft/404/consoleText
>
>
> --
> Linaro LKFT
> https://lkft.linaro.org
Florian Fainelli Jan. 7, 2020, 5:39 p.m. UTC | #7
On 1/7/20 9:29 AM, Naresh Kamboju wrote:
> On Tue, 7 Jan 2020 at 22:17, Naresh Kamboju <naresh.kamboju@linaro.org> wrote:
>>
>> On Wed, 11 Dec 2019 at 00:25, Florian Fainelli <f.fainelli@gmail.com> wrote:
>>>
>>> Hi Jens,
>>>
>>> The first 4 patches are fixes and should ideally be queued up/picked up
>>> by stable. The last 4 patches add support for BCM7216 which is one of
>>> our latest devices supported by this driver.
>>>
>>> Patch #2 does a few things, but it was pretty badly broken before and it
>>> is hard not to fix all call sites (probe, suspend, resume) in one shot.
>>>
>>> Please let me know if you have any comments.
>>>
>>> Thanks!
>>>
>>> Florian Fainelli (8):
>>>   ata: libahci_platform: Export again ahci_platform_<en/dis>able_phys()
>>>   ata: ahci_brcm: Fix AHCI resources management
>>
>> Following error on stable-rc 4.14 and 4.9 branch for arm build.
> 
> Following error on stable-rc 4.19, 4.14 and 4.9 branch for arm build.
> 
>>
>>  drivers/ata/ahci_brcm.c: In function 'brcm_ahci_probe':
>>  drivers/ata/ahci_brcm.c:412:28: error: 'struct brcm_ahci_priv' has no
>> member named 'rcdev'; did you mean 'dev'?
>>    if (!IS_ERR_OR_NULL(priv->rcdev))
>>                              ^~~~~
>>                              dev
>>    CC      fs/pnode.o
>>    CC      block/genhd.o
>>  drivers/ata/ahci_brcm.c:413:3: error: implicit declaration of
>> function 'reset_control_assert'; did you mean 'ahci_reset_controller'?
>> [-Werror=implicit-function-declaration]
>>     reset_control_assert(priv->rcdev);
>>     ^~~~~~~~~~~~~~~~~~~~
>>     ahci_reset_controller
>>  drivers/ata/ahci_brcm.c:413:30: error: 'struct brcm_ahci_priv' has no
>> member named 'rcdev'; did you mean 'dev'?
>>     reset_control_assert(priv->rcdev);
>>                                ^~~~~
>>                                dev
>>  cc1: some warnings being treated as errors
>>
>> Full build log links,
>> https://ci.linaro.org/view/lkft/job/openembedded-lkft-linux-stable-rc-4.14/DISTRO=lkft,MACHINE=am57xx-evm,label=docker-lkft/702/consoleText
>> https://ci.linaro.org/view/lkft/job/openembedded-lkft-linux-stable-rc-4.9/DISTRO=lkft,MACHINE=am57xx-evm,label=docker-lkft/773/consoleText
> https://ci.linaro.org/view/lkft/job/openembedded-lkft-linux-stable-rc-4.19/DISTRO=lkft,MACHINE=am57xx-evm,label=docker-lkft/404/consoleText

The reset controller support was added in
2b2c47d9e1fe90311b725125d6252a859ee87a79 ("ata: ahci_brcm: Allow
optional reset controller to be used") which was include in v4.20 and
newer so that explains the build failure.

You may want to cherry pick that change into the respective stable
branches and then back port the fixes if that is not too much trouble.
If that does not work or is impractical, please let me know and I can
provide directed backport changes for 4.9, 4.14 and 4.19.

Thank you
gregkh@linuxfoundation.org Jan. 7, 2020, 7:30 p.m. UTC | #8
On Tue, Jan 07, 2020 at 09:39:58AM -0800, Florian Fainelli wrote:
> On 1/7/20 9:29 AM, Naresh Kamboju wrote:
> > On Tue, 7 Jan 2020 at 22:17, Naresh Kamboju <naresh.kamboju@linaro.org> wrote:
> >>
> >> On Wed, 11 Dec 2019 at 00:25, Florian Fainelli <f.fainelli@gmail.com> wrote:
> >>>
> >>> Hi Jens,
> >>>
> >>> The first 4 patches are fixes and should ideally be queued up/picked up
> >>> by stable. The last 4 patches add support for BCM7216 which is one of
> >>> our latest devices supported by this driver.
> >>>
> >>> Patch #2 does a few things, but it was pretty badly broken before and it
> >>> is hard not to fix all call sites (probe, suspend, resume) in one shot.
> >>>
> >>> Please let me know if you have any comments.
> >>>
> >>> Thanks!
> >>>
> >>> Florian Fainelli (8):
> >>>   ata: libahci_platform: Export again ahci_platform_<en/dis>able_phys()
> >>>   ata: ahci_brcm: Fix AHCI resources management
> >>
> >> Following error on stable-rc 4.14 and 4.9 branch for arm build.
> > 
> > Following error on stable-rc 4.19, 4.14 and 4.9 branch for arm build.
> > 
> >>
> >>  drivers/ata/ahci_brcm.c: In function 'brcm_ahci_probe':
> >>  drivers/ata/ahci_brcm.c:412:28: error: 'struct brcm_ahci_priv' has no
> >> member named 'rcdev'; did you mean 'dev'?
> >>    if (!IS_ERR_OR_NULL(priv->rcdev))
> >>                              ^~~~~
> >>                              dev
> >>    CC      fs/pnode.o
> >>    CC      block/genhd.o
> >>  drivers/ata/ahci_brcm.c:413:3: error: implicit declaration of
> >> function 'reset_control_assert'; did you mean 'ahci_reset_controller'?
> >> [-Werror=implicit-function-declaration]
> >>     reset_control_assert(priv->rcdev);
> >>     ^~~~~~~~~~~~~~~~~~~~
> >>     ahci_reset_controller
> >>  drivers/ata/ahci_brcm.c:413:30: error: 'struct brcm_ahci_priv' has no
> >> member named 'rcdev'; did you mean 'dev'?
> >>     reset_control_assert(priv->rcdev);
> >>                                ^~~~~
> >>                                dev
> >>  cc1: some warnings being treated as errors
> >>
> >> Full build log links,
> >> https://ci.linaro.org/view/lkft/job/openembedded-lkft-linux-stable-rc-4.14/DISTRO=lkft,MACHINE=am57xx-evm,label=docker-lkft/702/consoleText
> >> https://ci.linaro.org/view/lkft/job/openembedded-lkft-linux-stable-rc-4.9/DISTRO=lkft,MACHINE=am57xx-evm,label=docker-lkft/773/consoleText
> > https://ci.linaro.org/view/lkft/job/openembedded-lkft-linux-stable-rc-4.19/DISTRO=lkft,MACHINE=am57xx-evm,label=docker-lkft/404/consoleText
> 
> The reset controller support was added in
> 2b2c47d9e1fe90311b725125d6252a859ee87a79 ("ata: ahci_brcm: Allow
> optional reset controller to be used") which was include in v4.20 and
> newer so that explains the build failure.
> 
> You may want to cherry pick that change into the respective stable
> branches and then back port the fixes if that is not too much trouble.
> If that does not work or is impractical, please let me know and I can
> provide directed backport changes for 4.9, 4.14 and 4.19.

No need, I'll just queue up the other needed patch now, thanks.

greg k-h