Re: [PATCH v2 1/5] spi/omap: Remove bus_num usage for instance index

2012-03-29 Thread Shubhrajyoti Datta
Hi Tarun,

On Wed, Mar 28, 2012 at 2:15 PM, DebBarma, Tarun Kanti
tarun.ka...@ti.com wrote:
 On Mon, Mar 26, 2012 at 7:14 PM, Shubhrajyoti D shubhrajy...@ti.com wrote:
 From: Benoit Cousson b-cous...@ti.com

 bus_num was used to reference the mcspi controller instance in a fixed array.
 Remove this array and store this information directly inside drvdata 
 structure.

 bus_num is now just set if the pdev-id is present or with -1 for dynamic
 allocation by SPI core, but the driver does not access it anymore.

 Clean some bad comments format, and remove un-needed space.

 Signed-off-by: Benoit Cousson b-cous...@ti.com
 [Cleanup the OMAP2_MCSPI_MAX_CTRL macro as it is not needed anymore]
 Signed-off-by: Shubhrajyoti D shubhrajy...@ti.com
 ---
  drivers/spi/spi-omap2-mcspi.c |   75 
 ++--
  1 files changed, 34 insertions(+), 41 deletions(-)

 diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
 index bb9274c..7785091 100644
 --- a/drivers/spi/spi-omap2-mcspi.c
 +++ b/drivers/spi/spi-omap2-mcspi.c
 @@ -45,9 +45,6 @@

snip

        tmp = OMAP2_MCSPI_WAKEUPENABLE_WKEN;
        mcspi_write_reg(master, OMAP2_MCSPI_WAKEUPENABLE, tmp);
 -       omap2_mcspi_ctx[master-bus_num - 1].wakeupenable = tmp;
 +       ctx-wakeupenable = tmp;
 Can't we get rid of tmp now? For example:
 ctx-wakeupenable = OMAP2_MCSPI_WAKEUPENABLE_WKEN;
 mcspi_write_reg(master, OMAP2_MCSPI_WAKEUPENABLE, ctx-wakeupenable);

Yes the tmp variable could be optimized
since it is in addition to the $SUBJECT will do it in a separate patch .
Is that fine?

 --
 Tarun

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 1/5] spi/omap: Remove bus_num usage for instance index

2012-03-28 Thread DebBarma, Tarun Kanti
On Mon, Mar 26, 2012 at 7:14 PM, Shubhrajyoti D shubhrajy...@ti.com wrote:
 From: Benoit Cousson b-cous...@ti.com

 bus_num was used to reference the mcspi controller instance in a fixed array.
 Remove this array and store this information directly inside drvdata 
 structure.

 bus_num is now just set if the pdev-id is present or with -1 for dynamic
 allocation by SPI core, but the driver does not access it anymore.

 Clean some bad comments format, and remove un-needed space.

 Signed-off-by: Benoit Cousson b-cous...@ti.com
 [Cleanup the OMAP2_MCSPI_MAX_CTRL macro as it is not needed anymore]
 Signed-off-by: Shubhrajyoti D shubhrajy...@ti.com
 ---
  drivers/spi/spi-omap2-mcspi.c |   75 ++--
  1 files changed, 34 insertions(+), 41 deletions(-)

 diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
 index bb9274c..7785091 100644
 --- a/drivers/spi/spi-omap2-mcspi.c
 +++ b/drivers/spi/spi-omap2-mcspi.c
 @@ -45,9 +45,6 @@

  #define OMAP2_MCSPI_MAX_FREQ           4800

 -/* OMAP2 has 3 SPI controllers, while OMAP3 has 4 */
 -#define OMAP2_MCSPI_MAX_CTRL           4
 -
  #define OMAP2_MCSPI_REVISION           0x00
  #define OMAP2_MCSPI_SYSSTATUS          0x14
  #define OMAP2_MCSPI_IRQSTATUS          0x18
 @@ -111,6 +108,16 @@ struct omap2_mcspi_dma {
  #define DMA_MIN_BYTES                  160


 +/*
 + * Used for context save and restore, structure members to be updated 
 whenever
 + * corresponding registers are modified.
 + */
 +struct omap2_mcspi_regs {
 +       u32 modulctrl;
 +       u32 wakeupenable;
 +       struct list_head cs;
 +};
 +
  struct omap2_mcspi {
        struct work_struct      work;
        /* lock protects queue and registers */
 @@ -122,8 +129,9 @@ struct omap2_mcspi {
        unsigned long           phys;
        /* SPI1 has 4 channels, while SPI2 has 2 */
        struct omap2_mcspi_dma  *dma_channels;
 -       struct  device          *dev;
 +       struct device           *dev;
        struct workqueue_struct *wq;
 +       struct omap2_mcspi_regs ctx;
  };

  struct omap2_mcspi_cs {
 @@ -135,17 +143,6 @@ struct omap2_mcspi_cs {
        u32                     chconf0;
  };

 -/* used for context save and restore, structure members to be updated 
 whenever
 - * corresponding registers are modified.
 - */
 -struct omap2_mcspi_regs {
 -       u32 modulctrl;
 -       u32 wakeupenable;
 -       struct list_head cs;
 -};
 -
 -static struct omap2_mcspi_regs omap2_mcspi_ctx[OMAP2_MCSPI_MAX_CTRL];
 -
  #define MOD_REG_BIT(val, mask, set) do { \
        if (set) \
                val |= mask; \
 @@ -236,9 +233,12 @@ static void omap2_mcspi_force_cs(struct spi_device *spi, 
 int cs_active)

  static void omap2_mcspi_set_master_mode(struct spi_master *master)
  {
 +       struct omap2_mcspi      *mcspi = spi_master_get_devdata(master);
 +       struct omap2_mcspi_regs *ctx = mcspi-ctx;
        u32 l;

 -       /* setup when switching from (reset default) slave mode
 +       /*
 +        * Setup when switching from (reset default) slave mode
         * to single-channel master mode
         */
        l = mcspi_read_reg(master, OMAP2_MCSPI_MODULCTRL);
 @@ -247,24 +247,20 @@ static void omap2_mcspi_set_master_mode(struct 
 spi_master *master)
        MOD_REG_BIT(l, OMAP2_MCSPI_MODULCTRL_SINGLE, 1);
        mcspi_write_reg(master, OMAP2_MCSPI_MODULCTRL, l);

 -       omap2_mcspi_ctx[master-bus_num - 1].modulctrl = l;
 +       ctx-modulctrl = l;
  }

  static void omap2_mcspi_restore_ctx(struct omap2_mcspi *mcspi)
  {
 -       struct spi_master *spi_cntrl;
 -       struct omap2_mcspi_cs *cs;
 -       spi_cntrl = mcspi-master;
 +       struct spi_master       *spi_cntrl = mcspi-master;
 +       struct omap2_mcspi_regs *ctx = mcspi-ctx;
 +       struct omap2_mcspi_cs   *cs;

        /* McSPI: context restore */
 -       mcspi_write_reg(spi_cntrl, OMAP2_MCSPI_MODULCTRL,
 -                       omap2_mcspi_ctx[spi_cntrl-bus_num - 1].modulctrl);
 +       mcspi_write_reg(spi_cntrl, OMAP2_MCSPI_MODULCTRL, ctx-modulctrl);
 +       mcspi_write_reg(spi_cntrl, OMAP2_MCSPI_WAKEUPENABLE, 
 ctx-wakeupenable);

 -       mcspi_write_reg(spi_cntrl, OMAP2_MCSPI_WAKEUPENABLE,
 -                       omap2_mcspi_ctx[spi_cntrl-bus_num - 1].wakeupenable);
 -
 -       list_for_each_entry(cs, omap2_mcspi_ctx[spi_cntrl-bus_num - 1].cs,
 -                       node)
 +       list_for_each_entry(cs, ctx-cs, node)
                __raw_writel(cs-chconf0, cs-base + OMAP2_MCSPI_CHCONF0);
  }
  static void omap2_mcspi_disable_clocks(struct omap2_mcspi *mcspi)
 @@ -777,7 +773,8 @@ static int omap2_mcspi_request_dma(struct spi_device *spi)
  static int omap2_mcspi_setup(struct spi_device *spi)
  {
        int                     ret;
 -       struct omap2_mcspi      *mcspi;
 +       struct omap2_mcspi      *mcspi = spi_master_get_devdata(spi-master);
 +       struct omap2_mcspi_regs *ctx = mcspi-ctx;
        struct omap2_mcspi_dma  *mcspi_dma;
        struct 

[PATCH v2 1/5] spi/omap: Remove bus_num usage for instance index

2012-03-26 Thread Shubhrajyoti D
From: Benoit Cousson b-cous...@ti.com

bus_num was used to reference the mcspi controller instance in a fixed array.
Remove this array and store this information directly inside drvdata structure.

bus_num is now just set if the pdev-id is present or with -1 for dynamic
allocation by SPI core, but the driver does not access it anymore.

Clean some bad comments format, and remove un-needed space.

Signed-off-by: Benoit Cousson b-cous...@ti.com
[Cleanup the OMAP2_MCSPI_MAX_CTRL macro as it is not needed anymore]
Signed-off-by: Shubhrajyoti D shubhrajy...@ti.com
---
 drivers/spi/spi-omap2-mcspi.c |   75 ++--
 1 files changed, 34 insertions(+), 41 deletions(-)

diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
index bb9274c..7785091 100644
--- a/drivers/spi/spi-omap2-mcspi.c
+++ b/drivers/spi/spi-omap2-mcspi.c
@@ -45,9 +45,6 @@
 
 #define OMAP2_MCSPI_MAX_FREQ   4800
 
-/* OMAP2 has 3 SPI controllers, while OMAP3 has 4 */
-#define OMAP2_MCSPI_MAX_CTRL   4
-
 #define OMAP2_MCSPI_REVISION   0x00
 #define OMAP2_MCSPI_SYSSTATUS  0x14
 #define OMAP2_MCSPI_IRQSTATUS  0x18
@@ -111,6 +108,16 @@ struct omap2_mcspi_dma {
 #define DMA_MIN_BYTES  160
 
 
+/*
+ * Used for context save and restore, structure members to be updated whenever
+ * corresponding registers are modified.
+ */
+struct omap2_mcspi_regs {
+   u32 modulctrl;
+   u32 wakeupenable;
+   struct list_head cs;
+};
+
 struct omap2_mcspi {
struct work_struct  work;
/* lock protects queue and registers */
@@ -122,8 +129,9 @@ struct omap2_mcspi {
unsigned long   phys;
/* SPI1 has 4 channels, while SPI2 has 2 */
struct omap2_mcspi_dma  *dma_channels;
-   struct  device  *dev;
+   struct device   *dev;
struct workqueue_struct *wq;
+   struct omap2_mcspi_regs ctx;
 };
 
 struct omap2_mcspi_cs {
@@ -135,17 +143,6 @@ struct omap2_mcspi_cs {
u32 chconf0;
 };
 
-/* used for context save and restore, structure members to be updated whenever
- * corresponding registers are modified.
- */
-struct omap2_mcspi_regs {
-   u32 modulctrl;
-   u32 wakeupenable;
-   struct list_head cs;
-};
-
-static struct omap2_mcspi_regs omap2_mcspi_ctx[OMAP2_MCSPI_MAX_CTRL];
-
 #define MOD_REG_BIT(val, mask, set) do { \
if (set) \
val |= mask; \
@@ -236,9 +233,12 @@ static void omap2_mcspi_force_cs(struct spi_device *spi, 
int cs_active)
 
 static void omap2_mcspi_set_master_mode(struct spi_master *master)
 {
+   struct omap2_mcspi  *mcspi = spi_master_get_devdata(master);
+   struct omap2_mcspi_regs *ctx = mcspi-ctx;
u32 l;
 
-   /* setup when switching from (reset default) slave mode
+   /*
+* Setup when switching from (reset default) slave mode
 * to single-channel master mode
 */
l = mcspi_read_reg(master, OMAP2_MCSPI_MODULCTRL);
@@ -247,24 +247,20 @@ static void omap2_mcspi_set_master_mode(struct spi_master 
*master)
MOD_REG_BIT(l, OMAP2_MCSPI_MODULCTRL_SINGLE, 1);
mcspi_write_reg(master, OMAP2_MCSPI_MODULCTRL, l);
 
-   omap2_mcspi_ctx[master-bus_num - 1].modulctrl = l;
+   ctx-modulctrl = l;
 }
 
 static void omap2_mcspi_restore_ctx(struct omap2_mcspi *mcspi)
 {
-   struct spi_master *spi_cntrl;
-   struct omap2_mcspi_cs *cs;
-   spi_cntrl = mcspi-master;
+   struct spi_master   *spi_cntrl = mcspi-master;
+   struct omap2_mcspi_regs *ctx = mcspi-ctx;
+   struct omap2_mcspi_cs   *cs;
 
/* McSPI: context restore */
-   mcspi_write_reg(spi_cntrl, OMAP2_MCSPI_MODULCTRL,
-   omap2_mcspi_ctx[spi_cntrl-bus_num - 1].modulctrl);
+   mcspi_write_reg(spi_cntrl, OMAP2_MCSPI_MODULCTRL, ctx-modulctrl);
+   mcspi_write_reg(spi_cntrl, OMAP2_MCSPI_WAKEUPENABLE, ctx-wakeupenable);
 
-   mcspi_write_reg(spi_cntrl, OMAP2_MCSPI_WAKEUPENABLE,
-   omap2_mcspi_ctx[spi_cntrl-bus_num - 1].wakeupenable);
-
-   list_for_each_entry(cs, omap2_mcspi_ctx[spi_cntrl-bus_num - 1].cs,
-   node)
+   list_for_each_entry(cs, ctx-cs, node)
__raw_writel(cs-chconf0, cs-base + OMAP2_MCSPI_CHCONF0);
 }
 static void omap2_mcspi_disable_clocks(struct omap2_mcspi *mcspi)
@@ -777,7 +773,8 @@ static int omap2_mcspi_request_dma(struct spi_device *spi)
 static int omap2_mcspi_setup(struct spi_device *spi)
 {
int ret;
-   struct omap2_mcspi  *mcspi;
+   struct omap2_mcspi  *mcspi = spi_master_get_devdata(spi-master);
+   struct omap2_mcspi_regs *ctx = mcspi-ctx;
struct omap2_mcspi_dma  *mcspi_dma;
struct omap2_mcspi_cs   *cs = spi-controller_state;
 
@@ -787,7 +784,6 @@ static int omap2_mcspi_setup(struct spi_device *spi)
return -EINVAL;
}
 
-   

Re: [PATCH v2 1/5] spi/omap: Remove bus_num usage for instance index

2012-02-29 Thread Shubhrajyoti
On Wednesday 29 February 2012 03:49 AM, Benoit Cousson wrote:
 bus_num was used to reference the mcspi controller instance in a fixed array.
 Remove this array and store this information directly inside drvdata 
 structure.

Good change thanks.
If you want add my Reviewed-by
 bus_num is now just set if the pdev-id is present or with -1 for dynamic
 allocation by SPI core, but the driver does not access it anymore.

 Clean some bad comments format, and remove un-needed space.

 Signed-off-by: Benoit Cousson b-cous...@ti.com
 ---
  drivers/spi/spi-omap2-mcspi.c |   72 +++-
  1 files changed, 34 insertions(+), 38 deletions(-)

 diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
 index 0b0dfb7..e034164 100644
 --- a/drivers/spi/spi-omap2-mcspi.c
 +++ b/drivers/spi/spi-omap2-mcspi.c
 @@ -109,6 +109,16 @@ struct omap2_mcspi_dma {
  #define DMA_MIN_BYTES160
  
  
 +/*
 + * Used for context save and restore, structure members to be updated 
 whenever
 + * corresponding registers are modified.
 + */
 +struct omap2_mcspi_regs {
 + u32 modulctrl;
 + u32 wakeupenable;
 + struct list_head cs;
 +};
 +
  struct omap2_mcspi {
   struct work_struct  work;
   /* lock protects queue and registers */
 @@ -120,8 +130,9 @@ struct omap2_mcspi {
   unsigned long   phys;
   /* SPI1 has 4 channels, while SPI2 has 2 */
   struct omap2_mcspi_dma  *dma_channels;
 - struct  device  *dev;
 + struct device   *dev;
   struct workqueue_struct *wq;
 + struct omap2_mcspi_regs ctx;
  };
  
  struct omap2_mcspi_cs {
 @@ -133,17 +144,6 @@ struct omap2_mcspi_cs {
   u32 chconf0;
  };
  
 -/* used for context save and restore, structure members to be updated 
 whenever
 - * corresponding registers are modified.
 - */
 -struct omap2_mcspi_regs {
 - u32 modulctrl;
 - u32 wakeupenable;
 - struct list_head cs;
 -};
 -
 -static struct omap2_mcspi_regs omap2_mcspi_ctx[OMAP2_MCSPI_MAX_CTRL];
 -
  #define MOD_REG_BIT(val, mask, set) do { \
   if (set) \
   val |= mask; \
 @@ -234,9 +234,12 @@ static void omap2_mcspi_force_cs(struct spi_device *spi, 
 int cs_active)
  
  static void omap2_mcspi_set_master_mode(struct spi_master *master)
  {
 + struct omap2_mcspi  *mcspi = spi_master_get_devdata(master);
 + struct omap2_mcspi_regs *ctx = mcspi-ctx;
   u32 l;
  
 - /* setup when switching from (reset default) slave mode
 + /*
 +  * Setup when switching from (reset default) slave mode
* to single-channel master mode
*/
   l = mcspi_read_reg(master, OMAP2_MCSPI_MODULCTRL);
 @@ -245,24 +248,20 @@ static void omap2_mcspi_set_master_mode(struct 
 spi_master *master)
   MOD_REG_BIT(l, OMAP2_MCSPI_MODULCTRL_SINGLE, 1);
   mcspi_write_reg(master, OMAP2_MCSPI_MODULCTRL, l);
  
 - omap2_mcspi_ctx[master-bus_num - 1].modulctrl = l;
 + ctx-modulctrl = l;
  }
  
  static void omap2_mcspi_restore_ctx(struct omap2_mcspi *mcspi)
  {
 - struct spi_master *spi_cntrl;
 - struct omap2_mcspi_cs *cs;
 - spi_cntrl = mcspi-master;
 + struct spi_master   *spi_cntrl = mcspi-master;
 + struct omap2_mcspi_regs *ctx = mcspi-ctx;
 + struct omap2_mcspi_cs   *cs;
  
   /* McSPI: context restore */
 - mcspi_write_reg(spi_cntrl, OMAP2_MCSPI_MODULCTRL,
 - omap2_mcspi_ctx[spi_cntrl-bus_num - 1].modulctrl);
 -
 - mcspi_write_reg(spi_cntrl, OMAP2_MCSPI_WAKEUPENABLE,
 - omap2_mcspi_ctx[spi_cntrl-bus_num - 1].wakeupenable);
 + mcspi_write_reg(spi_cntrl, OMAP2_MCSPI_MODULCTRL, ctx-modulctrl);
 + mcspi_write_reg(spi_cntrl, OMAP2_MCSPI_WAKEUPENABLE, ctx-wakeupenable);
  
 - list_for_each_entry(cs, omap2_mcspi_ctx[spi_cntrl-bus_num - 1].cs,
 - node)
 + list_for_each_entry(cs, ctx-cs, node)
   __raw_writel(cs-chconf0, cs-base + OMAP2_MCSPI_CHCONF0);
  }
  static void omap2_mcspi_disable_clocks(struct omap2_mcspi *mcspi)
 @@ -775,7 +774,8 @@ static int omap2_mcspi_request_dma(struct spi_device *spi)
  static int omap2_mcspi_setup(struct spi_device *spi)
  {
   int ret;
 - struct omap2_mcspi  *mcspi;
 + struct omap2_mcspi  *mcspi = spi_master_get_devdata(spi-master);
 + struct omap2_mcspi_regs *ctx = mcspi-ctx;
   struct omap2_mcspi_dma  *mcspi_dma;
   struct omap2_mcspi_cs   *cs = spi-controller_state;
  
 @@ -785,7 +785,6 @@ static int omap2_mcspi_setup(struct spi_device *spi)
   return -EINVAL;
   }
  
 - mcspi = spi_master_get_devdata(spi-master);
   mcspi_dma = mcspi-dma_channels[spi-chip_select];
  
   if (!cs) {
 @@ -797,8 +796,7 @@ static int omap2_mcspi_setup(struct spi_device *spi)
   cs-chconf0 = 0;
   spi-controller_state = cs;
   /* Link this to context save list */
 -

Re: [PATCH v2 1/5] spi/omap: Remove bus_num usage for instance index

2012-02-29 Thread Cousson, Benoit

On 2/29/2012 1:35 PM, Shubhrajyoti wrote:

On Wednesday 29 February 2012 03:49 AM, Benoit Cousson wrote:

bus_num was used to reference the mcspi controller instance in a fixed array.
Remove this array and store this information directly inside drvdata structure.


Good change thanks.
If you want add my Reviewed-by


Thanks for the review Shubhro.

Regards,
Benoit


bus_num is now just set if the pdev-id is present or with -1 for dynamic
allocation by SPI core, but the driver does not access it anymore.

Clean some bad comments format, and remove un-needed space.

Signed-off-by: Benoit Coussonb-cous...@ti.com
---
  drivers/spi/spi-omap2-mcspi.c |   72 +++-
  1 files changed, 34 insertions(+), 38 deletions(-)

diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
index 0b0dfb7..e034164 100644
--- a/drivers/spi/spi-omap2-mcspi.c
+++ b/drivers/spi/spi-omap2-mcspi.c
@@ -109,6 +109,16 @@ struct omap2_mcspi_dma {
  #define DMA_MIN_BYTES 160


+/*
+ * Used for context save and restore, structure members to be updated whenever
+ * corresponding registers are modified.
+ */
+struct omap2_mcspi_regs {
+   u32 modulctrl;
+   u32 wakeupenable;
+   struct list_head cs;
+};
+
  struct omap2_mcspi {
struct work_struct  work;
/* lock protects queue and registers */
@@ -120,8 +130,9 @@ struct omap2_mcspi {
unsigned long   phys;
/* SPI1 has 4 channels, while SPI2 has 2 */
struct omap2_mcspi_dma  *dma_channels;
-   struct  device  *dev;
+   struct device   *dev;
struct workqueue_struct *wq;
+   struct omap2_mcspi_regs ctx;
  };

  struct omap2_mcspi_cs {
@@ -133,17 +144,6 @@ struct omap2_mcspi_cs {
u32 chconf0;
  };

-/* used for context save and restore, structure members to be updated whenever
- * corresponding registers are modified.
- */
-struct omap2_mcspi_regs {
-   u32 modulctrl;
-   u32 wakeupenable;
-   struct list_head cs;
-};
-
-static struct omap2_mcspi_regs omap2_mcspi_ctx[OMAP2_MCSPI_MAX_CTRL];
-
  #define MOD_REG_BIT(val, mask, set) do { \
if (set) \
val |= mask; \
@@ -234,9 +234,12 @@ static void omap2_mcspi_force_cs(struct spi_device *spi, 
int cs_active)

  static void omap2_mcspi_set_master_mode(struct spi_master *master)
  {
+   struct omap2_mcspi  *mcspi = spi_master_get_devdata(master);
+   struct omap2_mcspi_regs *ctx =mcspi-ctx;
u32 l;

-   /* setup when switching from (reset default) slave mode
+   /*
+* Setup when switching from (reset default) slave mode
 * to single-channel master mode
 */
l = mcspi_read_reg(master, OMAP2_MCSPI_MODULCTRL);
@@ -245,24 +248,20 @@ static void omap2_mcspi_set_master_mode(struct spi_master 
*master)
MOD_REG_BIT(l, OMAP2_MCSPI_MODULCTRL_SINGLE, 1);
mcspi_write_reg(master, OMAP2_MCSPI_MODULCTRL, l);

-   omap2_mcspi_ctx[master-bus_num - 1].modulctrl = l;
+   ctx-modulctrl = l;
  }

  static void omap2_mcspi_restore_ctx(struct omap2_mcspi *mcspi)
  {
-   struct spi_master *spi_cntrl;
-   struct omap2_mcspi_cs *cs;
-   spi_cntrl = mcspi-master;
+   struct spi_master   *spi_cntrl = mcspi-master;
+   struct omap2_mcspi_regs *ctx =mcspi-ctx;
+   struct omap2_mcspi_cs   *cs;

/* McSPI: context restore */
-   mcspi_write_reg(spi_cntrl, OMAP2_MCSPI_MODULCTRL,
-   omap2_mcspi_ctx[spi_cntrl-bus_num - 1].modulctrl);
-
-   mcspi_write_reg(spi_cntrl, OMAP2_MCSPI_WAKEUPENABLE,
-   omap2_mcspi_ctx[spi_cntrl-bus_num - 1].wakeupenable);
+   mcspi_write_reg(spi_cntrl, OMAP2_MCSPI_MODULCTRL, ctx-modulctrl);
+   mcspi_write_reg(spi_cntrl, OMAP2_MCSPI_WAKEUPENABLE, ctx-wakeupenable);

-   list_for_each_entry(cs,omap2_mcspi_ctx[spi_cntrl-bus_num - 1].cs,
-   node)
+   list_for_each_entry(cs,ctx-cs, node)
__raw_writel(cs-chconf0, cs-base + OMAP2_MCSPI_CHCONF0);
  }
  static void omap2_mcspi_disable_clocks(struct omap2_mcspi *mcspi)
@@ -775,7 +774,8 @@ static int omap2_mcspi_request_dma(struct spi_device *spi)
  static int omap2_mcspi_setup(struct spi_device *spi)
  {
int ret;
-   struct omap2_mcspi  *mcspi;
+   struct omap2_mcspi  *mcspi = spi_master_get_devdata(spi-master);
+   struct omap2_mcspi_regs *ctx =mcspi-ctx;
struct omap2_mcspi_dma  *mcspi_dma;
struct omap2_mcspi_cs   *cs = spi-controller_state;

@@ -785,7 +785,6 @@ static int omap2_mcspi_setup(struct spi_device *spi)
return -EINVAL;
}

-   mcspi = spi_master_get_devdata(spi-master);
mcspi_dma =mcspi-dma_channels[spi-chip_select];

if (!cs) {
@@ -797,8 +796,7 @@ static int omap2_mcspi_setup(struct spi_device *spi)
cs-chconf0 = 0;

[PATCH v2 1/5] spi/omap: Remove bus_num usage for instance index

2012-02-28 Thread Benoit Cousson
bus_num was used to reference the mcspi controller instance in a fixed array.
Remove this array and store this information directly inside drvdata structure.

bus_num is now just set if the pdev-id is present or with -1 for dynamic
allocation by SPI core, but the driver does not access it anymore.

Clean some bad comments format, and remove un-needed space.

Signed-off-by: Benoit Cousson b-cous...@ti.com
---
 drivers/spi/spi-omap2-mcspi.c |   72 +++-
 1 files changed, 34 insertions(+), 38 deletions(-)

diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
index 0b0dfb7..e034164 100644
--- a/drivers/spi/spi-omap2-mcspi.c
+++ b/drivers/spi/spi-omap2-mcspi.c
@@ -109,6 +109,16 @@ struct omap2_mcspi_dma {
 #define DMA_MIN_BYTES  160
 
 
+/*
+ * Used for context save and restore, structure members to be updated whenever
+ * corresponding registers are modified.
+ */
+struct omap2_mcspi_regs {
+   u32 modulctrl;
+   u32 wakeupenable;
+   struct list_head cs;
+};
+
 struct omap2_mcspi {
struct work_struct  work;
/* lock protects queue and registers */
@@ -120,8 +130,9 @@ struct omap2_mcspi {
unsigned long   phys;
/* SPI1 has 4 channels, while SPI2 has 2 */
struct omap2_mcspi_dma  *dma_channels;
-   struct  device  *dev;
+   struct device   *dev;
struct workqueue_struct *wq;
+   struct omap2_mcspi_regs ctx;
 };
 
 struct omap2_mcspi_cs {
@@ -133,17 +144,6 @@ struct omap2_mcspi_cs {
u32 chconf0;
 };
 
-/* used for context save and restore, structure members to be updated whenever
- * corresponding registers are modified.
- */
-struct omap2_mcspi_regs {
-   u32 modulctrl;
-   u32 wakeupenable;
-   struct list_head cs;
-};
-
-static struct omap2_mcspi_regs omap2_mcspi_ctx[OMAP2_MCSPI_MAX_CTRL];
-
 #define MOD_REG_BIT(val, mask, set) do { \
if (set) \
val |= mask; \
@@ -234,9 +234,12 @@ static void omap2_mcspi_force_cs(struct spi_device *spi, 
int cs_active)
 
 static void omap2_mcspi_set_master_mode(struct spi_master *master)
 {
+   struct omap2_mcspi  *mcspi = spi_master_get_devdata(master);
+   struct omap2_mcspi_regs *ctx = mcspi-ctx;
u32 l;
 
-   /* setup when switching from (reset default) slave mode
+   /*
+* Setup when switching from (reset default) slave mode
 * to single-channel master mode
 */
l = mcspi_read_reg(master, OMAP2_MCSPI_MODULCTRL);
@@ -245,24 +248,20 @@ static void omap2_mcspi_set_master_mode(struct spi_master 
*master)
MOD_REG_BIT(l, OMAP2_MCSPI_MODULCTRL_SINGLE, 1);
mcspi_write_reg(master, OMAP2_MCSPI_MODULCTRL, l);
 
-   omap2_mcspi_ctx[master-bus_num - 1].modulctrl = l;
+   ctx-modulctrl = l;
 }
 
 static void omap2_mcspi_restore_ctx(struct omap2_mcspi *mcspi)
 {
-   struct spi_master *spi_cntrl;
-   struct omap2_mcspi_cs *cs;
-   spi_cntrl = mcspi-master;
+   struct spi_master   *spi_cntrl = mcspi-master;
+   struct omap2_mcspi_regs *ctx = mcspi-ctx;
+   struct omap2_mcspi_cs   *cs;
 
/* McSPI: context restore */
-   mcspi_write_reg(spi_cntrl, OMAP2_MCSPI_MODULCTRL,
-   omap2_mcspi_ctx[spi_cntrl-bus_num - 1].modulctrl);
-
-   mcspi_write_reg(spi_cntrl, OMAP2_MCSPI_WAKEUPENABLE,
-   omap2_mcspi_ctx[spi_cntrl-bus_num - 1].wakeupenable);
+   mcspi_write_reg(spi_cntrl, OMAP2_MCSPI_MODULCTRL, ctx-modulctrl);
+   mcspi_write_reg(spi_cntrl, OMAP2_MCSPI_WAKEUPENABLE, ctx-wakeupenable);
 
-   list_for_each_entry(cs, omap2_mcspi_ctx[spi_cntrl-bus_num - 1].cs,
-   node)
+   list_for_each_entry(cs, ctx-cs, node)
__raw_writel(cs-chconf0, cs-base + OMAP2_MCSPI_CHCONF0);
 }
 static void omap2_mcspi_disable_clocks(struct omap2_mcspi *mcspi)
@@ -775,7 +774,8 @@ static int omap2_mcspi_request_dma(struct spi_device *spi)
 static int omap2_mcspi_setup(struct spi_device *spi)
 {
int ret;
-   struct omap2_mcspi  *mcspi;
+   struct omap2_mcspi  *mcspi = spi_master_get_devdata(spi-master);
+   struct omap2_mcspi_regs *ctx = mcspi-ctx;
struct omap2_mcspi_dma  *mcspi_dma;
struct omap2_mcspi_cs   *cs = spi-controller_state;
 
@@ -785,7 +785,6 @@ static int omap2_mcspi_setup(struct spi_device *spi)
return -EINVAL;
}
 
-   mcspi = spi_master_get_devdata(spi-master);
mcspi_dma = mcspi-dma_channels[spi-chip_select];
 
if (!cs) {
@@ -797,8 +796,7 @@ static int omap2_mcspi_setup(struct spi_device *spi)
cs-chconf0 = 0;
spi-controller_state = cs;
/* Link this to context save list */
-   list_add_tail(cs-node,
-   omap2_mcspi_ctx[mcspi-master-bus_num - 1].cs);
+