Age | Commit message (Collapse) | Author | Files | Lines |
|
Use this new function to make code more comprehensible, since we are
reinitialzing the completion, not initializing.
[[email protected]: linux-next resyncs]
Signed-off-by: Wolfram Sang <[email protected]>
Acked-by: Linus Walleij <[email protected]> (personally at LCE13)
Cc: Ingo Molnar <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
|
|
Many drivers that use bitbang library have a leak on probe error paths.
This is because once a spi_master_get() call succeeds, we need an additional
spi_master_put() call to free the memory.
Fix this issue by moving the code taking a reference to master to
spi_bitbang_start(), so spi_bitbang_start() will take a reference to master on
success. With this change, the caller is responsible for calling
spi_bitbang_stop() to decrement the reference and spi_master_put() as
counterpart of spi_alloc_master() to prevent a memory leak.
So now we have below patten for drivers using bitbang library:
probe:
spi_alloc_master -> Init reference count to 1
spi_bitbang_start -> Increment reference count
remove:
spi_bitbang_stop -> Decrement reference count
spi_master_put -> Decrement reference count (reference count reaches 0)
Fixup all users accordingly.
Signed-off-by: Axel Lin <[email protected]>
Suggested-by: Uwe Kleine-Koenig <[email protected]>
Acked-by: Uwe Kleine-Koenig <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
|
|
Conflicts:
drivers/spi/spi-rspi.c
|
|
Use the wrapper function for retrieving the platform data instead of
accessing dev->platform_data directly.
Signed-off-by: Jingoo Han <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Now that the bitbang core does not require a setup() function we can
drop the check in the altera, nuc900 and xilinx drivers.
Signed-off-by: Mark Brown <[email protected]>
|
|
In xilinx_spi_probe() we use xspi->irq to store negative error codes so
it has to be signed. We weren't going to use the upper bit any way so
this is fine.
Signed-off-by: Dan Carpenter <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Use devm_request_irq() for irq allocation which
simplify driver code.
Signed-off-by: Michal Simek <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
It simplifies driver probing.
Signed-off-by: Michal Simek <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
devm_ioremap_resource() automatically checks that
struct resource is initialized.
Also group platform_get_resource() and devm_ioremap_resource()
together.
And remove mem resource from struct xilinx_spi.
Signed-off-by: Michal Simek <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
dev.of_node is in struct device all the time.
Signed-off-by: Michal Simek <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
This is a more traditional name and makes things a bit clearer when
referring to actual struct devices as we do frequently during probe().
Signed-off-by: Mark Brown <[email protected]>
Acked-by: Michal Simek <[email protected]>
|
|
In the past there used to be a separate platform device type for device
tree systems so the probe and removal functions were split into generic
and bus sections. Since this is no longer the case simplify the code (and
remove some unprototyped exports) by factoring everything into the bus
probe() and remove().
Signed-off-by: Mark Brown <[email protected]>
|
|
Saves code and reduces the possibility of error.
Signed-off-by: Mark Brown <[email protected]>
|
|
master->setup() must be initialized to be able
to successfully run spi_bitbang_start()
and satisfy if/else logic there.
"spi: convert drivers to use bits_per_word_mask"
(sha1: 24778be20f87d5aadb19624fc768b3159fa43efc)
Signed-off-by: Michal Simek <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
|
|
|
|
'!' has higher precedence than comparisons so the original condition
is equivalent to "if (xspi->remaining_bytes == 0)". This makes the
static checkers complain.
xspi->remaining_bytes is signed and from looking at the code
briefly, I think it might be able to go negative. I suspect that
going negative may cause a bug, but I don't have the hardware and
can't test.
Signed-off-by: Dan Carpenter <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Setting platform data to NULL is not necessary.
Also fixes the following sparse warning:
drivers/spi/spi-xilinx.c:508:35: warning: Using plain integer as NULL pointer
Signed-off-by: Sachin Kamat <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Do not load endian value from platform data
and rather autodetect it.
Signed-off-by: Michal Simek <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
The ISR currently consumes the rx buffer data and re-enables transmission
from within interrupt context. This is bad because if the interrupt
occurs again before the ISR exits, the new interrupt will be erroneously
cleared by the still completing ISR.
Simplified the ISR by just setting the completion variable and exiting with
no action. Then just looped the transmit functionality in
xilinx_spi_txrx_bufs().
Signed-off-by: Peter Crosthwaite <[email protected]>
Signed-off-by: Michal Simek <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
Fill in the recently added spi_master.bits_per_word_mask field in as
many drivers as possible. Make related cleanups, such as removing any
redundant error-checking, or empty setup callbacks.
Signed-off-by: Stephen Warren <[email protected]>
Acked-by: H Hartley Sweeten <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
|
|
CONFIG_HOTPLUG is going away as an option. As result the __dev*
markings will be going away.
Remove use of __devinit, __devexit_p, __devinitdata, __devinitconst,
and __devexit.
Bill Pemberton has done most of the legwork on this series. I've used
his script to purge the attributes from the drivers/gpio tree.
Reported-by: Bill Pemberton <[email protected]>
Signed-off-by: Grant Likely <[email protected]>
|
|
For simple modules that contain a single platform_driver without any
additional setup code then ends up being a block of duplicated
boilerplate. This patch adds a new macro, module_platform_driver(),
which replaces the module_init()/module_exit() registrations with
template functions.
Signed-off-by: Grant Likely <[email protected]>
Acked-by: Greg Kroah-Hartman <[email protected]>
Reviewed-by: Magnus Damm <[email protected]>
Reviewed-by: Mark Brown <[email protected]>
Reviewed-by: Stephen Boyd <[email protected]>
|
|
Sort the SPI makefile and enforce the naming convention spi_*.c for
spi drivers.
This change also rolls the contents of atmel_spi.h into the .c file
since there is only one user of that particular include file.
v2: - Use 'spi-' prefix instead of 'spi_' to match what seems to be
be the predominant pattern for subsystem prefixes.
- Clean up filenames in Kconfig and header comment blocks
Signed-off-by: Grant Likely <[email protected]>
Acked-by: Wolfram Sang <[email protected]>
Acked-by: Linus Walleij <[email protected]>
|