mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Lucas Stach <l.stach@pengutronix.de>
To: Ahmad Fatoum <a.fatoum@pengutronix.de>, barebox@lists.infradead.org
Subject: Re: [PATCH] mci: stm32_sdmmc2: add detect function
Date: Fri, 15 May 2020 10:21:20 +0200	[thread overview]
Message-ID: <b14b3b08ee06f0fd78a4506e1bacd1ff7c6d58fe.camel@pengutronix.de> (raw)
In-Reply-To: <aabfc4bf-e50a-e4f3-47d5-0401907dd8f9@pengutronix.de>

Hi Ahmad,

Am Mittwoch, den 13.05.2020, 20:38 +0200 schrieb Ahmad Fatoum:
> Hello Lucas,
> 
> On 5/13/20 2:08 PM, Lucas Stach wrote:
> > This way we can avoid probing for the SD/MMC devices at startup
> > and just detect them when actually needed.
> 
> Is there a reason we can't have mci_register do it for every MCI.hw_dev
> at registration time?
> 
> Out of 17 MCI drivers, 8 already have the same wrapper around mci_detect_card.

I've looked at this, but it's not easily possible. We already have a
detect function implemented by the mci core on the mci device, but this
doesn't suffice to allow detection of the card when called on the
controller device, which is needed for example when the environment is
located on the mmc device.

To implement the detect callback one needs to pass some data through
the driver private data and the mci core has no business of changing
this data on the controller device struct.

Regards,
Lucas

> > Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> > ---
> >  drivers/mci/stm32_sdmmc2.c | 10 ++++++++++
> >  1 file changed, 10 insertions(+)
> > 
> > diff --git a/drivers/mci/stm32_sdmmc2.c b/drivers/mci/stm32_sdmmc2.c
> > index 3ce3bb0f89d2..ac52b62fa0b7 100644
> > --- a/drivers/mci/stm32_sdmmc2.c
> > +++ b/drivers/mci/stm32_sdmmc2.c
> > @@ -571,6 +571,13 @@ static void stm32_sdmmc2_set_ios(struct mci_host *mci, struct mci_ios *ios)
> >  	       priv->base + SDMMC_CLKCR);
> >  }
> >  
> > +static int stm32_sdmmc2_detect(struct device_d *dev)
> > +{
> > +	struct stm32_sdmmc2_priv *priv = dev->priv;
> > +
> > +	return mci_detect_card(&priv->mci);
> > +}
> > +
> >  static int stm32_sdmmc2_probe(struct amba_device *adev,
> >  			      const struct amba_id *id)
> >  {
> > @@ -591,6 +598,9 @@ static int stm32_sdmmc2_probe(struct amba_device *adev,
> >  	mci->init = stm32_sdmmc2_reset;
> >  	mci->hw_dev = dev;
> >  
> > +	dev->priv = priv;
> > +	dev->detect = stm32_sdmmc2_detect;
> > +
> >  	priv->clk = clk_get(dev, NULL);
> >  	if (IS_ERR(priv->clk)) {
> >  		ret = PTR_ERR(priv->clk);
> > 


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

      reply	other threads:[~2020-05-15  8:21 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-13 12:08 Lucas Stach
2020-05-13 18:38 ` Ahmad Fatoum
2020-05-15  8:21   ` Lucas Stach [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b14b3b08ee06f0fd78a4506e1bacd1ff7c6d58fe.camel@pengutronix.de \
    --to=l.stach@pengutronix.de \
    --cc=a.fatoum@pengutronix.de \
    --cc=barebox@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox