<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/spi, branch v3.17</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>Merge remote-tracking branches 'spi/fix/davinci', 'spi/fix/dw', 'spi/fix/fsl', 'spi/fix/pl022', 'spi/fix/rockchip' and 'spi/fix/sirf' into spi-linus</title>
<updated>2014-09-16T23:20:19+00:00</updated>
<author>
<name>Mark Brown</name>
<email>broonie@kernel.org</email>
</author>
<published>2014-09-16T23:20:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=94b0955ddd1ea4ea1089a282dd8058765fffe937'/>
<id>94b0955ddd1ea4ea1089a282dd8058765fffe937</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>spi: davinci: remove empty function davinci_spi_cleanup</title>
<updated>2014-09-16T17:30:10+00:00</updated>
<author>
<name>Grygorii Strashko</name>
<email>grygorii.strashko@ti.com</email>
</author>
<published>2014-09-16T11:14:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=6e7488f8f6f68218bd52283f78f571466280ac96'/>
<id>6e7488f8f6f68218bd52283f78f571466280ac96</id>
<content type='text'>
Remove empty function davinci_spi_cleanup().

Signed-off-by: Grygorii Strashko &lt;grygorii.strashko@ti.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove empty function davinci_spi_cleanup().

Signed-off-by: Grygorii Strashko &lt;grygorii.strashko@ti.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>spi: davinci: request cs_gpio's from probe</title>
<updated>2014-09-13T16:25:46+00:00</updated>
<author>
<name>Grygorii Strashko</name>
<email>grygorii.strashko@ti.com</email>
</author>
<published>2014-09-12T14:54:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=8936decdd977ee614234153a1aba85d12329fa7a'/>
<id>8936decdd977ee614234153a1aba85d12329fa7a</id>
<content type='text'>
Now CS GPIOs are requested from struct spi_master.setup() callback
and that causes failures when Client SPI device is getting accessed
through SPIDEV driver. The failure happens, because .setup() callback
may be called many times from IOCTL handler and when it's called
second time gpio_request() will fail and return -EBUSY.

Hence, fix it by moving CS GPIOs requesting code in .probe().

Reported-by: Murali Karicheri &lt;m-karicheri2@ti.com&gt;
Signed-off-by: Grygorii Strashko &lt;grygorii.strashko@ti.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now CS GPIOs are requested from struct spi_master.setup() callback
and that causes failures when Client SPI device is getting accessed
through SPIDEV driver. The failure happens, because .setup() callback
may be called many times from IOCTL handler and when it's called
second time gpio_request() will fail and return -EBUSY.

Hence, fix it by moving CS GPIOs requesting code in .probe().

Reported-by: Murali Karicheri &lt;m-karicheri2@ti.com&gt;
Signed-off-by: Grygorii Strashko &lt;grygorii.strashko@ti.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>spi/pl022: Fix error message</title>
<updated>2014-09-09T15:21:51+00:00</updated>
<author>
<name>Roland Stigge</name>
<email>stigge@antcom.de</email>
</author>
<published>2014-09-09T13:17:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=61e89e65e31516cae8124599e43be955eb10514c'/>
<id>61e89e65e31516cae8124599e43be955eb10514c</id>
<content type='text'>
This patch fixes an error message typo ("not" missing).

Signed-off-by: Roland Stigge &lt;stigge@antcom.de&gt;
Signed-off-by: Mark Brown &lt;broonie@linaro.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes an error message typo ("not" missing).

Signed-off-by: Roland Stigge &lt;stigge@antcom.de&gt;
Signed-off-by: Mark Brown &lt;broonie@linaro.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>spi/rockchip: Don't warn if SPI is busy but disabled</title>
<updated>2014-09-04T22:54:11+00:00</updated>
<author>
<name>Doug Anderson</name>
<email>dianders@chromium.org</email>
</author>
<published>2014-09-03T20:44:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=62946172c81578477fcbb26478aebaa31353488d'/>
<id>62946172c81578477fcbb26478aebaa31353488d</id>
<content type='text'>
The reference manual from Rockchip claims this about the BSF (SPI Busy
Flag):
* 0 - SPI is idle or disabled
* 1 - SPI is actively transferring data

The above doesn't quite appear to be true.  Specifically I found the
busy bit set when SPI was disabled.  Let's change the WARN_ON() so we
only check the busy bit if the controller was enabled.

Signed-off-by: Doug Anderson &lt;dianders@chromium.org&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The reference manual from Rockchip claims this about the BSF (SPI Busy
Flag):
* 0 - SPI is idle or disabled
* 1 - SPI is actively transferring data

The above doesn't quite appear to be true.  Specifically I found the
busy bit set when SPI was disabled.  Let's change the WARN_ON() so we
only check the busy bit if the controller was enabled.

Signed-off-by: Doug Anderson &lt;dianders@chromium.org&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>spi/rockchip: Fix the wait_for_idle() timeout</title>
<updated>2014-09-04T22:54:11+00:00</updated>
<author>
<name>Doug Anderson</name>
<email>dianders@chromium.org</email>
</author>
<published>2014-09-03T20:44:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=64bc0110f1ec905b1676b5ef60c1cc5b1799e1b6'/>
<id>64bc0110f1ec905b1676b5ef60c1cc5b1799e1b6</id>
<content type='text'>
The wait_for_idle() could get unlucky and timeout too quickly.
Specifically, the old calculation was effectively:
  timeout = jiffies + 1;
  if (jiffies &gt;= timeout) print warning;

From the above it should be obvious that if jiffies ticks in just the
wrong place then we'll have an effective timeout of 0.

Fix this by effectively changing the above "&gt;=" to a "&gt;".  That gives
us an extra jiffy to finish.

Signed-off-by: Doug Anderson &lt;dianders@chromium.org&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The wait_for_idle() could get unlucky and timeout too quickly.
Specifically, the old calculation was effectively:
  timeout = jiffies + 1;
  if (jiffies &gt;= timeout) print warning;

From the above it should be obvious that if jiffies ticks in just the
wrong place then we'll have an effective timeout of 0.

Fix this by effectively changing the above "&gt;=" to a "&gt;".  That gives
us an extra jiffy to finish.

Signed-off-by: Doug Anderson &lt;dianders@chromium.org&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>spi: sirf: add fifo reset/start for cmd transfer</title>
<updated>2014-09-04T22:37:23+00:00</updated>
<author>
<name>Qipan Li</name>
<email>Qipan.Li@csr.com</email>
</author>
<published>2014-09-02T09:02:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=810a58b0256b24f194dda5ca1e705204ca703f7b'/>
<id>810a58b0256b24f194dda5ca1e705204ca703f7b</id>
<content type='text'>
for command mode spi transfer, HW spec requires to do fifo reset work to
clear FIFO status.

Signed-off-by: Qipan Li &lt;Qipan.Li@csr.com&gt;
Signed-off-by: Barry Song &lt;Baohua.Song@csr.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
for command mode spi transfer, HW spec requires to do fifo reset work to
clear FIFO status.

Signed-off-by: Qipan Li &lt;Qipan.Li@csr.com&gt;
Signed-off-by: Barry Song &lt;Baohua.Song@csr.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>spi: sirf: enable RX_IO_DMA_INT interrupt</title>
<updated>2014-09-04T19:25:07+00:00</updated>
<author>
<name>Qipan Li</name>
<email>Qipan.Li@csr.com</email>
</author>
<published>2014-09-02T09:01:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=f2a08b404691ef3e7be6ce81c185335cfc68b6db'/>
<id>f2a08b404691ef3e7be6ce81c185335cfc68b6db</id>
<content type='text'>
in spi interrupt handler, we need check RX_IO_DMA status to ensure
rx fifo have received the specify count data.

if not set, the while statement in spi isr function will keep loop,
at last, make the kernel hang.

[The code is actually there in the interrupt handler but apparently it
needs the interrupt unmasking so the handler sees the status -- broonie]

Signed-off-by: Qipan Li &lt;Qipan.Li@csr.com&gt;
Signed-off-by: Barry Song &lt;Baohua.Song@csr.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
Cc: stable@vger.kernel.org
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
in spi interrupt handler, we need check RX_IO_DMA status to ensure
rx fifo have received the specify count data.

if not set, the while statement in spi isr function will keep loop,
at last, make the kernel hang.

[The code is actually there in the interrupt handler but apparently it
needs the interrupt unmasking so the handler sees the status -- broonie]

Signed-off-by: Qipan Li &lt;Qipan.Li@csr.com&gt;
Signed-off-by: Barry Song &lt;Baohua.Song@csr.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
Cc: stable@vger.kernel.org
</pre>
</div>
</content>
</entry>
<entry>
<title>spi: dw: Don't use devm_kzalloc in master-&gt;setup callback</title>
<updated>2014-09-01T16:51:25+00:00</updated>
<author>
<name>Axel Lin</name>
<email>axel.lin@ingics.com</email>
</author>
<published>2014-08-31T04:47:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=a97c883a16da7e0691a3be5465926c92a8da4da6'/>
<id>a97c883a16da7e0691a3be5465926c92a8da4da6</id>
<content type='text'>
device_add() expects that any memory allocated via devm_* API is only
done in the device's probe function.

Fix below boot warning:
WARNING: CPU: 1 PID: 1 at drivers/base/dd.c:286 driver_probe_device+0x2b4/0x2f4()
Modules linked in:
CPU: 1 PID: 1 Comm: swapper/0 Not tainted 3.16.0-10474-g835c90b-dirty #160
[&lt;c0016364&gt;] (unwind_backtrace) from [&lt;c001251c&gt;] (show_stack+0x20/0x24)
[&lt;c001251c&gt;] (show_stack) from [&lt;c04eaefc&gt;] (dump_stack+0x7c/0x98)
[&lt;c04eaefc&gt;] (dump_stack) from [&lt;c0023d4c&gt;] (warn_slowpath_common+0x78/0x9c)
[&lt;c0023d4c&gt;] (warn_slowpath_common) from [&lt;c0023d9c&gt;] (warn_slowpath_null+0x2c/0x34)
[&lt;c0023d9c&gt;] (warn_slowpath_null) from [&lt;c0302c60&gt;] (driver_probe_device+0x2b4/0x2f4)
[&lt;c0302c60&gt;] (driver_probe_device) from [&lt;c0302d90&gt;] (__device_attach+0x50/0x54)
[&lt;c0302d90&gt;] (__device_attach) from [&lt;c0300e60&gt;] (bus_for_each_drv+0x54/0x9c)
[&lt;c0300e60&gt;] (bus_for_each_drv) from [&lt;c0302958&gt;] (device_attach+0x84/0x90)
[&lt;c0302958&gt;] (device_attach) from [&lt;c0301f10&gt;] (bus_probe_device+0x94/0xb8)
[&lt;c0301f10&gt;] (bus_probe_device) from [&lt;c03000c0&gt;] (device_add+0x434/0x4fc)
[&lt;c03000c0&gt;] (device_add) from [&lt;c0342dd4&gt;] (spi_add_device+0x98/0x164)
[&lt;c0342dd4&gt;] (spi_add_device) from [&lt;c03444a4&gt;] (spi_register_master+0x598/0x768)
[&lt;c03444a4&gt;] (spi_register_master) from [&lt;c03446b4&gt;] (devm_spi_register_master+0x40/0x80)
[&lt;c03446b4&gt;] (devm_spi_register_master) from [&lt;c0346214&gt;] (dw_spi_add_host+0x1a8/0x258)
[&lt;c0346214&gt;] (dw_spi_add_host) from [&lt;c0346920&gt;] (dw_spi_mmio_probe+0x1d4/0x294)
[&lt;c0346920&gt;] (dw_spi_mmio_probe) from [&lt;c0304560&gt;] (platform_drv_probe+0x3c/0x6c)
[&lt;c0304560&gt;] (platform_drv_probe) from [&lt;c0302a98&gt;] (driver_probe_device+0xec/0x2f4)
[&lt;c0302a98&gt;] (driver_probe_device) from [&lt;c0302d3c&gt;] (__driver_attach+0x9c/0xa0)
[&lt;c0302d3c&gt;] (__driver_attach) from [&lt;c0300f0c&gt;] (bus_for_each_dev+0x64/0x98)
[&lt;c0300f0c&gt;] (bus_for_each_dev) from [&lt;c0302518&gt;] (driver_attach+0x2c/0x30)
[&lt;c0302518&gt;] (driver_attach) from [&lt;c0302134&gt;] (bus_add_driver+0xdc/0x1f4)
[&lt;c0302134&gt;] (bus_add_driver) from [&lt;c03035c8&gt;] (driver_register+0x88/0x104)
[&lt;c03035c8&gt;] (driver_register) from [&lt;c030445c&gt;] (__platform_driver_register+0x58/0x6c)
[&lt;c030445c&gt;] (__platform_driver_register) from [&lt;c0700f00&gt;] (dw_spi_mmio_driver_init+0x18/0x20)
[&lt;c0700f00&gt;] (dw_spi_mmio_driver_init) from [&lt;c0008914&gt;] (do_one_initcall+0x90/0x1d4)
[&lt;c0008914&gt;] (do_one_initcall) from [&lt;c06d7d90&gt;] (kernel_init_freeable+0x178/0x248)
[&lt;c06d7d90&gt;] (kernel_init_freeable) from [&lt;c04e687c&gt;] (kernel_init+0x18/0xfc)
[&lt;c04e687c&gt;] (kernel_init) from [&lt;c000ecd8&gt;] (ret_from_fork+0x14/0x20)

Reported-by: Thor Thayer &lt;tthayer@opensource.altera.com&gt;
Signed-off-by: Axel Lin &lt;axel.lin@ingics.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
Cc: stable@vger.kernel.org
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
device_add() expects that any memory allocated via devm_* API is only
done in the device's probe function.

Fix below boot warning:
WARNING: CPU: 1 PID: 1 at drivers/base/dd.c:286 driver_probe_device+0x2b4/0x2f4()
Modules linked in:
CPU: 1 PID: 1 Comm: swapper/0 Not tainted 3.16.0-10474-g835c90b-dirty #160
[&lt;c0016364&gt;] (unwind_backtrace) from [&lt;c001251c&gt;] (show_stack+0x20/0x24)
[&lt;c001251c&gt;] (show_stack) from [&lt;c04eaefc&gt;] (dump_stack+0x7c/0x98)
[&lt;c04eaefc&gt;] (dump_stack) from [&lt;c0023d4c&gt;] (warn_slowpath_common+0x78/0x9c)
[&lt;c0023d4c&gt;] (warn_slowpath_common) from [&lt;c0023d9c&gt;] (warn_slowpath_null+0x2c/0x34)
[&lt;c0023d9c&gt;] (warn_slowpath_null) from [&lt;c0302c60&gt;] (driver_probe_device+0x2b4/0x2f4)
[&lt;c0302c60&gt;] (driver_probe_device) from [&lt;c0302d90&gt;] (__device_attach+0x50/0x54)
[&lt;c0302d90&gt;] (__device_attach) from [&lt;c0300e60&gt;] (bus_for_each_drv+0x54/0x9c)
[&lt;c0300e60&gt;] (bus_for_each_drv) from [&lt;c0302958&gt;] (device_attach+0x84/0x90)
[&lt;c0302958&gt;] (device_attach) from [&lt;c0301f10&gt;] (bus_probe_device+0x94/0xb8)
[&lt;c0301f10&gt;] (bus_probe_device) from [&lt;c03000c0&gt;] (device_add+0x434/0x4fc)
[&lt;c03000c0&gt;] (device_add) from [&lt;c0342dd4&gt;] (spi_add_device+0x98/0x164)
[&lt;c0342dd4&gt;] (spi_add_device) from [&lt;c03444a4&gt;] (spi_register_master+0x598/0x768)
[&lt;c03444a4&gt;] (spi_register_master) from [&lt;c03446b4&gt;] (devm_spi_register_master+0x40/0x80)
[&lt;c03446b4&gt;] (devm_spi_register_master) from [&lt;c0346214&gt;] (dw_spi_add_host+0x1a8/0x258)
[&lt;c0346214&gt;] (dw_spi_add_host) from [&lt;c0346920&gt;] (dw_spi_mmio_probe+0x1d4/0x294)
[&lt;c0346920&gt;] (dw_spi_mmio_probe) from [&lt;c0304560&gt;] (platform_drv_probe+0x3c/0x6c)
[&lt;c0304560&gt;] (platform_drv_probe) from [&lt;c0302a98&gt;] (driver_probe_device+0xec/0x2f4)
[&lt;c0302a98&gt;] (driver_probe_device) from [&lt;c0302d3c&gt;] (__driver_attach+0x9c/0xa0)
[&lt;c0302d3c&gt;] (__driver_attach) from [&lt;c0300f0c&gt;] (bus_for_each_dev+0x64/0x98)
[&lt;c0300f0c&gt;] (bus_for_each_dev) from [&lt;c0302518&gt;] (driver_attach+0x2c/0x30)
[&lt;c0302518&gt;] (driver_attach) from [&lt;c0302134&gt;] (bus_add_driver+0xdc/0x1f4)
[&lt;c0302134&gt;] (bus_add_driver) from [&lt;c03035c8&gt;] (driver_register+0x88/0x104)
[&lt;c03035c8&gt;] (driver_register) from [&lt;c030445c&gt;] (__platform_driver_register+0x58/0x6c)
[&lt;c030445c&gt;] (__platform_driver_register) from [&lt;c0700f00&gt;] (dw_spi_mmio_driver_init+0x18/0x20)
[&lt;c0700f00&gt;] (dw_spi_mmio_driver_init) from [&lt;c0008914&gt;] (do_one_initcall+0x90/0x1d4)
[&lt;c0008914&gt;] (do_one_initcall) from [&lt;c06d7d90&gt;] (kernel_init_freeable+0x178/0x248)
[&lt;c06d7d90&gt;] (kernel_init_freeable) from [&lt;c04e687c&gt;] (kernel_init+0x18/0xfc)
[&lt;c04e687c&gt;] (kernel_init) from [&lt;c000ecd8&gt;] (ret_from_fork+0x14/0x20)

Reported-by: Thor Thayer &lt;tthayer@opensource.altera.com&gt;
Signed-off-by: Axel Lin &lt;axel.lin@ingics.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
Cc: stable@vger.kernel.org
</pre>
</div>
</content>
</entry>
<entry>
<title>spi: fsl: Don't use devm_kzalloc in master-&gt;setup callback</title>
<updated>2014-09-01T09:24:52+00:00</updated>
<author>
<name>Axel Lin</name>
<email>axel.lin@ingics.com</email>
</author>
<published>2014-08-31T04:44:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=d9f26748128c73ec6bed2846ca52fb1c2edc3ced'/>
<id>d9f26748128c73ec6bed2846ca52fb1c2edc3ced</id>
<content type='text'>
device_add() expects that any memory allocated via devm_* API is only
done in the device's probe function.

Fix below boot warning:
[    3.092348] WARNING: at drivers/base/dd.c:286
[    3.096637] Modules linked in:
[    3.099697] CPU: 0 PID: 25 Comm: kworker/u2:1 Tainted: G W 3.16.1-s3k-drv-999-svn5771_knld-999 #158
[ 3.109610] Workqueue: deferwq deferred_probe_work_func
[    3.114736] task: c787f020 ti: c790c000 task.ti: c790c000
[    3.120062] NIP: c01df158 LR: c01df144 CTR: 00000000
[    3.124983] REGS: c790db30 TRAP: 0700   Tainted: G        W (3.16.1-s3k-drv-999-svn5771_knld-999)
[    3.134162] MSR: 00029032 &lt;EE,ME,IR,DR,RI&gt;  CR: 22002082 XER: 20000000
[    3.140703]
[    3.140703] GPR00: 00000001 c790dbe0 c787f020 00000044 00000054 00000308 c056da0e 20737069
[    3.140703] GPR08: 33323736 000ebfe0 00000308 000ebfdf 22002082 00000000 c046c5a0 c046c608
[    3.140703] GPR16: c046c614 c046c620 c046c62c c046c638 c046c648 c046c654 c046c68c c046c6c4
[    3.140703] GPR24: 00000000 00000000 00000003 c0401aa0 c0596638 c059662c c054e7a8 c7996800
[    3.170102] NIP [c01df158] driver_probe_device+0xf8/0x334
[    3.175431] LR [c01df144] driver_probe_device+0xe4/0x334
[    3.180633] Call Trace:
[    3.183093] [c790dbe0] [c01df144] driver_probe_device+0xe4/0x334 (unreliable)
[    3.190147] [c790dc10] [c01dd15c] bus_for_each_drv+0x7c/0xc0
[    3.195741] [c790dc40] [c01df5fc] device_attach+0xcc/0xf8
[    3.201076] [c790dc60] [c01dd6d4] bus_probe_device+0xb4/0xc4
[    3.206666] [c790dc80] [c01db9f8] device_add+0x270/0x564
[    3.211923] [c790dcc0] [c0219e84] spi_add_device+0xc0/0x190
[    3.217427] [c790dce0] [c021a79c] spi_register_master+0x720/0x834
[    3.223455] [c790dd40] [c021cb48] of_fsl_spi_probe+0x55c/0x614
[    3.229234] [c790dda0] [c01e0d2c] platform_drv_probe+0x30/0x74
[    3.234987] [c790ddb0] [c01df18c] driver_probe_device+0x12c/0x334
[    3.241008] [c790dde0] [c01dd15c] bus_for_each_drv+0x7c/0xc0
[    3.246602] [c790de10] [c01df5fc] device_attach+0xcc/0xf8
[    3.251937] [c790de30] [c01dd6d4] bus_probe_device+0xb4/0xc4
[    3.257536] [c790de50] [c01de9d8] deferred_probe_work_func+0x98/0xe0
[    3.263816] [c790de70] [c00305b8] process_one_work+0x18c/0x440
[    3.269577] [c790dea0] [c0030a00] worker_thread+0x194/0x67c
[    3.275105] [c790def0] [c0039198] kthread+0xd0/0xe4
[    3.279911] [c790df40] [c000c6d0] ret_from_kernel_thread+0x5c/0x64
[    3.285970] Instruction dump:
[    3.288900] 80de0000 419e01d0 3b7b0038 3c60c046 7f65db78 38635264 48211b99 813f00a0
[    3.296559] 381f00a0 7d290278 3169ffff 7c0b4910 &lt;0f000000&gt; 93df0044 7fe3fb78 4bfffd4d

Reported-by: leroy christophe &lt;christophe.leroy@c-s.fr&gt;
Signed-off-by: Axel Lin &lt;axel.lin@ingics.com&gt;
Tested-by: Christophe Leroy &lt;christophe.leroy@c-s.fr&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
Cc: stable@vger.kernel.org
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
device_add() expects that any memory allocated via devm_* API is only
done in the device's probe function.

Fix below boot warning:
[    3.092348] WARNING: at drivers/base/dd.c:286
[    3.096637] Modules linked in:
[    3.099697] CPU: 0 PID: 25 Comm: kworker/u2:1 Tainted: G W 3.16.1-s3k-drv-999-svn5771_knld-999 #158
[ 3.109610] Workqueue: deferwq deferred_probe_work_func
[    3.114736] task: c787f020 ti: c790c000 task.ti: c790c000
[    3.120062] NIP: c01df158 LR: c01df144 CTR: 00000000
[    3.124983] REGS: c790db30 TRAP: 0700   Tainted: G        W (3.16.1-s3k-drv-999-svn5771_knld-999)
[    3.134162] MSR: 00029032 &lt;EE,ME,IR,DR,RI&gt;  CR: 22002082 XER: 20000000
[    3.140703]
[    3.140703] GPR00: 00000001 c790dbe0 c787f020 00000044 00000054 00000308 c056da0e 20737069
[    3.140703] GPR08: 33323736 000ebfe0 00000308 000ebfdf 22002082 00000000 c046c5a0 c046c608
[    3.140703] GPR16: c046c614 c046c620 c046c62c c046c638 c046c648 c046c654 c046c68c c046c6c4
[    3.140703] GPR24: 00000000 00000000 00000003 c0401aa0 c0596638 c059662c c054e7a8 c7996800
[    3.170102] NIP [c01df158] driver_probe_device+0xf8/0x334
[    3.175431] LR [c01df144] driver_probe_device+0xe4/0x334
[    3.180633] Call Trace:
[    3.183093] [c790dbe0] [c01df144] driver_probe_device+0xe4/0x334 (unreliable)
[    3.190147] [c790dc10] [c01dd15c] bus_for_each_drv+0x7c/0xc0
[    3.195741] [c790dc40] [c01df5fc] device_attach+0xcc/0xf8
[    3.201076] [c790dc60] [c01dd6d4] bus_probe_device+0xb4/0xc4
[    3.206666] [c790dc80] [c01db9f8] device_add+0x270/0x564
[    3.211923] [c790dcc0] [c0219e84] spi_add_device+0xc0/0x190
[    3.217427] [c790dce0] [c021a79c] spi_register_master+0x720/0x834
[    3.223455] [c790dd40] [c021cb48] of_fsl_spi_probe+0x55c/0x614
[    3.229234] [c790dda0] [c01e0d2c] platform_drv_probe+0x30/0x74
[    3.234987] [c790ddb0] [c01df18c] driver_probe_device+0x12c/0x334
[    3.241008] [c790dde0] [c01dd15c] bus_for_each_drv+0x7c/0xc0
[    3.246602] [c790de10] [c01df5fc] device_attach+0xcc/0xf8
[    3.251937] [c790de30] [c01dd6d4] bus_probe_device+0xb4/0xc4
[    3.257536] [c790de50] [c01de9d8] deferred_probe_work_func+0x98/0xe0
[    3.263816] [c790de70] [c00305b8] process_one_work+0x18c/0x440
[    3.269577] [c790dea0] [c0030a00] worker_thread+0x194/0x67c
[    3.275105] [c790def0] [c0039198] kthread+0xd0/0xe4
[    3.279911] [c790df40] [c000c6d0] ret_from_kernel_thread+0x5c/0x64
[    3.285970] Instruction dump:
[    3.288900] 80de0000 419e01d0 3b7b0038 3c60c046 7f65db78 38635264 48211b99 813f00a0
[    3.296559] 381f00a0 7d290278 3169ffff 7c0b4910 &lt;0f000000&gt; 93df0044 7fe3fb78 4bfffd4d

Reported-by: leroy christophe &lt;christophe.leroy@c-s.fr&gt;
Signed-off-by: Axel Lin &lt;axel.lin@ingics.com&gt;
Tested-by: Christophe Leroy &lt;christophe.leroy@c-s.fr&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
Cc: stable@vger.kernel.org
</pre>
</div>
</content>
</entry>
</feed>
