- 13 10月, 2010 2 次提交
-
-
由 Grant Likely 提交于
The original didn't specify Topcliff in the config prompt text. Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
由 Grant Likely 提交于
This patch makes multiple cleanups to the new topcliff pch spi driver including, but not limited to, - removing superfluous brackets around variables - open coding functions that are only used once - removing unnecessary line breaks - removing unused functions - simplifying the interrupt enable/disable code - remove unnecessary (void *) casts. - remove b_mem_fail from pch_spi_set_tx to code it more cleanly - shorten dev_dbg() messages for conciseness and readability More cleanups are still needed in this driver. In particular, - the driver filename should be changed to spi_topcliff_pch.c - many of the dev_dbg() lines should be trimmed (particularly the ones on unconditional code paths). - I suspect that the locking model not correct. I'd like to know what drivers' critical regions are, and how they are protected. - get_resources and release_resources probably should be open coded in .probe and .release respectively. Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
- 09 10月, 2010 1 次提交
-
-
由 Masayuki Ohtake 提交于
Topcliff PCH is the platform controller hub that is going to be used in Intel's upcoming general embedded platform. All IO peripherals in Topcliff PCH are actually devices sitting on AMBA bus. This patch adds a driver for the SPI bus integrated into the Topcliff device. Signed-off-by: NMasayuki Ohtake <masa-korg@dsn.okisemi.com> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
- 29 9月, 2010 6 次提交
-
-
由 Jassi Brar 提交于
We can't do without setting channel and bus width to same size. In order to do that, use loop read/writes in polling mode and appropriate burst size in DMA mode. Signed-off-by: NJassi Brar <jassi.brar@samsung.com> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
由 Jassi Brar 提交于
Newer SoCs have the SPI clock scaling control in platform's clock management unit. Inorder for such SoCs to work, we need to check the flag clk_from_cmu before making any clock changes. Signed-off-by: NJassi Brar <jassi.brar@samsung.com> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
由 Jassi Brar 提交于
Since we use DMA mode only for xfers bigger than FIFO size, do not map/unmap buffers for polling mode transfers. Signed-off-by: NJassi Brar <jassi.brar@samsung.com> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
由 Julia Lawall 提交于
The return -EINVAL appears to only make sense if the if branch that it is aligned with is taken, and the indentation indicates that this is the authors intent, so move it into that branch. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @r disable braces4@ position p1,p2; statement S1,S2; @@ ( if (...) { ... } | if (...) S1@p1 S2@p2 ) @script:python@ p1 << r.p1; p2 << r.p2; @@ if (p1[0].column == p2[0].column): cocci.print_main("branch",p1) cocci.print_secs("after",p2) // </smpl> Signed-off-by: NJulia Lawall <julia@diku.dk> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
由 Julia Lawall 提交于
list_for_each_entry binds its first argument to a non-null value, and thus any null test on the value of that argument is superfluous. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ iterator I; expression x,E; @@ I(x,...) { <... - (x != NULL) && E ...> } // </smpl> Signed-off-by: NJulia Lawall <julia@diku.dk> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
由 Felipe Balbi 提交于
dev_vdbg() is only compiled when VERBOSE is defined, so there's no need to wrap dev_dbg() on #ifdef VERBOSE .. #endif as we can use dev_vdbg() directly. Signed-off-by: NFelipe Balbi <felipe.balbi@nokia.com> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
- 09 9月, 2010 8 次提交
-
-
由 Linus Walleij 提交于
The PL022 SPI bus is sometimes used for early stuff like regulators that need to be present at module_init() time, so we move this to a subsys_initcall(). Signed-off-by: NLinus Walleij <linus.walleij@stericsson.com> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
由 Linus Walleij 提交于
With the introduction of an AMBA PrimeCell per-cell block clock, the pclk was left on after probe() unless explicitly disabled. This clock is wired to the same clock on PL022 causing it to stay always on since. Fix this up properly by clocking the pclk whenever we want to write into any PL022 registers and clocking the external clock whenever we want to transmit messages on the bus. Signed-off-by: NLinus Walleij <linus.walleij@stericsson.com> Tested-by : Kevin Wells <wellsk40@gmail.com> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
由 Mark Brown 提交于
When using PIO we have a timeout for the TX and RX FIFOs to ensure that the data actually gets transferred. Warn if we hit that timeout - it should never happen, but this makes sure we'll find out if it does. Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: NJassi Brar <jassi.brar@samsung.com> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
由 Jassi Brar 提交于
Instead of, wrongly, reusing the 'val' variable, use a dedicated one for reading the status register. Signed-off-by: NJassi Brar <jassi.brar@samsung.com> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
由 Jassi Brar 提交于
Fix compilation warning by typecasting the tx_buf pointer. [I'm not thrilled with resorting to a cast; but I cannot see a better way to go about this. I don't want to drop the const from struct spi_transfer ~~glikely] Signed-off-by: NJassi Brar <jassi.brar@samsung.com> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
由 Feng Tang 提交于
commit 052dc7c4i "spi/dw_spi: conditional transfer mode change" introduced cs_control code, which has a bug by using bit offset for spi mode to set transfer mode in control register. Also it forces devices who don't need cs_control to re-configure the control registers for each spi transfer. This patch will fix them Signed-off-by: NFeng Tang <feng.tang@intel.com> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
由 Yong Wang 提交于
Allow interrupt sharing since exclusive interrupt line for DW SPI controller is not provided on every platform. Signed-off-by: NYong Wang <yong.y.wang@intel.com> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
由 Mark Brown 提交于
For small transfers at high speeds the expected transfer time can easily be well under 1ms, causing the delay in wait_for_xfer() to be only the dead reckoning fudge factor of 5ms currently included. Experiments on some of my systems shows that this is marginal for some transfers so double it to 10ms. Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: NJassi Brar <jassi.brar@samsung.com> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
- 08 9月, 2010 1 次提交
-
-
由 Mark Brown 提交于
Allow the use of the S3C64xx SPI controller with things like PMICs by moving the init up to subsys_initcall(). Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: NJassi Brar <jassi.brar@samsung.com> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
- 01 9月, 2010 3 次提交
-
-
由 David Lamparter 提交于
introduced by 49dce689 ("spi doesn't need class_device") and bad-fixed by 350d0076 ("spi: fix double-free on spi_unregister_master"), spi_unregister_master would previously device_unregister all of the spi master's siblings (instead of its children). hilarity ensues. fix it to unregister children. Signed-off-by: NDavid Lamparter <equinox@diac24.net> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
由 Mark Brown 提交于
Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: NJassi Brar <jassisinghbrar@gmail.com> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
由 Mark Brown 提交于
The S3C64xx SPI driver requires the machine to call s3c64xx_spi_set_info() to select a few options, including the clock to use for the SPI controller. If this is not done then a NULL will be passed as the clock name for clk_get(), causing an obscure crash. Guard against this and other missing configuration by validating that the clock name has been filled in in the platform data that ets passed in. Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
- 18 8月, 2010 1 次提交
-
-
由 Greg Ungerer 提交于
Using the coldfire qspi driver, I get the following error: drivers/spi/coldfire_qspi.c: In function 'mcfqspi_irq_handler': drivers/spi/coldfire_qspi.c:166: error: 'TASK_NORMAL' undeclared (first use in this function) drivers/spi/coldfire_qspi.c:166: error: (Each undeclared identifier is reported only once It is solved by adding the following include to coldfire_sqpi.c: #include <linux/sched.h> Fix suggested by Jate Sujjavanich <jsujjavanich@syntech-fuelmaster.com> Signed-off-by: NGreg Ungerer <gerg@uclinux.org>
-
- 06 8月, 2010 1 次提交
-
-
由 Grant Likely 提交于
of_device is just an alias for platform_device, so remove it entirely. Also replace to_of_device() with to_platform_device() and update comment blocks. This patch was initially generated from the following semantic patch, and then edited by hand to pick up the bits that coccinelle didn't catch. @@ @@ -struct of_device +struct platform_device Signed-off-by: NGrant Likely <grant.likely@secretlab.ca> Reviewed-by: NDavid S. Miller <davem@davemloft.net>
-
- 01 8月, 2010 2 次提交
-
-
由 Grant Likely 提交于
This patch moves the declaration of of_get_address(), of_get_pci_address(), and of_pci_address_to_resource() out of arch code and into the common linux/of_address header file. This patch also fixes some of the asm/prom.h ordering issues. It still includes some header files that it ideally shouldn't be, but at least the ordering is consistent now so that of_* overrides work. Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
由 Kevin Wells 提交于
Probe and remove hooks belong in the __devinit and __devexit sections respectively. This patch fixes incorrect annotations on the pl022 spi driver. Signed-off-by: NKevin Wells <wellsk40@gmail.com> Acked-by: NLinus Walleij <linus.walleij@stericsson.com> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
- 30 7月, 2010 1 次提交
-
-
由 Anatolij Gustschin 提交于
Move of_register_spi_devices() call from drivers to spi_register_master(). Also change the function to use the struct device_node pointer from master spi device instead of passing it as function argument. Signed-off-by: NAnatolij Gustschin <agust@denx.de> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
- 12 7月, 2010 1 次提交
-
-
由 Anton Vorontsov 提交于
spi_t was removed in commit 644b2a68 ("powerpc/cpm: Remove SPI defines and spi structs"), the commit assumed that spi_t isn't used anywhere outside of the spi_mpc8xxx driver. But it appears that the struct is needed for micropatch code. So, let's reintroduce the struct. Fixes the following build issue: CC arch/powerpc/sysdev/micropatch.o micropatch.c: In function 'cpm_load_patch': micropatch.c:629: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token micropatch.c:629: error: 'spp' undeclared (first use in this function) micropatch.c:629: error: (Each undeclared identifier is reported only once micropatch.c:629: error: for each function it appears in.) Reported-by: NLEROY Christophe <christophe.leroy@c-s.fr> Reported-by: NTony Breeds <tony@bakeyournoodle.com> Cc: <stable@kernel.org> [ .33, .34 ] Signed-off-by: NAnton Vorontsov <avorontsov@mvista.com> Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
-
- 06 7月, 2010 1 次提交
-
-
由 Anatolij Gustschin 提交于
Change annotations from __init/__exit to __devinit/__devexit to get rid of section mismatch warning. Signed-off-by: NAnatolij Gustschin <agust@denx.de> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
- 04 7月, 2010 4 次提交
-
-
由 Brian Niebuhr 提交于
This patch fixes the setup_transfer logic to account for the case where multiple messages to different SPI devices are in the queue simultaneously. With the current logic, the second message in the queue will end up using the transfer parameters for the previous message in the queue. The fix is to reinitialize the transfer parameters for each message rather than only once on the first message. Signed-off-by: NBrian Niebuhr <bniebuhr@efjohnson.com> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
由 Marek Szyprowski 提交于
There are some boards that do not strictly follow SPI standard and use only 3 wires (SCLK, MOSI or MISO, SS) for connecting some simple auxiliary chips and controls them with GPIO based 'spi controller'. In this configuration the MISO or MOSI line is missing (it is not required if the chip does not transfer any data back to host or host only reads data from chip). This patch adds support for such non-standard configuration in GPIO-based SPI controller. It has been tested in configuration without MISO pin. Reviewed-by: NKyungmin Park <kyungmin.park@samsung.com> Signed-off-by: NMarek Szyprowski <m.szyprowski@samsung.com> Acked-by: NDavid Brownell <dbrownell@users.sourceforge.net> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
由 Marek Szyprowski 提交于
This patch adds a new flags argument to bitbang_txrx_be_cpha0 and bitbang_txrx_be_cpha1 transfer functions. This enables support for SPI_MASTER_NO_{TX,RX} transfer modes. The change should have no impact on speed of the existing drivers. bitbank_txrx_* functions are usually inlined into the drivers. When the argument is equal to constant zero, the optimizer would be able to eliminate the dead code (flags checks) easily. Tested on ARM and GCC 4.4.x and in all cases the checks were eliminated in the inlined function. Reviewed-by: NKyungmin Park <kyungmin.park@samsung.com> Signed-off-by: NMarek Szyprowski <m.szyprowski@samsung.com> Acked-by: NDavid Brownell <dbrownell@users.sourceforge.net> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
由 Cory Maccarrone 提交于
This change fixes 8-bit transfers and RX-only transfers. The SPI100k framework requires minimum 16-bit words to be written, so 8-bit transfers must be shited by 8 bits and sent out as a 16-bit word. Additionally, receive-only transfers were failing due to the perceived need to fill the TX buffer with something. This is in fact not needed. Signed-off-by: NCory Maccarrone <darkstar6262@gmail.com> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
- 29 6月, 2010 1 次提交
-
-
由 Ernst Schwab 提交于
SPI bus locking API to allow exclusive access to the SPI bus, especially, but not limited to, for the mmc_spi driver. Coded according to an outline from Grant Likely; here is his specification (accidentally swapped function names corrected): It requires 3 things to be added to struct spi_master. - 1 Mutex - 1 spin lock - 1 flag. The mutex protects spi_sync, and provides sleeping "for free" The spinlock protects the atomic spi_async call. The flag is set when the lock is obtained, and checked while holding the spinlock in spi_async(). If the flag is checked, then spi_async() must fail immediately. The current runtime API looks like this: spi_async(struct spi_device*, struct spi_message*); spi_sync(struct spi_device*, struct spi_message*); The API needs to be extended to this: spi_async(struct spi_device*, struct spi_message*) spi_sync(struct spi_device*, struct spi_message*) spi_bus_lock(struct spi_master*) /* although struct spi_device* might be easier */ spi_bus_unlock(struct spi_master*) spi_async_locked(struct spi_device*, struct spi_message*) spi_sync_locked(struct spi_device*, struct spi_message*) Drivers can only call the last two if they already hold the spi_master_lock(). spi_bus_lock() obtains the mutex, obtains the spin lock, sets the flag, and releases the spin lock before returning. It doesn't even need to sleep while waiting for "in-flight" spi_transactions to complete because its purpose is to guarantee no additional transactions are added. It does not guarantee that the bus is idle. spi_bus_unlock() clears the flag and releases the mutex, which will wake up any waiters. The difference between spi_async() and spi_async_locked() is that the locked version bypasses the check of the lock flag. Both versions need to obtain the spinlock. The difference between spi_sync() and spi_sync_locked() is that spi_sync() must hold the mutex while enqueuing a new transfer. spi_sync_locked() doesn't because the mutex is already held. Note however that spi_sync must *not* continue to hold the mutex while waiting for the transfer to complete, otherwise only one transfer could be queued up at a time! Almost no code needs to be written. The current spi_async() and spi_sync() can probably be renamed to __spi_async() and __spi_sync() so that spi_async(), spi_sync(), spi_async_locked() and spi_sync_locked() can just become wrappers around the common code. spi_sync() is protected by a mutex because it can sleep spi_async() needs to be protected with a flag and a spinlock because it can be called atomically and must not sleep Signed-off-by: NErnst Schwab <eschwab@online.de> [grant.likely@secretlab.ca: use spin_lock_irqsave()] Signed-off-by: NGrant Likely <grant.likely@secretlab.ca> Tested-by: NMatt Fleming <matt@console-pimps.org> Tested-by: NAntonio Ospite <ospite@studenti.unina.it>
-
- 03 6月, 2010 2 次提交
-
-
由 Anatolij Gustschin 提交于
Fixes build errors caused by the: - OF device_node pointer being moved into struct device - removal of the match_table field from struct of_platform_driver Signed-off-by: NAnatolij Gustschin <agust@denx.de> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
由 Grant Likely 提交于
This patch fixes a build error caused by the OF device_node pointer being moved into struct device. Fixes bug introduced by commit 61c7a080 (of: Always use 'struct device.of_node' to get device node pointer) Signed-off-by: NGrant Likely <grant.likely@secretlab.ca> CC: Sean MacLennan <smaclennan@pikatech.com> CC: spi-devel-general@lists.sourceforge.net CC: devicetree-discuss@lists.ozlabs.org
-
- 25 5月, 2010 5 次提交
-
-
由 Grant Likely 提交于
Commit 58f9b0b0, "of: eliminate of_device->node and dev_archdata->{of,prom}_node" changed the location of the device_node pointer. Most drivers were converted to the new location, but the xilinx_spi_of driver was missed and now fails to compile. This patch fixes up the xilinx_spi_of driver to use the new location. Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
由 Thomas Koeller 提交于
Computation of the clock prescaler value returned bogus results if the requested SPI clock was impossible to set. It now sets either the maximum or minimum clock frequency, as appropriate. Signed-off-by: NThomas Koeller <thomas.koeller@baslerweb.com> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
由 hartleys 提交于
A number of files in drivers/spi fail checkincludes.pl due to the double include of <linux/spi/spi_bitbang.h>. The first include is needed to get the struct spi_bitbang definition and the spi_bitbang_* function prototypes. The second include happens after defining EXPAND_BITBANG_TXRX to get the inlined bitbang_txrx_* utility functions. The <linux/spi/spi_bitbang.h> header is also included by a number of other spi drivers, as well as some arch/ code, in order to use struct spi_bitbang and the associated functions. To fix the double include, and remove any potential confusion about it, move the inlined bitbang_txrx_* functions to a new private header in drivers/spi and also remove the need to define EXPAND_BITBANG_TXRX. Signed-off-by: NH Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
由 Anatolij Gustschin 提交于
Signed-off-by: NJohn Rigby <jcrigby@gmail.com> Signed-off-by: NAnatolij Gustschin <agust@denx.de> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-
由 Mika Westerberg 提交于
This patch adds an SPI master driver for the Cirrus EP93xx SPI controller found in EP93xx chips. Signed-off-by: NMika Westerberg <mika.westerberg@iki.fi> Signed-off-by: NH Hartley Sweeten <hsweeten@visionengravers.com> Acked-by: NH Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
-