<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/spi, branch v3.9.9</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/spi?h=v3.9.9</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/spi?h=v3.9.9'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2013-06-27T17:39:23Z</updated>
<entry>
<title>spi/pxa2xx: fix memory corruption due to wrong size used in devm_kzalloc()</title>
<updated>2013-06-27T17:39:23Z</updated>
<author>
<name>Mika Westerberg</name>
<email>mika.westerberg@linux.intel.com</email>
</author>
<published>2013-06-20T14:44:22Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=9ebc0bf8c7c82dff0f915b2a7f2af2a63c394ae0'/>
<id>urn:sha1:9ebc0bf8c7c82dff0f915b2a7f2af2a63c394ae0</id>
<content type='text'>
commit cc0ee9873c6afafb387379ca1df25da78a08c603 upstream.

ACPI part of the driver accidentally used sizeof(*ssp) instead of the
correct sizeof(*pdata). This leads to nasty memory corruptions like the one
below:

    BUG: unable to handle kernel paging request at 0000000749fd30b8
    IP: [&lt;ffffffff813fe8a1&gt;] __list_del_entry+0x31/0xd0
    PGD 0
    Oops: 0000 [#1] PREEMPT SMP
    Modules linked in:
    CPU: 0 PID: 30 Comm: kworker/0:1 Not tainted 3.10.0-rc6v3.10-rc6_sdhci_modprobe+ #443
    task: ffff8801483a0940 ti: ffff88014839e000 task.ti: ffff88014839e000
    RIP: 0010:[&lt;ffffffff813fe8a1&gt;]  [&lt;ffffffff813fe8a1&gt;] __list_del_entry+0x31/0xd0
    RSP: 0000:ffff88014839fde8  EFLAGS: 00010046
    RAX: ffff880149fd30b0 RBX: ffff880149fd3040 RCX: dead000000200200
    RDX: 0000000749fd30b0 RSI: ffff880149fd3058 RDI: ffff88014834d640
    RBP: ffff88014839fde8 R08: ffff88014834d640 R09: 0000000000000001
    R10: ffff8801483a0940 R11: 0000000000000001 R12: ffff880149fd3040
    R13: ffffffff810e0b30 R14: ffff8801483a0940 R15: ffff88014834d640
    FS:  0000000000000000(0000) GS:ffff880149e00000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000000000000168 CR3: 0000000001e0b000 CR4: 00000000001407f0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    Stack:
     ffff88014839fe48 ffffffff810e0baf ffffffff81120abd ffff88014839fe20
     ffff8801483a0940 ffff8801483a0940 ffff8801483a0940 ffff8801486b1c90
     ffff88014834d640 ffffffff810e0b30 0000000000000000 0000000000000000
    Call Trace:
     [&lt;ffffffff810e0baf&gt;] worker_thread+0x7f/0x390
     [&lt;ffffffff81120abd&gt;] ? trace_hardirqs_on+0xd/0x10
     [&lt;ffffffff810e0b30&gt;] ? manage_workers.isra.22+0x2b0/0x2b0
     [&lt;ffffffff810e6c09&gt;] kthread+0xd9/0xe0
     [&lt;ffffffff810f93df&gt;] ? local_clock+0x3f/0x50
     [&lt;ffffffff810e6b30&gt;] ? kthread_create_on_node+0x110/0x110
     [&lt;ffffffff818c5dec&gt;] ret_from_fork+0x7c/0xb0
     [&lt;ffffffff810e6b30&gt;] ? kthread_create_on_node+0x110/0x110

Fix this by using the right structure size in devm_kzalloc().

Reported-by: Jerome Blin &lt;jerome.blin@intel.com&gt;
Signed-off-by: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
Signed-off-by: Mark Brown &lt;broonie@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>spi/pxa2xx: use GFP_ATOMIC in sg table allocation</title>
<updated>2013-06-27T17:39:23Z</updated>
<author>
<name>Mika Westerberg</name>
<email>mika.westerberg@linux.intel.com</email>
</author>
<published>2013-06-18T14:29:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=4666d3e5fb1a1f7b5eefb4e0fe2f8bbe4e59236a'/>
<id>urn:sha1:4666d3e5fb1a1f7b5eefb4e0fe2f8bbe4e59236a</id>
<content type='text'>
commit 5548f98c46538d1da04eff179a52e50537d11465 upstream.

pxa2xx_spi_map_dma_buffer() gets called in tasklet context so we can't
sleep when we allocate a new sg table. Use GFP_ATOMIC here instead.

Signed-off-by: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
Signed-off-by: Mark Brown &lt;broonie@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Merge tag 'spi-fix-v3.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/misc</title>
<updated>2013-04-05T17:04:41Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-04-05T17:04:41Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e0a77f26312a8b23b6040073c50b0c19b82ce8b4'/>
<id>urn:sha1:e0a77f26312a8b23b6040073c50b0c19b82ce8b4</id>
<content type='text'>
Pull spi fixes from Mark Brown:
 "A bunch of small driver fixes plus a fix for error handling in the
  core - nothing too exciting overall."

* tag 'spi-fix-v3.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/misc:
  spi/mpc512x-psc: optionally keep PSC SS asserted across xfer segmensts
  spi: Unlock a spinlock before calling into the controller driver.
  spi/s3c64xx: modified error interrupt handling and init
  spi/bcm63xx: don't disable non enabled clocks in probe error path
  spi/bcm63xx: Remove unused variable
  spi: slink-tegra20: move runtime pm calls to transfer_one_message
</content>
</entry>
<entry>
<title>Merge tag 'pm+acpi-3.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm</title>
<updated>2013-04-04T22:56:28Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-04-04T22:56:28Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d08d528dc1848fb369a0b27cdb0749d8f6f38063'/>
<id>urn:sha1:d08d528dc1848fb369a0b27cdb0749d8f6f38063</id>
<content type='text'>
Pull ACPI and power management fixes from Rafael Wysocki:

 - Revert of a recent cpuidle change that caused Nehalem machines to
   hang on boot from Alex Shi.

 - USB power management fix addressing a crash in the port device
   object's release routine from Rafael J Wysocki.

 - Device PM QoS fix for a potential deadlock related to sysfs interface
   from Rafael J Wysocki.

 - Fix for a cpufreq crash when the /cpus Device Tree node is missing
   from Paolo Pisati.

 - Fix for a build issue on ia64 related to the Boot Graphics Resource
   Table (BGRT) from Tony Luck.

 - Two fixes for ACPI handles being set incorrectly for device objects
   that don't correspond to any ACPI namespace nodes in the I2C and SPI
   subsystems from Rafael J Wysocki.

 - Fix for compiler warnings related to CONFIG_PM_DEVFREQ being unset
   from Rajagopal Venkat.

 - Fix for a symbol definition typo in cpufreq_governor.h from Borislav
   Petkov.

* tag 'pm+acpi-3.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
  ACPI / BGRT: Don't let users configure BGRT on non X86 systems
  cpuidle / ACPI: recover percpu ACPI processor cstate
  ACPI / I2C: Use parent's ACPI_HANDLE() in acpi_i2c_register_devices()
  cpufreq: Correct header guards typo
  ACPI / SPI: Use parent's ACPI_HANDLE() in acpi_register_spi_devices()
  cpufreq: check OF node /cpus presence before dereferencing it
  PM / devfreq: Fix compiler warnings for CONFIG_PM_DEVFREQ unset
  PM / QoS: Avoid possible deadlock related to sysfs access
  USB / PM: Don't try to hide PM QoS flags from usb_port_device_release()
</content>
</entry>
<entry>
<title>ACPI / SPI: Use parent's ACPI_HANDLE() in acpi_register_spi_devices()</title>
<updated>2013-04-01T23:55:45Z</updated>
<author>
<name>Rafael J. Wysocki</name>
<email>rafael.j.wysocki@intel.com</email>
</author>
<published>2013-04-01T00:21:08Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=29896178cff0cd6e4ee78edc26158cc197a6b504'/>
<id>urn:sha1:29896178cff0cd6e4ee78edc26158cc197a6b504</id>
<content type='text'>
The ACPI handle of struct spi_master's dev member should not be
set, because this causes that struct spi_master to be associated
with the ACPI device node corresponding to its parent as the
second "physical_device", which is incorrect (this happens during
the registration of struct spi_master).  Consequently,
acpi_register_spi_devices() should use the ACPI handle of the
parent of the struct spi_master it is called for rather than that
struct spi_master's ACPI handle (which should be NULL).

Make that happen and modify the spi-pxa2xx driver, which currently is
the only driver for ACPI-enumerated SPI controller chips, not to set
the ACPI handle for the struct spi_master it creates.

Signed-off-by: Rafael J. Wysocki &lt;rafael.j.wysocki@intel.com&gt;
Acked-by: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
Acked-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
</content>
</entry>
<entry>
<title>spi/mpc512x-psc: optionally keep PSC SS asserted across xfer segmensts</title>
<updated>2013-04-01T13:30:26Z</updated>
<author>
<name>Anatolij Gustschin</name>
<email>agust@denx.de</email>
</author>
<published>2013-03-13T13:57:43Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1ad849aee5f53353ed88d9cd3d68a51b03a7d44f'/>
<id>urn:sha1:1ad849aee5f53353ed88d9cd3d68a51b03a7d44f</id>
<content type='text'>
Some SPI slave devices require asserted chip select signal across
multiple transfer segments of an SPI message. Currently the driver
always de-asserts the internal SS signal for every single transfer
segment of the message and ignores the 'cs_change' flag of the
transfer description. Disable the internal chip select (SS) only
if this is needed and indicated by the 'cs_change' flag.

Without this change, each partial transfer of a surrounding
multi-part SPI transaction might erroneously change the SS
signal, which might prevent slaves from answering the request
that was sent in a previous transfer segment because the
transaction could be considered aborted (SS was de-asserted
before reading the response).

Reported-by: Gerhard Sittig &lt;gerhard.sittig@ifm.com&gt;
Signed-off-by: Anatolij Gustschin &lt;agust@denx.de&gt;
Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
Cc: stable@vger.kernel.org
</content>
</entry>
<entry>
<title>spi: Unlock a spinlock before calling into the controller driver.</title>
<updated>2013-04-01T13:22:59Z</updated>
<author>
<name>Bryan Freed</name>
<email>bfreed@chromium.org</email>
</author>
<published>2013-03-13T18:17:40Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b0b36b861e434ee1c1a64cb39259e262f79af62e'/>
<id>urn:sha1:b0b36b861e434ee1c1a64cb39259e262f79af62e</id>
<content type='text'>
spi_pump_messages() calls into a controller driver with
unprepare_transfer_hardware() which is documented as "This may sleep".
As in the prepare_transfer_hardware() call below, we should release the
queue_lock spinlock before making the call.
Rework the logic a bit to hold queue_lock to protect the 'busy' flag,
then release it to call unprepare_transfer_hardware().

Signed-off-by: Bryan Freed &lt;bfreed@chromium.org&gt;
Reviewed-by: Doug Anderson &lt;dianders@chromium.org&gt;
Signed-off-by: Doug Anderson &lt;dianders@chromium.org&gt;
Acked-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
</content>
</entry>
<entry>
<title>spi/s3c64xx: modified error interrupt handling and init</title>
<updated>2013-04-01T13:02:18Z</updated>
<author>
<name>Girish K S</name>
<email>girishks2000@gmail.com</email>
</author>
<published>2013-03-13T06:43:30Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=375981f2e14868be16cafbffd34a4f16a6ee01c6'/>
<id>urn:sha1:375981f2e14868be16cafbffd34a4f16a6ee01c6</id>
<content type='text'>
The status of the interrupt is available in the status register,
so reading the clear pending register and writing back the same
value will not actually clear the pending interrupts. This patch
modifies the interrupt handler to read the status register and
clear the corresponding pending bit in the clear pending register.

Modified the hwInit function to clear all the pending interrupts.

Signed-off-by: Girish K S &lt;ks.giri@samsung.com&gt;
Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
Cc: stable@vger.kernel.org
</content>
</entry>
<entry>
<title>drivers/Kconfig: add several missing GENERIC_HARDIRQS dependencies</title>
<updated>2013-03-21T12:35:37Z</updated>
<author>
<name>Heiko Carstens</name>
<email>heiko.carstens@de.ibm.com</email>
</author>
<published>2013-03-20T08:45:22Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6c43a519610a5e11af5be707ad88391ce86129ba'/>
<id>urn:sha1:6c43a519610a5e11af5be707ad88391ce86129ba</id>
<content type='text'>
With this patch an allmodconfig finally builds on s390 again.

Fixes these build errors:

ERROR: "devm_request_threaded_irq" [drivers/spi/spi-altera.ko] undefined!
ERROR: "devm_request_threaded_irq" [drivers/media/platform/sh_veu.ko] undefined!
ERROR: "devm_request_threaded_irq" [drivers/dma/dw_dmac.ko] undefined!

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>spi/bcm63xx: don't disable non enabled clocks in probe error path</title>
<updated>2013-03-12T19:11:31Z</updated>
<author>
<name>Jonas Gorski</name>
<email>jogo@openwrt.org</email>
</author>
<published>2013-03-11T23:13:37Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b435ff212e91bddc2d12e6638a4d846d5f60daa6'/>
<id>urn:sha1:b435ff212e91bddc2d12e6638a4d846d5f60daa6</id>
<content type='text'>
When msg_ctl_width is set to an invalid value we try to disable the
clock despite it never being enabled. Fix it by jumping to the correct
label.

Signed-off-by: Jonas Gorski &lt;jogo@openwrt.org&gt;
Acked-by: Florian Fainelli &lt;florian@openwrt.org&gt;
Signed-off-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
</content>
</entry>
</feed>
