Linux IIO development
 help / color / mirror / Atom feed
From: Michael Nosthoff <posted@heine.so>
To: linux-iio@vger.kernel.org
Subject: Re: st_pressure: lps22: unused default data
Date: Thu, 08 Mar 2018 15:19:39 +0100	[thread overview]
Message-ID: <f5e6faf1ab9488d8f18a00a73d3a9a5a@heine.so> (raw)
In-Reply-To: <c374f2001d45f64a4df8a1852616224f@heine.so>

On 2018-03-08 14:54, Michael Nosthoff wrote:
> Hi,

Sorry for answering my own mail, but I got a bit further. See below

> I have an LPS22 sensor which i used sucessfully with Kernel 4.9. Upon
> switching to 4.14 it was not loading properly anymore. This failure
> occured:
> 
> [    3.827094] iio iio:device1: DRDY on pdata not valid.
> [    3.832578] st-press-i2c: probe of 0-005c failed with error -22
> 
> So I started digging. It started working again when I add this entry
> to my devicetree:
> 
> st,drdy-int-pin = <1>;
> 
> So it seems the default value seems to be not set in 4.14 but was in 
> 4.9
> 
> I came to the conclusion that the problem happens in
> drivers/iio/pressure/st_pressure_core.c in
> 
> st_press_common_probe:
> 
> 
> struct st_sensors_platform_data *pdata =
> 	(struct st_sensors_platform_data *)press_data->dev->platform_data;
> ...
> if (!pdata && press_data->sensor_settings->drdy_irq.addr)
> 	pdata =	(struct st_sensors_platform_data *)&default_press_pdata;
> 
> err = st_sensors_init_sensor(indio_dev, 
> press_data->dev->platform_data);
> 
> 
> If pdata is not set (which is correct in my case) it gets assigned a
> default value. But in the call to st_sensors_init_sensor it's still
> using the data stored in press_data.
> 
> Okay, simple solution would be to pass pdata here as well. But I'm a
> bit confused about the commit [1] which introduced this. pdata is not
> used anymore in this function, so it seems completely useless to set it
> there. And so I don't understand what the commit tries to achieve at 
> all
> besides never using the default data.
> 

Somebody seems also to have noticed in the accel driver. See this commit 
[2]
and decided to remove the default initialization completely. Which makes 
sense
as this code was not doing anything.

I guess the what the intial commit was trying to achieve was to not 
overwrite
the pointer in dev->platform_data which i can imagine might be a problem 
when
using it as a module. But maybe forgot to alter the following usage of 
the data.

So I would suggest to revert commit [2] and pass pdata to 
st_sensors_init_sensor
in both cases (st_pressure and st_accel).

Does this make sense?



> 
> [1]
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/iio/pressure/st_pressure_core.c?id=7383d44b84c94aaca4bf695a6bd8a69f2295ef1a
[2] 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/iio/accel/st_accel_core.c?id=585ed27d06151f98e39238298f43ee261314ae74
-- 
Regards,
Michael

  reply	other threads:[~2018-03-08 14:19 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-08 13:54 st_pressure: lps22: unused default data Michael Nosthoff
2018-03-08 14:19 ` Michael Nosthoff [this message]
2018-03-10 15:34   ` Jonathan Cameron

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=f5e6faf1ab9488d8f18a00a73d3a9a5a@heine.so \
    --to=posted@heine.so \
    --cc=linux-iio@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox