From: Andy Shevchenko <andriy.shevchenko@intel.com>
To: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-i2c@vger.kernel.org,
"Rob Herring" <robh+dt@kernel.org>,
"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
"Wolfram Sang" <wsa@kernel.org>,
"Luca Ceresoli" <luca.ceresoli@bootlin.com>,
"Matti Vaittinen" <Matti.Vaittinen@fi.rohmeurope.com>,
"Laurent Pinchart" <laurent.pinchart+renesas@ideasonboard.com>,
"Mauro Carvalho Chehab" <mchehab@kernel.org>,
"Peter Rosin" <peda@axentia.se>,
"Liam Girdwood" <lgirdwood@gmail.com>,
"Mark Brown" <broonie@kernel.org>,
"Sakari Ailus" <sakari.ailus@linux.intel.com>,
"Michael Tretter" <m.tretter@pengutronix.de>,
"Shawn Tu" <shawnx.tu@intel.com>,
"Hans Verkuil" <hverkuil@xs4all.nl>,
"Mike Pagano" <mpagano@gentoo.org>,
"Krzysztof Hałasa" <khalasa@piap.pl>,
"Marek Vasut" <marex@denx.de>
Subject: Re: [PATCH v7 5/7] media: i2c: add DS90UB960 driver
Date: Wed, 25 Jan 2023 14:10:46 +0200 [thread overview]
Message-ID: <Y9EcRlooHwIjOqiZ@smile.fi.intel.com> (raw)
In-Reply-To: <4286abe2-f23f-d4c9-ef18-f351af7a3a8b@ideasonboard.com>
On Wed, Jan 25, 2023 at 01:15:34PM +0200, Tomi Valkeinen wrote:
> On 20/01/2023 18:47, Andy Shevchenko wrote:
...
> > > > Esp. taking into account that some of them are using actually
> > > > post-inc. Why this difference?
> > >
> > > Possibly a different person has written that particular piece of code, or
> > > maybe a copy paste from somewhere.
> > >
> > > I'm personally fine with seeing both post and pre increments in code.
> >
> > I'm not :-), if it's not required by the code. Pre-increment always puzzles
> > me: Is here anything I have to pay an additional attention to?
>
> That is interesting, as to me pre-increment is the simpler, more obvious
> case. It's just:
>
> v = v + 1
> v
>
> Whereas post-increment is:
>
> temp = v
> v = v + 1
> temp
>
> In any case, we're side-tracking here, I think =).
Yes, just see the statistics of use below.
...
> > > > > + for (nport = 0; nport < priv->hw_data->num_rxports; ++nport) {
> > > >
> > > > Post-inc?
> > >
> > > I still like pre-inc =).
> > >
> > > I see there's a mix os post and pre incs in the code. I'll align those when
> > > I encounter them, but I don't think it's worth the effort to methodically go
> > > through all of them to change them use the same style.
> >
> > Kernel uses post-inc is an idiom for loops:
> >
> > $ git grep -n -w '[_a-z0-9]\+++' | wc -l
> > 148693
> >
> > $ git grep -n -w ' ++[a-z0-9_]\+' | wc -l
> > 8701
> >
> > So, non-standard pattern needs to be explained.
> > > > > + }
...
> > > > > + ret = fwnode_property_read_u32(link_fwnode, "ti,eq-level", &eq_level);
> > > > > + if (ret) {
> > > > > + if (ret != -EINVAL) {
> > > > > + dev_err(dev, "rx%u: failed to read 'ti,eq-level': %d\n",
> > > > > + nport, ret);
> > > > > + return ret;
> > > > > + }
> >
> > This seems like trying to handle special cases, if you want it to be optional,
> > why not ignoring all errors?
>
> I don't follow. Why would we ignore all errors even if the property is
> optional? If there's a failure in reading the property, or checking if it
> exists or not, surely that's an actual error to be handled, not to be
> ignored?
What the problem to ignore them?
But if you are really pedantic about it, perhaps the proper way is to add
fwnode_property_*_optional()
APIs to the set where you take default and return 0 in case default had been
used for the absent property.
> > > > > + } else if (eq_level > UB960_MAX_EQ_LEVEL) {
> > > > > + dev_err(dev, "rx%u: illegal 'ti,eq-level' value: %d\n", nport,
> > > > > + eq_level);
> >
> > This part is a validation of DT again, but we discussed above this.
> >
> > > > > + } else {
> > > > > + rxport->eq.manual_eq = true;
> > > > > + rxport->eq.manual.eq_level = eq_level;
> > > > > + }
...
> > > > > +struct ds90ub9xx_platform_data {
> > > > > + u32 port;
> > > > > + struct i2c_atr *atr;
> > > > > + unsigned long bc_rate;
> > > >
> > > > Not sure why we need this to be public except, probably, atr...
> > >
> > > The port and atr are used by the serializers, for atr. The bc_rate is used
> > > by the serializers to figure out the clocking (they may use the FPD-Link's
> > > frequency internally).
> >
> > The plain numbers can be passed as device properties. That's why the question
> > about platform data. Platform data in general is discouraged to be used in a
> > new code.
>
> Device properties, as in, coming from DT?
From anywhere.
> The port could be in the DT, but
> the others are not hardware properties.
Why do we need them? For example, bc_rate.
> Yes, I don't like using platform data. We need some way to pass information
> between the drivers.
Device properties allow that and targeting to remove the legacy platform data
in zillions of the drivers.
> Maybe a custom FPD-Link bus could do that, but that's
> then going into totally new directions.
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2023-01-25 12:11 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-18 12:40 [PATCH v7 0/7] i2c-atr and FPDLink Tomi Valkeinen
2023-01-18 12:40 ` [PATCH v7 1/7] i2c: add I2C Address Translator (ATR) support Tomi Valkeinen
2023-01-18 14:23 ` Andy Shevchenko
2023-01-18 17:17 ` Luca Ceresoli
2023-01-18 17:39 ` Andy Shevchenko
2023-01-19 8:21 ` Luca Ceresoli
2023-01-19 10:09 ` Tomi Valkeinen
2023-01-19 11:35 ` Luca Ceresoli
2023-01-19 12:22 ` Tomi Valkeinen
2023-01-19 13:00 ` Luca Ceresoli
2023-01-20 9:55 ` Laurent Pinchart
2023-01-20 13:58 ` Luca Ceresoli
2023-01-19 12:39 ` Tomi Valkeinen
2023-01-19 13:08 ` Luca Ceresoli
2023-01-19 10:01 ` Tomi Valkeinen
2023-01-20 15:58 ` Andy Shevchenko
2023-01-20 16:00 ` Tomi Valkeinen
2023-01-18 12:40 ` [PATCH v7 2/7] dt-bindings: media: add TI DS90UB913 FPD-Link III Serializer Tomi Valkeinen
2023-01-18 12:40 ` [PATCH v7 3/7] dt-bindings: media: add TI DS90UB953 " Tomi Valkeinen
2023-01-18 12:40 ` [PATCH v7 4/7] dt-bindings: media: add TI DS90UB960 FPD-Link III Deserializer Tomi Valkeinen
2023-01-19 23:24 ` Laurent Pinchart
2023-01-18 12:40 ` [PATCH v7 5/7] media: i2c: add DS90UB960 driver Tomi Valkeinen
2023-01-18 15:48 ` Andy Shevchenko
2023-01-19 16:27 ` Tomi Valkeinen
2023-01-19 23:19 ` Laurent Pinchart
2023-01-20 16:47 ` Andy Shevchenko
2023-01-25 11:15 ` Tomi Valkeinen
2023-01-25 12:10 ` Andy Shevchenko [this message]
2023-01-25 13:33 ` Tomi Valkeinen
2023-01-25 14:49 ` Andy Shevchenko
2023-01-25 15:14 ` Tomi Valkeinen
2023-01-25 15:27 ` Andy Shevchenko
2023-01-26 8:41 ` Tomi Valkeinen
2023-01-26 10:21 ` Andy Shevchenko
2023-01-26 10:51 ` Laurent Pinchart
2023-01-27 8:24 ` Tomi Valkeinen
2023-01-27 9:15 ` Andy Shevchenko
2023-02-08 15:10 ` Tomi Valkeinen
2023-02-09 10:54 ` Laurent Pinchart
2023-01-18 12:40 ` [PATCH v7 6/7] media: i2c: add DS90UB913 driver Tomi Valkeinen
2023-01-20 0:03 ` Laurent Pinchart
2023-01-20 7:04 ` Tomi Valkeinen
2023-01-20 9:06 ` Laurent Pinchart
2023-01-18 12:40 ` [PATCH v7 7/7] media: i2c: add DS90UB953 driver Tomi Valkeinen
2023-01-20 0:34 ` Laurent Pinchart
2023-01-20 8:13 ` Tomi Valkeinen
2023-01-20 9:23 ` Laurent Pinchart
2023-01-18 16:01 ` [PATCH v7 0/7] i2c-atr and FPDLink Andy Shevchenko
2023-01-18 17:28 ` Tomi Valkeinen
2023-01-18 17:43 ` Andy Shevchenko
2023-01-19 8:43 ` Luca Ceresoli
2023-01-19 12:40 ` Tomi Valkeinen
2023-01-19 13:19 ` Luca Ceresoli
2023-01-20 16:00 ` Andy Shevchenko
2023-01-20 16:17 ` Luca Ceresoli
2023-01-20 16:20 ` Tomi Valkeinen
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=Y9EcRlooHwIjOqiZ@smile.fi.intel.com \
--to=andriy.shevchenko@intel.com \
--cc=Matti.Vaittinen@fi.rohmeurope.com \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=hverkuil@xs4all.nl \
--cc=khalasa@piap.pl \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=laurent.pinchart+renesas@ideasonboard.com \
--cc=lgirdwood@gmail.com \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=luca.ceresoli@bootlin.com \
--cc=m.tretter@pengutronix.de \
--cc=marex@denx.de \
--cc=mchehab@kernel.org \
--cc=mpagano@gentoo.org \
--cc=peda@axentia.se \
--cc=robh+dt@kernel.org \
--cc=sakari.ailus@linux.intel.com \
--cc=shawnx.tu@intel.com \
--cc=tomi.valkeinen@ideasonboard.com \
--cc=wsa@kernel.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 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.