<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/spi, branch v3.15</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/spi?h=v3.15</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/spi?h=v3.15'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2014-05-13T18:08:34Z</updated>
<entry>
<title>Merge remote-tracking branches 'spi/fix/pxa2xx' and 'spi/fix/qup' into spi-linus</title>
<updated>2014-05-13T18:08:34Z</updated>
<author>
<name>Mark Brown</name>
<email>broonie@linaro.org</email>
</author>
<published>2014-05-13T18:08:34Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fd30c37331ad8ed7c7e0e4c21f5ee309fec21d7d'/>
<id>urn:sha1:fd30c37331ad8ed7c7e0e4c21f5ee309fec21d7d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'spi/fix/core' into spi-linus</title>
<updated>2014-05-13T18:08:33Z</updated>
<author>
<name>Mark Brown</name>
<email>broonie@linaro.org</email>
</author>
<published>2014-05-13T18:08:33Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6c7bdf2d9c89530c87ef92ca79b1f0b2eff7ba30'/>
<id>urn:sha1:6c7bdf2d9c89530c87ef92ca79b1f0b2eff7ba30</id>
<content type='text'>
</content>
</entry>
<entry>
<title>spi/pxa2xx: Prevent DMA from transferring too many bytes</title>
<updated>2014-05-12T21:05:37Z</updated>
<author>
<name>Mika Westerberg</name>
<email>mika.westerberg@linux.intel.com</email>
</author>
<published>2014-05-08T14:30:31Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=111e0a9dc71ed75baa5e739289b9bdb06fda13be'/>
<id>urn:sha1:111e0a9dc71ed75baa5e739289b9bdb06fda13be</id>
<content type='text'>
In case we are doing DMA transfer and the size of the buffer is not multiple
of 4 bytes the driver truncates that to 4-byte boundary and tries to handle
remaining bytes using PIO.

Or that is what it tried to do. What actually happens is that it calls
ALIGN() to the buffer size which aligns it to the next 4-byte boundary
(doesn't truncate). Doing this results 1-3 bytes extra to be transferred.
Furthermore we handle remaining bytes using PIO which results one extra
byte to be transferred. In worst case the driver transfers 4 extra bytes.

While investigating this it turned out that the DMA hardware doesn't even
have such limitation so we can solve this by dropping the code that tries
to handle unaligned bytes.

Reported-by: Chiau Ee Chew &lt;chiau.ee.chew@intel.com&gt;
Reported-by: Hock Leong Kweh &lt;hock.leong.kweh@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;
</content>
</entry>
<entry>
<title>spi: core: Don't destroy master queue if we fail to create it</title>
<updated>2014-05-03T16:58:19Z</updated>
<author>
<name>Mark Brown</name>
<email>broonie@linaro.org</email>
</author>
<published>2014-05-01T17:47:52Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c3676d5ceff213cba35af5ee5f320d2e8dc48cdf'/>
<id>urn:sha1:c3676d5ceff213cba35af5ee5f320d2e8dc48cdf</id>
<content type='text'>
If we fail to create the master queue for some reason we should not attempt
to clean it up since attempting to stop a kthread that was not created will
hang and it's just generally bad practice. Unfortunately at present we call
spi_destroy_queue() even in cases where the creation fails.

Fix this by fixing the error handling in spi_master_initialize_queue() so
that we only flag the master as queued or destroy the queue if creation
succeeded. The change to the flag is done since the general master
cleanup uses this to destroy the queue.

Reported-by: Ricardo Ribalda Delgado &lt;ricardo.ribalda@gmail.com&gt;
Signed-off-by: Mark Brown &lt;broonie@linaro.org&gt;
Acked-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
</content>
</entry>
<entry>
<title>spi: qup: Fix return value checking for pm_runtime_get_sync()</title>
<updated>2014-05-03T16:52:27Z</updated>
<author>
<name>Axel Lin</name>
<email>axel.lin@ingics.com</email>
</author>
<published>2014-05-03T02:57:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3d89e141bbf8619f3db97c38e33cb6d7a563614d'/>
<id>urn:sha1:3d89e141bbf8619f3db97c38e33cb6d7a563614d</id>
<content type='text'>
pm_runtime_get_sync() returns 1 if !CONFIG_PM_RUNTIME.

Signed-off-by: Axel Lin &lt;axel.lin@ingics.com&gt;
Signed-off-by: Mark Brown &lt;broonie@linaro.org&gt;
</content>
</entry>
<entry>
<title>spi: core: Protect DMA code by #ifdef CONFIG_HAS_DMA</title>
<updated>2014-05-02T17:08:40Z</updated>
<author>
<name>Geert Uytterhoeven</name>
<email>geert@linux-m68k.org</email>
</author>
<published>2014-05-02T04:29:34Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2de440f59ca9615c92820d165d5e59756e54026b'/>
<id>urn:sha1:2de440f59ca9615c92820d165d5e59756e54026b</id>
<content type='text'>
If NO_DMA=y:

drivers/built-in.o: In function `spi_map_buf':
spi.c:(.text+0x21bc60): undefined reference to `dma_map_sg'
drivers/built-in.o: In function `spi_unmap_buf.isra.33':
spi.c:(.text+0x21c32e): undefined reference to `dma_unmap_sg'
make[3]: *** [vmlinux] Error 1

Protect the DMA code by #ifdef CONFIG_HAS_DMA to fix this:
  - Extract __spi_map_msg() from spi_map_msg(),
  - Provide dummy definitions of __spi_map_msg() and spi_unmap_msg() if
    !CONFIG_HAS_DMA.

Signed-off-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Mark Brown &lt;broonie@linaro.org&gt;
</content>
</entry>
<entry>
<title>Merge remote-tracking branches 'spi/fix/atmel', 'spi/fix/bfin5xx', 'spi/fix/hspi' and 'spi/fix/sirf' into spi-linus</title>
<updated>2014-04-23T12:50:18Z</updated>
<author>
<name>Mark Brown</name>
<email>broonie@linaro.org</email>
</author>
<published>2014-04-23T12:50:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=201f9e4dd5ecdefa70d4cf94750a667e2382d13f'/>
<id>urn:sha1:201f9e4dd5ecdefa70d4cf94750a667e2382d13f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>spi: core: Ignore unsupported Dual/Quad Transfer Mode bits</title>
<updated>2014-04-18T17:24:38Z</updated>
<author>
<name>Geert Uytterhoeven</name>
<email>geert+renesas@glider.be</email>
</author>
<published>2014-04-14T17:39:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=83596fbeb5d28e8cb8878786133945d4dc7c0090'/>
<id>urn:sha1:83596fbeb5d28e8cb8878786133945d4dc7c0090</id>
<content type='text'>
The availability of SPI Dual or Quad Transfer Mode as indicated by the
"spi-tx-bus-width" and "spi-rx-bus-width" properties in the device tree is
a hardware property of the SPI master, SPI slave, and board wiring.  Hence
the SPI core should not reject an SPI slave because an SPI master driver
doesn't (yet) support Dual or Quad Transfer Mode.

Change the lack of Dual or Quad Transfer Mode support in the SPI master
driver from an error condition to a warning condition, and ignore the
unsupported mode bits, falling back to Single Transfer Mode, to avoid
breakages when running old kernels with new device trees.

Fixes: f477b7fb13df (spi: DUAL and QUAD support)
Signed-off-by: Geert Uytterhoeven &lt;geert+renesas@glider.be&gt;
Signed-off-by: Mark Brown &lt;broonie@linaro.org&gt;
Cc: stable@vger.kernel.org
</content>
</entry>
<entry>
<title>spi: atmel: Fix scheduling while atomic bug</title>
<updated>2014-04-18T14:41:23Z</updated>
<author>
<name>Alexander Stein</name>
<email>alexanders83@web.de</email>
</author>
<published>2014-04-13T10:45:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1676014ef974ce71a854e7f415e2bb52feb24868'/>
<id>urn:sha1:1676014ef974ce71a854e7f415e2bb52feb24868</id>
<content type='text'>
atmel_spi_lock does a spin_lock_irqsave, so we need to renable the
interrupts when we want to schedule.

Signed-off-by: Alexander Stein &lt;alexanders83@web.de&gt;
Signed-off-by: Mark Brown &lt;broonie@linaro.org&gt;
</content>
</entry>
<entry>
<title>spi: sh-hspi: Do not specifically request shyway_clk clock</title>
<updated>2014-04-14T20:14:54Z</updated>
<author>
<name>Simon Horman</name>
<email>horms+renesas@verge.net.au</email>
</author>
<published>2014-04-14T01:41:38Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=4a4dd7d80e11f62cacf49bd90d9448a218188af7'/>
<id>urn:sha1:4a4dd7d80e11f62cacf49bd90d9448a218188af7</id>
<content type='text'>
Rather than requesting the shyway_clk call clk_get with
the device and a NULL con_id.

This is in keeping with the way that clk_get() is called
on other drivers used by Renesas Gen 1 SoCs. And I believe
it is compatible with supplying clocks via DT, unlike the current code.

It appears to me that the two uses of this driver are
the r8a7778 and r8a7779 SoCs.

The r8a7779 already has clocks setup to allow this driver to continue to work
with this change applied.

The r8a7778 has clocks incorrectly setup to allow this driver to continue
to work with this change applied. This problem is addressed in
"ARM: shmobile: r8a7778: Use clks as MSTP007 parent" which is thus
a pre-requisite of this patch.

Signed-off-by: Simon Horman &lt;horms+renesas@verge.net.au&gt;
Signed-off-by: Mark Brown &lt;broonie@linaro.org&gt;
</content>
</entry>
</feed>
