<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/iio, branch v3.14.10</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>iio: Fix two mpl3115 issues in measurement conversion</title>
<updated>2014-06-26T19:15:42+00:00</updated>
<author>
<name>Peter Meerwald</name>
<email>pmeerw@pmeerw.net</email>
</author>
<published>2014-05-20T07:36:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=74c68519ea6c2ef5e1b5a0a588647048865e200d'/>
<id>74c68519ea6c2ef5e1b5a0a588647048865e200d</id>
<content type='text'>
commit d29f592929489d0a7c414396fae28119f3d280e1 upstream.

(i) pressure is 20-bit unsigned, not signed; the buffer description
is incorrect; for raw reads, this is just cosmetic

(ii) temperature is 12-bit signed, not 16-bit; this affects
readout of temperatures below zero as the sign bit is incorrectly
processed

reported via private mail

Signed-off-by: Peter Meerwald &lt;pmeerw@pmeerw.net&gt;
Reported-by: Robert Deliën &lt;robert@delien.nl&gt;
Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit d29f592929489d0a7c414396fae28119f3d280e1 upstream.

(i) pressure is 20-bit unsigned, not signed; the buffer description
is incorrect; for raw reads, this is just cosmetic

(ii) temperature is 12-bit signed, not 16-bit; this affects
readout of temperatures below zero as the sign bit is incorrectly
processed

reported via private mail

Signed-off-by: Peter Meerwald &lt;pmeerw@pmeerw.net&gt;
Reported-by: Robert Deliën &lt;robert@delien.nl&gt;
Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>iio: Fix endianness issue in ak8975_read_axis()</title>
<updated>2014-06-26T19:15:42+00:00</updated>
<author>
<name>Peter Meerwald</name>
<email>pmeerw@pmeerw.net</email>
</author>
<published>2014-05-06T08:53:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=48c941af0db1354ebef774db3d7eee1bb38f534a'/>
<id>48c941af0db1354ebef774db3d7eee1bb38f534a</id>
<content type='text'>
commit 8ba42fb7b17649c9ab5b5e79d4e90370a0b4645e upstream.

i2c_smbus_read_word_data() does host endian conversion already,
no need for le16_to_cpu()

Signed-off-by: Peter Meerwald &lt;pmeerw@pmeerw.net&gt;
Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 8ba42fb7b17649c9ab5b5e79d4e90370a0b4645e upstream.

i2c_smbus_read_word_data() does host endian conversion already,
no need for le16_to_cpu()

Signed-off-by: Peter Meerwald &lt;pmeerw@pmeerw.net&gt;
Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>iio: adc: at91: signedness bug in at91_adc_get_trigger_value_by_name()</title>
<updated>2014-06-26T19:15:42+00:00</updated>
<author>
<name>Dan Carpenter</name>
<email>dan.carpenter@oracle.com</email>
</author>
<published>2014-11-06T09:13:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0a6e41e28bc5c93c16cec7ae78300440a94a3751'/>
<id>0a6e41e28bc5c93c16cec7ae78300440a94a3751</id>
<content type='text'>
commit 4f3bcd878f1d3c730fe00f619b7260c6125d49eb upstream.

at91_adc_get_trigger_value_by_name() was returning -ENOMEM truncated to
a positive u8 and that doesn't work.  I've changed it to int and
refactored it to preserve the error code.

Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Acked-by: Alexandre Belloni &lt;alexandre.belloni@free-electrons.com&gt;
Tested-by: Alexandre Belloni &lt;alexandre.belloni@free-electrons.com&gt;
Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 4f3bcd878f1d3c730fe00f619b7260c6125d49eb upstream.

at91_adc_get_trigger_value_by_name() was returning -ENOMEM truncated to
a positive u8 and that doesn't work.  I've changed it to int and
refactored it to preserve the error code.

Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Acked-by: Alexandre Belloni &lt;alexandre.belloni@free-electrons.com&gt;
Tested-by: Alexandre Belloni &lt;alexandre.belloni@free-electrons.com&gt;
Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>iio:adc:max1363 incorrect resolutions for max11604, max11605, max11610 and max11611.</title>
<updated>2014-06-26T19:15:42+00:00</updated>
<author>
<name>Jonathan Cameron</name>
<email>jic23@kernel.org</email>
</author>
<published>2014-05-24T11:52:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=554da9dbc2b3ba0bbef4a3aaba86f71dda2233d8'/>
<id>554da9dbc2b3ba0bbef4a3aaba86f71dda2233d8</id>
<content type='text'>
commit a91a73c8b39a6b8bcc53fafa5372c65387c81233 upstream.

Reported-by: Erik Habbinga &lt;Erik.Habbinga@schneider-electric.com&gt;
Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
Acked-by: Hartmut Knaack &lt;knaack.h@gmx.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit a91a73c8b39a6b8bcc53fafa5372c65387c81233 upstream.

Reported-by: Erik Habbinga &lt;Erik.Habbinga@schneider-electric.com&gt;
Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
Acked-by: Hartmut Knaack &lt;knaack.h@gmx.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>iio:imu:mpu6050: Fixed segfault in Invensens MPU driver due to null dereference</title>
<updated>2014-06-07T17:28:15+00:00</updated>
<author>
<name>Atilla Filiz</name>
<email>atilla.filiz@essensium.com</email>
</author>
<published>2014-04-11T14:51:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=edbfad5ceee721db176f03fb56070ff651b7f2e6'/>
<id>edbfad5ceee721db176f03fb56070ff651b7f2e6</id>
<content type='text'>
commit b9b3a41893c3f1be67b5aacfa525969914bea0e9 upstream.

The driver segfaults when the kernel boots with device tree as the
platform data is then not present and the pointer is deferenced without
checking it is not null.  This patch introduces such a check avoiding the
crash.

Signed-off-by: Atilla Filiz &lt;atilla.filiz@essensium.com&gt;
Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit b9b3a41893c3f1be67b5aacfa525969914bea0e9 upstream.

The driver segfaults when the kernel boots with device tree as the
platform data is then not present and the pointer is deferenced without
checking it is not null.  This patch introduces such a check avoiding the
crash.

Signed-off-by: Atilla Filiz &lt;atilla.filiz@essensium.com&gt;
Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>iio: cm36651: Fix i2c client leak and possible NULL pointer dereference</title>
<updated>2014-05-06T14:59:27+00:00</updated>
<author>
<name>Krzysztof Kozlowski</name>
<email>k.kozlowski@samsung.com</email>
</author>
<published>2014-03-18T08:13:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=9a64345f0369251f2841bccec8054f5bdb2b673b'/>
<id>9a64345f0369251f2841bccec8054f5bdb2b673b</id>
<content type='text'>
commit d0a588a57c2b0748df8307a0865a1bbbf1624c53 upstream.

During probe the driver allocates dummy I2C devices (i2c_new_dummy())
but they aren't unregistered during driver remove or probe failure.

Additionally driver does not check the return value of i2c_new_dummy().
In case of error (i2c_new_device(): memory allocation failure or I2C
address cannot be used) this function returns NULL which is later
dereferenced by i2c_smbus_{read,write}_data() functions.

Fix issues by properly checking for i2c_new_dummy() return value and
unregistering I2C devices on driver remove or probe failure.

Signed-off-by: Krzysztof Kozlowski &lt;k.kozlowski@samsung.com&gt;
Acked-by: Beomho Seo &lt;beomho.seo@samsung.com&gt;
Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit d0a588a57c2b0748df8307a0865a1bbbf1624c53 upstream.

During probe the driver allocates dummy I2C devices (i2c_new_dummy())
but they aren't unregistered during driver remove or probe failure.

Additionally driver does not check the return value of i2c_new_dummy().
In case of error (i2c_new_device(): memory allocation failure or I2C
address cannot be used) this function returns NULL which is later
dereferenced by i2c_smbus_{read,write}_data() functions.

Fix issues by properly checking for i2c_new_dummy() return value and
unregistering I2C devices on driver remove or probe failure.

Signed-off-by: Krzysztof Kozlowski &lt;k.kozlowski@samsung.com&gt;
Acked-by: Beomho Seo &lt;beomho.seo@samsung.com&gt;
Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>iio: cm32181: Fix read integration time function</title>
<updated>2014-05-06T14:59:27+00:00</updated>
<author>
<name>Beomho Seo</name>
<email>beomho.seo@samsung.com</email>
</author>
<published>2014-12-03T00:57:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7b2e3d27a269cc43bbf7fa37d28b8e554ed6b66c'/>
<id>7b2e3d27a269cc43bbf7fa37d28b8e554ed6b66c</id>
<content type='text'>
commit 41c897f8789d0d1039ed873ddcd0caabd5756e0f upstream.

In read integration time function, assign 0 to val.
Because, prevent return inaccurate value when call read integration time.

Cc: Kevin Tsai &lt;ktsai@capellamicro.com&gt;
Signed-off-by: Beomho Seo &lt;beomho.seo@samsung.com&gt;
Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 41c897f8789d0d1039ed873ddcd0caabd5756e0f upstream.

In read integration time function, assign 0 to val.
Because, prevent return inaccurate value when call read integration time.

Cc: Kevin Tsai &lt;ktsai@capellamicro.com&gt;
Signed-off-by: Beomho Seo &lt;beomho.seo@samsung.com&gt;
Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>iio: adc: at91_adc: Repair broken platform_data support</title>
<updated>2014-05-06T14:59:27+00:00</updated>
<author>
<name>Alexandre Belloni</name>
<email>alexandre.belloni@free-electrons.com</email>
</author>
<published>2014-05-03T15:57:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=ba546e37f5d0654709aeac991d78e820e0eff501'/>
<id>ba546e37f5d0654709aeac991d78e820e0eff501</id>
<content type='text'>
commit 467a44b0372d8268ce5bd90e58bde7db51c1d476 upstream.

Trying to use the at91_adc driver while not using device tree is ending up in a
kernel crash:

Unable to handle kernel NULL pointer dereference at virtual address 00000004
[...]
[&lt;c01f3510&gt;] (at91_adc_probe) from [&lt;c0183828&gt;] (platform_drv_probe+0x18/0x48)
[&lt;c0183828&gt;] (platform_drv_probe) from [&lt;c01824a4&gt;] (driver_probe_device+0x100/0x218)
[&lt;c01824a4&gt;] (driver_probe_device) from [&lt;c0182648&gt;] (__driver_attach+0x8c/0x90)
[&lt;c0182648&gt;] (__driver_attach) from [&lt;c0180de4&gt;] (bus_for_each_dev+0x58/0x88)
[&lt;c0180de4&gt;] (bus_for_each_dev) from [&lt;c0181c7c&gt;] (bus_add_driver+0xd4/0x1d4)
[&lt;c0181c7c&gt;] (bus_add_driver) from [&lt;c0182c40&gt;] (driver_register+0x78/0xf4)
[&lt;c0182c40&gt;] (driver_register) from [&lt;c0008998&gt;] (do_one_initcall+0xe8/0x14c)
[&lt;c0008998&gt;] (do_one_initcall) from [&lt;c02f0b50&gt;] (kernel_init_freeable+0xec/0x1b4)
[&lt;c02f0b50&gt;] (kernel_init_freeable) from [&lt;c022acdc&gt;] (kernel_init+0x8/0xe4)
[&lt;c022acdc&gt;] (kernel_init) from [&lt;c0009670&gt;] (ret_from_fork+0x14/0x24)

This is because the at91_adc_caps structure is mandatory but is not filled when
using platform_data. Correct that by using an id_table. It ensues that the
driver will not match "at91_adc" anymore but it was crashing anyway.

Fixes: c46016665fff (iio: at91: ADC start-up time calculation changed since at91sam9x5)
Signed-off-by: Alexandre Belloni &lt;alexandre.belloni@free-electrons.com&gt;
Tested-by: Josh Wu &lt;josh.wu@atmel.com&gt;
Acked-by: Josh Wu &lt;josh.wu@atmel.com&gt;
Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 467a44b0372d8268ce5bd90e58bde7db51c1d476 upstream.

Trying to use the at91_adc driver while not using device tree is ending up in a
kernel crash:

Unable to handle kernel NULL pointer dereference at virtual address 00000004
[...]
[&lt;c01f3510&gt;] (at91_adc_probe) from [&lt;c0183828&gt;] (platform_drv_probe+0x18/0x48)
[&lt;c0183828&gt;] (platform_drv_probe) from [&lt;c01824a4&gt;] (driver_probe_device+0x100/0x218)
[&lt;c01824a4&gt;] (driver_probe_device) from [&lt;c0182648&gt;] (__driver_attach+0x8c/0x90)
[&lt;c0182648&gt;] (__driver_attach) from [&lt;c0180de4&gt;] (bus_for_each_dev+0x58/0x88)
[&lt;c0180de4&gt;] (bus_for_each_dev) from [&lt;c0181c7c&gt;] (bus_add_driver+0xd4/0x1d4)
[&lt;c0181c7c&gt;] (bus_add_driver) from [&lt;c0182c40&gt;] (driver_register+0x78/0xf4)
[&lt;c0182c40&gt;] (driver_register) from [&lt;c0008998&gt;] (do_one_initcall+0xe8/0x14c)
[&lt;c0008998&gt;] (do_one_initcall) from [&lt;c02f0b50&gt;] (kernel_init_freeable+0xec/0x1b4)
[&lt;c02f0b50&gt;] (kernel_init_freeable) from [&lt;c022acdc&gt;] (kernel_init+0x8/0xe4)
[&lt;c022acdc&gt;] (kernel_init) from [&lt;c0009670&gt;] (ret_from_fork+0x14/0x24)

This is because the at91_adc_caps structure is mandatory but is not filled when
using platform_data. Correct that by using an id_table. It ensues that the
driver will not match "at91_adc" anymore but it was crashing anyway.

Fixes: c46016665fff (iio: at91: ADC start-up time calculation changed since at91sam9x5)
Signed-off-by: Alexandre Belloni &lt;alexandre.belloni@free-electrons.com&gt;
Tested-by: Josh Wu &lt;josh.wu@atmel.com&gt;
Acked-by: Josh Wu &lt;josh.wu@atmel.com&gt;
Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>iio: querying buffer scan_mask should return 0/1</title>
<updated>2014-05-06T14:59:27+00:00</updated>
<author>
<name>Alec Berg</name>
<email>alecaberg@chromium.org</email>
</author>
<published>2014-03-19T18:50:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=92c5fbd00304d038d57a282552986cd44912decf'/>
<id>92c5fbd00304d038d57a282552986cd44912decf</id>
<content type='text'>
commit 2076a20fc1a06f7b0333c62a2bb4eeeac7ed1bcb upstream.

Ensure that querying the IIO buffer scan_mask returns a value of
0 or 1. Currently querying the scan mask has the value returned
by test_bit(), which returns either true or false. For some
architectures test_bit() may return -1 for true, which will appear
to return an error when returning from iio_scan_mask_query().

Additionally, it's important for the sysfs interface to consistently
return the same thing when querying the scan_mask.

Signed-off-by: Alec Berg &lt;alecaberg@chromium.org&gt;
Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 2076a20fc1a06f7b0333c62a2bb4eeeac7ed1bcb upstream.

Ensure that querying the IIO buffer scan_mask returns a value of
0 or 1. Currently querying the scan mask has the value returned
by test_bit(), which returns either true or false. For some
architectures test_bit() may return -1 for true, which will appear
to return an error when returning from iio_scan_mask_query().

Additionally, it's important for the sysfs interface to consistently
return the same thing when querying the scan_mask.

Signed-off-by: Alec Berg &lt;alecaberg@chromium.org&gt;
Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>iio:gyro: bug on L3GD20H gyroscope support</title>
<updated>2014-02-18T10:24:49+00:00</updated>
<author>
<name>Denis CIOCCA</name>
<email>denis.ciocca@st.com</email>
</author>
<published>2014-02-14T14:15:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=a0657716416f834ef7710a9044614d50a36c3bdc'/>
<id>a0657716416f834ef7710a9044614d50a36c3bdc</id>
<content type='text'>
The driver was not able to manage the sensor: during probe function
and wai check, the driver stops and writes: "device name and WhoAmI mismatch."
The correct value of L3GD20H wai is 0xd7 instead of 0xd4.
Dropped support for the sensor.

Signed-off-by: Denis Ciocca &lt;denis.ciocca@st.com&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The driver was not able to manage the sensor: during probe function
and wai check, the driver stops and writes: "device name and WhoAmI mismatch."
The correct value of L3GD20H wai is 0xd7 instead of 0xd4.
Dropped support for the sensor.

Signed-off-by: Denis Ciocca &lt;denis.ciocca@st.com&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Jonathan Cameron &lt;jic23@kernel.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
