From: Oleksij Rempel <o.rempel@pengutronix.de>
To: Carlos Song <carlos.song@nxp.com>
Cc: Andi Shyti <andi.shyti@kernel.org>, Frank Li <frank.li@nxp.com>,
"kernel@pengutronix.de" <kernel@pengutronix.de>,
"shawnguo@kernel.org" <shawnguo@kernel.org>,
"s.hauer@pengutronix.de" <s.hauer@pengutronix.de>,
"festevam@gmail.com" <festevam@gmail.com>,
"linux-i2c@vger.kernel.org" <linux-i2c@vger.kernel.org>,
"imx@lists.linux.dev" <imx@lists.linux.dev>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Clark Wang <xiaoning.wang@nxp.com>,
Ahmad Fatoum <a.fatoum@pengutronix.de>
Subject: Re: [PATCH v5] i2c: imx: support DMA defer probing
Date: Fri, 20 Dec 2024 06:32:45 +0100 [thread overview]
Message-ID: <Z2UBfcq6pE-JMUrb@pengutronix.de> (raw)
In-Reply-To: <AM0PR0402MB3937C9A79C55BF4C279F8099E8072@AM0PR0402MB3937.eurprd04.prod.outlook.com>
On Fri, Dec 20, 2024 at 02:45:09AM +0000, Carlos Song wrote:
>
>
> > -----Original Message-----
> > From: Oleksij Rempel <o.rempel@pengutronix.de>
> > Sent: Thursday, December 19, 2024 8:23 PM
> > To: Andi Shyti <andi.shyti@kernel.org>
> > Cc: Carlos Song <carlos.song@nxp.com>; Frank Li <frank.li@nxp.com>;
> > kernel@pengutronix.de; shawnguo@kernel.org; s.hauer@pengutronix.de;
> > festevam@gmail.com; linux-i2c@vger.kernel.org; imx@lists.linux.dev;
> > linux-arm-kernel@lists.infradead.org; linux-kernel@vger.kernel.org; Clark Wang
> > <xiaoning.wang@nxp.com>; Ahmad Fatoum <a.fatoum@pengutronix.de>
> > Subject: [EXT] Re: [PATCH v5] i2c: imx: support DMA defer probing
> >
> > Caution: This is an external email. Please take care when clicking links or
> > opening attachments. When in doubt, report the message using the 'Report this
> > email' button
> >
> >
> > On Thu, Dec 19, 2024 at 01:02:29PM +0100, Andi Shyti wrote:
> > > Hi Carlos,
> > >
> > > > + /*
> > > > + * Init DMA config if supported, -ENODEV means DMA not enabled at
> > > > + * this platform, that is not a real error, so just remind "only
> > > > + * PIO mode is used". If DMA is enabled, but meet error when request
> > > > + * DMA channel, error should be showed in probe error log. PIO mode
> > > > + * should be available regardless of DMA.
> > > > + */
> > > > + ret = i2c_imx_dma_request(i2c_imx, phy_addr);
> > > > + if (ret) {
> > > > + if (ret == -EPROBE_DEFER)
> > > > + goto clk_notifier_unregister;
> > > > + else if (ret == -ENODEV)
> > > > + dev_dbg(&pdev->dev, "Only use PIO mode\n");
> > > > + else
> > > > + dev_err_probe(&pdev->dev, ret, "Failed to setup
> > > > + DMA, only use PIO mode\n");
> > >
> > > Just for understanding, should we quit in this last case, as well?
> > >
> > > Before we were ignoring ENODEV and EPROBE_DEFER, but now you are
> > > making it clear that other failures like ENOMEM might happen.
> >
> > Good point, dev_err_probe() would not print an error in case of EPROBE_DEFER,
> > but in this case we should only print error and continue with PIO.
> >
> Hi,
>
> Thank you all very much! As I comment at previous mail:
> DMA mode should be optional for i2c-imx, because i2c-imx can accept DMA mode not enabled, because it still can work in CPU mode.[1]
> [1]https://lore.kernel.org/imx/AM0PR0402MB39374E34FD6133B5E3D414D7E82F2@AM0PR0402MB3937.eurprd04.prod.outlook.com/
>
> Also we don't want to annoy current user without DMA[2]
> [2] https://lore.kernel.org/imx/20241127-analytic-azure-hamster-727fd8-mkl@pengutronix.de/
>
> So we make this logic. Anyway we let the I2C controller registered whether DMA is available or not(except defer probe).
> Ignoring ENODEV and EPROBE_DEFER makes it looks like nothing happened if DMA is defer probed or not enabled(This is an expected).
> However we still need i2c DMA status is known when meet an unexpected error, so we use dev_err_probe() to print error.
Why dev_err_probe() instead of dev_err()?
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
next prev parent reply other threads:[~2024-12-20 5:32 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-18 4:35 [PATCH v5] i2c: imx: support DMA defer probing Carlos Song
2024-12-19 6:04 ` Oleksij Rempel
2024-12-19 12:02 ` Andi Shyti
2024-12-19 12:22 ` Oleksij Rempel
2024-12-20 2:45 ` Carlos Song
2024-12-20 5:32 ` Oleksij Rempel [this message]
2024-12-20 5:59 ` Carlos Song
2024-12-20 6:12 ` Oleksij Rempel
2024-12-20 6:58 ` Carlos Song
2024-12-20 7:06 ` Ahmad Fatoum
2024-12-20 7:35 ` Oleksij Rempel
2024-12-20 7:38 ` Carlos Song
2024-12-20 7:45 ` Oleksij Rempel
2024-12-20 8:06 ` Carlos Song
2024-12-20 8:40 ` Ahmad Fatoum
2024-12-20 9:23 ` Carlos Song
2024-12-20 9:31 ` Ahmad Fatoum
2024-12-20 10:46 ` Carlos Song
2024-12-20 10:51 ` Ahmad Fatoum
2024-12-20 11:46 ` Oleksij Rempel
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=Z2UBfcq6pE-JMUrb@pengutronix.de \
--to=o.rempel@pengutronix.de \
--cc=a.fatoum@pengutronix.de \
--cc=andi.shyti@kernel.org \
--cc=carlos.song@nxp.com \
--cc=festevam@gmail.com \
--cc=frank.li@nxp.com \
--cc=imx@lists.linux.dev \
--cc=kernel@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=s.hauer@pengutronix.de \
--cc=shawnguo@kernel.org \
--cc=xiaoning.wang@nxp.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.