[PATCH v5 0/2] ata: ahci_brcm: Fix use of BCM7216 reset controller

Bjorn Helgaas helgaas at kernel.org
Wed Apr 28 21:53:19 BST 2021


[+cc Amjad, Philipp: possible issue with 557acb3d2cd9 ("reset: make
shared pulsed reset controls re-triggerable") below; report at
https://lore.kernel.org/linux-ide/20210428200058.GA366202@bjorn-Precision-5520/]

On Wed, Apr 28, 2021 at 04:34:00PM -0400, Jim Quinlan wrote:
> On Wed, Apr 28, 2021 at 4:01 PM Bjorn Helgaas <helgaas at kernel.org> wrote:
> > On Fri, Mar 12, 2021 at 03:45:53PM -0500, Jim Quinlan wrote:
> > > v5 -- Improved (I hope) commit description (Bjorn).
> > >    -- Rnamed error labels (Krzyszt).
> > >    -- Fixed typos.
> > >
> > > v4 -- does not rely on a pending commit, unlike v3.
> > >
> > > v3 -- discard commit from v2; instead rely on the new function
> > >       reset_control_rearm provided in a recent commit [1] applied
> > >       to reset/next.
> > >    -- New commit to correct pcie-brcmstb.c usage of a reset controller
> > >       to use reset/rearm verses deassert/assert.
> > >
> > > v2 -- refactor rescal-reset driver to implement assert/deassert rather than
> > >       reset because the reset call only fires once per lifetime and we need
> > >       to reset after every resume from S2 or S3.
> > >    -- Split the use of "ahci" and "rescal" controllers in separate fields
> > >       to keep things simple.
> > >
> > > v1 -- original
> > >
> > > Jim Quinlan (2):
> > >   ata: ahci_brcm: Fix use of BCM7216 reset controller
> > >   PCI: brcmstb: Use reset/rearm instead of deassert/assert
> > >
> > >  drivers/ata/ahci_brcm.c               | 46 +++++++++++++--------------
> > >  drivers/pci/controller/pcie-brcmstb.c | 19 +++++++----
> > >  2 files changed, 36 insertions(+), 29 deletions(-)
> >
> > Tripped over these errors while build testing with the .config below.
> > This is on the pci/brcmstb branch from
> > git://git.kernel.org/pub/scm/linux/kernel/git/lpieralisi/pci.git
> >
> > Dropping the pci/brcmstb branch while we get this figured out.  This will
> > remove the following commits:
> >
> >   a24fd1d6469f ("PCI: brcmstb: Use reset/rearm instead of deassert/assert")
> >   92b9cb55a9b6 ("ata: ahci_brcm: Fix use of BCM7216 reset controller")
> >   b5d9209d5083 ("PCI: brcmstb: Fix error return code in brcm_pcie_probe()")
> 
> Hi Bjorn,
> 
> I believe the problem is that the commit
> 
> 557acb3d2cd9c82de19f944f6cc967a347735385
> "reset: make shared pulsed reset controls re-triggerable"
> 
> defined reset_control_rearm() for the CONFIG_RESET_CONTROLLER=y  case
> but forgot to define  an empty function for the unset case.  Your test
> .config has this CONFIG unset.
> 
> Would you like me to resubmit this with an additional commit that
> fixes this?

The fix could be a patch along those lines, or it could be a Kconfig
change that makes this config impossible.  I didn't look deeper to see
what makes sense.  But I don't think the fix should be "manually avoid
this configuration."

It looks like 557acb3d2cd9 ("reset: make shared pulsed reset controls
re-triggerable") appeared in v5.11, so if a patch is the right thing,
it should probably be marked for stable ("v5.11+").

Bjorn



More information about the linux-arm-kernel mailing list