On Fri, Oct 28, 2011 at 05:14:17PM +0530, Shubhrajyoti D wrote:
> Currently all the spi controllers share the work queue.
> This patch allocates a work queue per controller.
> 
> Signed-off-by: Steve Wilkins <[email protected]>
> Signed-off-by: Shubhrajyoti D <[email protected]>

Applied for v3.3, thanks.

g.

> ---
>  drivers/spi/spi-omap2-mcspi.c |   19 +++++++++++--------
>  1 files changed, 11 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
> index a8b614b..471b0f3 100644
> --- a/drivers/spi/spi-omap2-mcspi.c
> +++ b/drivers/spi/spi-omap2-mcspi.c
> @@ -121,6 +121,7 @@ struct omap2_mcspi {
>       /* SPI1 has 4 channels, while SPI2 has 2 */
>       struct omap2_mcspi_dma  *dma_channels;
>       struct  device          *dev;
> +     struct workqueue_struct *wq;
>  };
>  
>  struct omap2_mcspi_cs {
> @@ -143,8 +144,6 @@ struct omap2_mcspi_regs {
>  
>  static struct omap2_mcspi_regs omap2_mcspi_ctx[OMAP2_MCSPI_MAX_CTRL];
>  
> -static struct workqueue_struct *omap2_mcspi_wq;
> -
>  #define MOD_REG_BIT(val, mask, set) do { \
>       if (set) \
>               val |= mask; \
> @@ -1043,7 +1042,7 @@ static int omap2_mcspi_transfer(struct spi_device *spi, 
> struct spi_message *m)
>  
>       spin_lock_irqsave(&mcspi->lock, flags);
>       list_add_tail(&m->queue, &mcspi->msg_queue);
> -     queue_work(omap2_mcspi_wq, &mcspi->work);
> +     queue_work(mcspi->wq, &mcspi->work);
>       spin_unlock_irqrestore(&mcspi->lock, flags);
>  
>       return 0;
> @@ -1088,6 +1087,7 @@ static int __init omap2_mcspi_probe(struct 
> platform_device *pdev)
>       struct omap2_mcspi      *mcspi;
>       struct resource         *r;
>       int                     status = 0, i;
> +     char                    wq_name[20];
>  
>       master = spi_alloc_master(&pdev->dev, sizeof *mcspi);
>       if (master == NULL) {
> @@ -1111,6 +1111,13 @@ static int __init omap2_mcspi_probe(struct 
> platform_device *pdev)
>       mcspi = spi_master_get_devdata(master);
>       mcspi->master = master;
>  
> +     sprintf(wq_name, "omap2_mcspi/%d", master->bus_num);
> +     mcspi->wq = alloc_workqueue(wq_name, WQ_MEM_RECLAIM, 1);
> +     if (mcspi->wq == NULL) {
> +             status = -ENOMEM;
> +             goto err1;
> +     }
> +
>       r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>       if (r == NULL) {
>               status = -ENODEV;
> @@ -1216,6 +1223,7 @@ static int __exit omap2_mcspi_remove(struct 
> platform_device *pdev)
>       spi_unregister_master(master);
>       iounmap(base);
>       kfree(dma_channels);
> +     destroy_workqueue(mcspi->wq);
>  
>       return 0;
>  }
> @@ -1274,10 +1282,6 @@ static struct platform_driver omap2_mcspi_driver = {
>  
>  static int __init omap2_mcspi_init(void)
>  {
> -     omap2_mcspi_wq = create_singlethread_workqueue(
> -                             omap2_mcspi_driver.driver.name);
> -     if (omap2_mcspi_wq == NULL)
> -             return -1;
>       return platform_driver_probe(&omap2_mcspi_driver, omap2_mcspi_probe);
>  }
>  subsys_initcall(omap2_mcspi_init);
> @@ -1286,7 +1290,6 @@ static void __exit omap2_mcspi_exit(void)
>  {
>       platform_driver_unregister(&omap2_mcspi_driver);
>  
> -     destroy_workqueue(omap2_mcspi_wq);
>  }
>  module_exit(omap2_mcspi_exit);
>  
> -- 
> 1.7.1
> 
> 
> ------------------------------------------------------------------------------
> The demand for IT networking professionals continues to grow, and the
> demand for specialized networking skills is growing even more rapidly.
> Take a complimentary Learning@Cisco Self-Assessment and learn 
> about Cisco certifications, training, and career opportunities. 
> http://p.sf.net/sfu/cisco-dev2dev
> _______________________________________________
> spi-devel-general mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/spi-devel-general

------------------------------------------------------------------------------
Get your Android app more play: Bring it to the BlackBerry PlayBook 
in minutes. BlackBerry App World&#153; now supports Android&#153; Apps 
for the BlackBerry&reg; PlayBook&#153;. Discover just how easy and simple 
it is! http://p.sf.net/sfu/android-dev2dev
_______________________________________________
spi-devel-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/spi-devel-general

Reply via email to