On Tue, 22 Jul 2008 12:28:00 -0700 David Brownell <[EMAIL PROTECTED]> wrote:
> From: Shadi Ammouri <[EMAIL PROTECTED]>
> Date: Fri, 27 Jun 2008 19:10:06 +0200
> Subject: [PATCH] spi: driver for Marvell Orion SPI controllers
>
> This adds a SPI driver for the SPI controller found in various
> Marvell Orion ARM SoCs. It currently supports only one slave,
> which must use SPI mode 0.
>
> [ [EMAIL PROTECTED]: cleanups, meet specs, pass "sparse" ]
> Signed-off-by: Shadi Ammouri <[EMAIL PROTECTED]>
> Signed-off-by: Saeed Bishara <[EMAIL PROTECTED]>
> Signed-off-by: Lennert Buytenhek <[EMAIL PROTECTED]>
> Signed-off-by: David Brownell <[EMAIL PROTECTED]>
>
> ...
>
> +/*
> + * called only when no transfer is active on the bus
> + */
> +static int
> +orion_spi_setup_transfer(struct spi_device *spi, struct spi_transfer *t)
> +{
> + struct orion_spi *orion_spi;
> + unsigned int speed = spi->max_speed_hz;
> + unsigned int bits_per_word = spi->bits_per_word;
> +
> + orion_spi = spi_master_get_devdata(spi->master);
> +
> + if ((t != NULL) && t->speed_hz)
> + speed = t->speed_hz;
> +
> + if ((t != NULL) && t->bits_per_word)
> + bits_per_word = t->bits_per_word;
> +
> + if (orion_spi_baudrate_set(spi, speed) != 0)
> + return -EINVAL;
> +
> + if (orion_spi_set_transfer_size(orion_spi, bits_per_word) != 0)
> + return -EINVAL;
Given that orion_spi_baudrate_set() and orion_spi_set_transfer_size()
carefully return an -EFOO value, it's a bit unkind to just rub that out
and return a hard-coded -EINVAL.
> ...
>
> +static void __exit orion_spi_exit(void)
> +{
> + platform_driver_unregister(&orion_spi_driver);
> +
> + destroy_workqueue(orion_spi_wq);
> +}
Please double-check the workqueue handling. Without looking at it too
closely, I think that this is waaaay too late to be running
destroy_workqueue(). If a work is still pending, all the data upon
which it will be operating will have been rubbed out. I'm suspecting
that an earlier flush_work() (or similar) will be needed.
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
spi-devel-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/spi-devel-general