From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: Li Yang <leoli@freescale.com>
Cc: Gao Pan <pandy.gao@nxp.com>, Wolfram Sang <wsa@the-dreams.de>,
Linus Walleij <linus.walleij@linaro.org>,
lkml <linux-kernel@vger.kernel.org>, Li Yang <leoyang.li@nxp.com>,
linux-gpio@vger.kernel.org,
"linux-i2c@vger.kernel.org" <linux-i2c@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v3] i2c: imx: make bus recovery through pinctrl optional
Date: Mon, 18 Jan 2016 09:37:04 +0100 [thread overview]
Message-ID: <20160118083704.GQ24441@pengutronix.de> (raw)
In-Reply-To: <CADRPPNR2YDj43XjJUQszEUkKDj256L6p=N2QYteFG8uAfBYdMw@mail.gmail.com>
Hello Leo,
On Mon, Jan 18, 2016 at 04:22:51PM +0800, Li Yang wrote:
> On Fri, Jan 15, 2016 at 5:03 PM, Uwe Kleine-König
> <u.kleine-koenig@pengutronix.de> wrote:
> > On Fri, Jan 15, 2016 at 04:46:06PM +0800, Li Yang wrote:
> >> On Fri, Jan 15, 2016 at 3:53 PM, Uwe Kleine-König
> >> <u.kleine-koenig@pengutronix.de> wrote:
> >> >> - i2c_imx_init_recovery_info(i2c_imx, pdev);
> >> >> + if (IS_ERR_OR_NULL(i2c_imx->pinctrl))
> >> >
> >> > I'd prefer to set i2c_imx->pinctrl to NULL if it's not used and then use
> >> >
> >> > if (!i2c_imx->pinctrl)
> >> >
> >> > here. (Or maybe make i2c_imx_init_recovery_info aware of this situation
> >> > to keep the caller simple?)
> >>
> >> Setting not used pointer to NULL might be a good coding practice
> >> generally. But in this case neither the driver nor gpio framework
> >> checks if the pinctrl is NULL before accessing it. We still need the
> >> driver to make sure pinctrl is not used in this situation. The
> >> benefit of the proposed change seems to be pretty limited. :)
> >
> > At least it gets rid of IS_ERR_OR_NULL which is used wrongly more often
> > than not.
>
> It's true that this API is not used a lot. Are you suggesting that it
> is poorly designed and probably should be removed? But I still don't
> quite get the point why it tends to be wrongly used. Do you consider
> the use in this patch a wrongly used case?
See http://permalink.gmane.org/gmane.linux.ports.arm.omap/97874 for an
earlier discussion. Having said that, I think at the moment there is no
such bug in this case, still I agree with Russell that IS_ERR_OR_NULL
isn't nice and so would prefer not to add new instances.
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |
prev parent reply other threads:[~2016-01-18 8:37 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-15 7:27 [PATCH v3] i2c: imx: make bus recovery through pinctrl optional Li Yang
2016-01-15 7:53 ` Uwe Kleine-König
2016-01-15 8:46 ` Li Yang
2016-01-15 9:03 ` Uwe Kleine-König
2016-01-18 8:22 ` Li Yang
2016-01-18 8:37 ` Uwe Kleine-König [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=20160118083704.GQ24441@pengutronix.de \
--to=u.kleine-koenig@pengutronix.de \
--cc=leoli@freescale.com \
--cc=leoyang.li@nxp.com \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pandy.gao@nxp.com \
--cc=wsa@the-dreams.de \
/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;
as well as URLs for NNTP newsgroup(s).