[SPAM] 企业白领核心办公技能

2012-03-26 Thread 请转相关负责人
ÆóÒµ°×ÁìºËÐİ칫¼¼ÄÜ£¨PPT+Excel£©

ʱ¼äµØµã£º2012Äê4ÔÂ19-20ÈÕÉϺ£
ʱ¼äµØµã£º2012Äê4ÔÂ21-22ÈÕÉîÛÚ
ʱ¼äµØµã£º2012Äê4ÔÂ27-28ÈÕ±±¾© 

·ÑÓãº2600Ôª/ÈË£¨Ìṩ½²Òå¡¢Îç²Í¡¢·¢Æ±¡¢²èµãµÈ£©
ÊڿζÔÏó£º×ܾ­Àí£¬¸÷²¿ÃÅÖ÷¹Ü£¬²ÆÎñ²¿¡¢Êг¡²¿¡¢ÓªÏú²¿µÈÏà¹Ø²¿ÃŹ¤×÷ÈËÔ±

×Éѯµç»°£º020-80560638£»020-85917945 
лС½ã£¨²»ÐèÒª´ËÀàÐżþÇë»Ø¸´µçÓÊÖÁtuixin2...@126.comÍËÐÅ£©
ÏêÇéÇë²Î¿¼¸½¼þ
--
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure___
spi-devel-general mailing list
spi-devel-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spi-devel-general


Billets de train à 19 Eur0s seulement, reservez vite

2012-03-26 Thread SNCF avec l'Officiel des vacances


Si vous ne visualisez pas correctement ce message, cliquez ici.


   L'Officiel-des-vacances.com - La r*f*rence des bons plans vacances
   [IMG]L'*t* commence maintenant
Envie de soleil ?
Réservez MAINTENANT vos billets
pour cet été !

Faîtes-vite avant qu'il n'y en ait
   A partir de 19* sur IDTGV.complus.   [IMG]

En cliquant sur « OK » j'accepte de
recevoir
le TOP 20 des bons plans vacances
sur
spi-devel-general@lists.sourceforge.net
   R*servez plus de 30 destinations OK
   pour cet *t* avec IDTGV.com

Pour ne plus recevoir de courriels de notre part, il vous suffit de vous rendre
sur cette page.

--
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
___
spi-devel-general mailing list
spi-devel-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spi-devel-general


[PATCH v2 5/5] spi: omap2-mcspi: add support for pm_runtime autosuspend

2012-03-26 Thread Shubhrajyoti D
Adds support for configuring the omap2-mcspi driver use autosuspend for
runtime power management. This can reduce the latency in starting an
spi transfer by not suspending the device immediately following
completion of a transfer. If another transfer then takes place before
the autosuspend timeout (2 secs), the call to resume the device can
return immediately saving some save/ restore cycles.

Acked-by: Govindraj.R govindraj.r...@ti.com
Signed-off-by: Shubhrajyoti D shubhrajy...@ti.com
---
 drivers/spi/spi-omap2-mcspi.c |6 +-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
index 1907ed2..0b0da2f 100644
--- a/drivers/spi/spi-omap2-mcspi.c
+++ b/drivers/spi/spi-omap2-mcspi.c
@@ -44,6 +44,7 @@
 #include plat/mcspi.h
 
 #define OMAP2_MCSPI_MAX_FREQ   4800
+#define SPI_AUTOSUSPEND_TIMEOUT2000
 
 #define OMAP2_MCSPI_REVISION   0x00
 #define OMAP2_MCSPI_SYSSTATUS  0x14
@@ -265,7 +266,8 @@ static void omap2_mcspi_restore_ctx(struct omap2_mcspi 
*mcspi)
 }
 static void omap2_mcspi_disable_clocks(struct omap2_mcspi *mcspi)
 {
-   pm_runtime_put_sync(mcspi-dev);
+   pm_runtime_mark_last_busy(mcspi-dev);
+   pm_runtime_put_autosuspend(mcspi-dev);
 }
 
 static int omap2_mcspi_enable_clocks(struct omap2_mcspi *mcspi)
@@ -1212,6 +1214,8 @@ static int __devinit omap2_mcspi_probe(struct 
platform_device *pdev)
if (status  0)
goto dma_chnl_free;
 
+   pm_runtime_use_autosuspend(pdev-dev);
+   pm_runtime_set_autosuspend_delay(pdev-dev, SPI_AUTOSUSPEND_TIMEOUT);
pm_runtime_enable(pdev-dev);
 
if (status || omap2_mcspi_master_setup(mcspi)  0)
-- 
1.7.1


--
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
___
spi-devel-general mailing list
spi-devel-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spi-devel-general


[PATCH v2 4/5] spi: omap2-mcspi: use devm_* functions

2012-03-26 Thread Shubhrajyoti D
The various devm_* functions allocate memory that is released when a driver
detaches. This patch uses devm_request_and_ioremap
to request memory in probe function. Since the freeing is not
needed the calls are deleted from remove function.Also use
use devm_kzalloc for the cs memory allocation.

Signed-off-by: Shubhrajyoti D shubhrajy...@ti.com
---
 drivers/spi/spi-omap2-mcspi.c |   24 
 1 files changed, 4 insertions(+), 20 deletions(-)

diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
index 66cbf22..1907ed2 100644
--- a/drivers/spi/spi-omap2-mcspi.c
+++ b/drivers/spi/spi-omap2-mcspi.c
@@ -787,7 +787,7 @@ static int omap2_mcspi_setup(struct spi_device *spi)
mcspi_dma = mcspi-dma_channels[spi-chip_select];
 
if (!cs) {
-   cs = kzalloc(sizeof *cs, GFP_KERNEL);
+   cs = devm_kzalloc(spi-dev , sizeof *cs, GFP_KERNEL);
if (!cs)
return -ENOMEM;
cs-base = mcspi-base + spi-chip_select * 0x14;
@@ -828,7 +828,6 @@ static void omap2_mcspi_cleanup(struct spi_device *spi)
cs = spi-controller_state;
list_del(cs-node);
 
-   kfree(spi-controller_state);
}
 
if (spi-chip_select  spi-master-num_chipselect) {
@@ -1160,17 +1159,12 @@ static int __devinit omap2_mcspi_probe(struct 
platform_device *pdev)
r-start += regs_offset;
r-end += regs_offset;
mcspi-phys = r-start;
-   if (!request_mem_region(r-start, resource_size(r),
-   dev_name(pdev-dev))) {
-   status = -EBUSY;
-   goto free_master;
-   }
 
-   mcspi-base = ioremap(r-start, resource_size(r));
+   mcspi-base = devm_request_and_ioremap(pdev-dev, r);
if (!mcspi-base) {
dev_dbg(pdev-dev, can't ioremap MCSPI\n);
status = -ENOMEM;
-   goto release_region;
+   goto free_master;
}
 
mcspi-dev = pdev-dev;
@@ -1185,7 +1179,7 @@ static int __devinit omap2_mcspi_probe(struct 
platform_device *pdev)
GFP_KERNEL);
 
if (mcspi-dma_channels == NULL)
-   goto unmap_io;
+   goto free_master;
 
for (i = 0; i  master-num_chipselect; i++) {
char dma_ch_name[14];
@@ -1235,10 +1229,6 @@ disable_pm:
pm_runtime_disable(pdev-dev);
 dma_chnl_free:
kfree(mcspi-dma_channels);
-unmap_io:
-   iounmap(mcspi-base);
-release_region:
-   release_mem_region(r-start, resource_size(r));
 free_master:
kfree(master);
platform_set_drvdata(pdev, NULL);
@@ -1250,8 +1240,6 @@ static int __devexit omap2_mcspi_remove(struct 
platform_device *pdev)
struct spi_master   *master;
struct omap2_mcspi  *mcspi;
struct omap2_mcspi_dma  *dma_channels;
-   struct resource *r;
-   void __iomem *base;
 
master = dev_get_drvdata(pdev-dev);
mcspi = spi_master_get_devdata(master);
@@ -1259,12 +1247,8 @@ static int __devexit omap2_mcspi_remove(struct 
platform_device *pdev)
 
omap2_mcspi_disable_clocks(mcspi);
pm_runtime_disable(pdev-dev);
-   r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-   release_mem_region(r-start, resource_size(r));
 
-   base = mcspi-base;
spi_unregister_master(master);
-   iounmap(base);
kfree(dma_channels);
destroy_workqueue(mcspi-wq);
platform_set_drvdata(pdev, NULL);
-- 
1.7.1


--
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
___
spi-devel-general mailing list
spi-devel-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spi-devel-general


[PATCH v2 2/5] spi: omap2-mcspi: make it behave as a module

2012-03-26 Thread Shubhrajyoti D
From: Felipe Balbi ba...@ti.com

move probe away from __init section and use
platform_driver_register() instead of
platform_driver_probe().

Signed-off-by: Felipe Balbi ba...@ti.com
Signed-off-by: Shubhrajyoti D shubhrajy...@ti.com
---
 drivers/spi/spi-omap2-mcspi.c |9 +
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
index 7785091..26dd79f 100644
--- a/drivers/spi/spi-omap2-mcspi.c
+++ b/drivers/spi/spi-omap2-mcspi.c
@@ -1098,7 +1098,7 @@ static const struct of_device_id omap_mcspi_of_match[] = {
 };
 MODULE_DEVICE_TABLE(of, omap_mcspi_of_match);
 
-static int __init omap2_mcspi_probe(struct platform_device *pdev)
+static int __devinit omap2_mcspi_probe(struct platform_device *pdev)
 {
struct spi_master   *master;
struct omap2_mcspi_platform_config *pdata;
@@ -1245,7 +1245,7 @@ free_master:
return status;
 }
 
-static int __exit omap2_mcspi_remove(struct platform_device *pdev)
+static int __devexit omap2_mcspi_remove(struct platform_device *pdev)
 {
struct spi_master   *master;
struct omap2_mcspi  *mcspi;
@@ -1320,13 +1320,14 @@ static struct platform_driver omap2_mcspi_driver = {
.pm =   omap2_mcspi_pm_ops,
.of_match_table = omap_mcspi_of_match,
},
-   .remove =   __exit_p(omap2_mcspi_remove),
+   .probe =omap2_mcspi_probe,
+   .remove =   __devexit_p(omap2_mcspi_remove),
 };
 
 
 static int __init omap2_mcspi_init(void)
 {
-   return platform_driver_probe(omap2_mcspi_driver, omap2_mcspi_probe);
+   return platform_driver_register(omap2_mcspi_driver);
 }
 subsys_initcall(omap2_mcspi_init);
 
-- 
1.7.1


--
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
___
spi-devel-general mailing list
spi-devel-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spi-devel-general


[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;
}
 
-   

[PATCH] spi-imx: Remove duplicate spi_imx_data definition

2012-03-26 Thread Fabio Estevam
Structure struct spi_imx_data is defined twice.

Remove one of its definition.

Signed-off-by: Fabio Estevam fabio.este...@freescale.com
---
 drivers/spi/spi-imx.c |   20 +---
 1 files changed, 9 insertions(+), 11 deletions(-)

diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c
index 31054e3..f1f6700 100644
--- a/drivers/spi/spi-imx.c
+++ b/drivers/spi/spi-imx.c
@@ -68,17 +68,6 @@ enum spi_imx_devtype {
IMX51_ECSPI,/* ECSPI on i.mx51 and later */
 };
 
-struct spi_imx_data;
-
-struct spi_imx_devtype_data {
-   void (*intctrl)(struct spi_imx_data *, int);
-   int (*config)(struct spi_imx_data *, struct spi_imx_config *);
-   void (*trigger)(struct spi_imx_data *);
-   int (*rx_available)(struct spi_imx_data *);
-   void (*reset)(struct spi_imx_data *);
-   enum spi_imx_devtype devtype;
-};
-
 struct spi_imx_data {
struct spi_bitbang bitbang;
 
@@ -99,6 +88,15 @@ struct spi_imx_data {
int chipselect[0];
 };
 
+struct spi_imx_devtype_data {
+   void (*intctrl)(struct spi_imx_data *, int);
+   int (*config)(struct spi_imx_data *, struct spi_imx_config *);
+   void (*trigger)(struct spi_imx_data *);
+   int (*rx_available)(struct spi_imx_data *);
+   void (*reset)(struct spi_imx_data *);
+   enum spi_imx_devtype devtype;
+};
+
 static inline int is_imx27_cspi(struct spi_imx_data *d)
 {
return d-devtype_data-devtype == IMX27_CSPI;
-- 
1.7.1



--
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
___
spi-devel-general mailing list
spi-devel-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spi-devel-general


Re: [PATCH] spi-imx: Remove duplicate spi_imx_data definition

2012-03-26 Thread Shubhrajyoti Datta
Hi Fabio,

On Mon, Mar 26, 2012 at 11:43 PM, Fabio Estevam
fabio.este...@freescale.com wrote:
 Structure struct spi_imx_data is defined twice.

 Remove one of its definition.

 Signed-off-by: Fabio Estevam fabio.este...@freescale.com
 ---
  drivers/spi/spi-imx.c |   20 +---
  1 files changed, 9 insertions(+), 11 deletions(-)

 diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c
 index 31054e3..f1f6700 100644
 --- a/drivers/spi/spi-imx.c
 +++ b/drivers/spi/spi-imx.c
 @@ -68,17 +68,6 @@ enum spi_imx_devtype {
        IMX51_ECSPI,    /* ECSPI on i.mx51 and later */
  };

 -struct spi_imx_data;
 -
 -struct spi_imx_devtype_data {
 -       void (*intctrl)(struct spi_imx_data *, int);
 -       int (*config)(struct spi_imx_data *, struct spi_imx_config *);
 -       void (*trigger)(struct spi_imx_data *);
 -       int (*rx_available)(struct spi_imx_data *);
 -       void (*reset)(struct spi_imx_data *);
 -       enum spi_imx_devtype devtype;
 -};

Is this change intentional

 -
  struct spi_imx_data {
        struct spi_bitbang bitbang;

 @@ -99,6 +88,15 @@ struct spi_imx_data {
        int chipselect[0];
  };

 +struct spi_imx_devtype_data {
 +       void (*intctrl)(struct spi_imx_data *, int);
 +       int (*config)(struct spi_imx_data *, struct spi_imx_config *);
 +       void (*trigger)(struct spi_imx_data *);
 +       int (*rx_available)(struct spi_imx_data *);
 +       void (*reset)(struct spi_imx_data *);
 +       enum spi_imx_devtype devtype;
 +};
 +
  static inline int is_imx27_cspi(struct spi_imx_data *d)
  {
        return d-devtype_data-devtype == IMX27_CSPI;
 --
 1.7.1



 --
 This SF email is sponsosred by:
 Try Windows Azure free for 90 days Click Here
 http://p.sf.net/sfu/sfd2d-msazure
 ___
 spi-devel-general mailing list
 spi-devel-general@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/spi-devel-general

--
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
___
spi-devel-general mailing list
spi-devel-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spi-devel-general


Re: [PATCH] spi-imx: Remove duplicate spi_imx_data definition

2012-03-26 Thread Fabio Estevam
Shubhrajyoti Datta wrote:
 Hi Fabio,
 
 On Mon, Mar 26, 2012 at 11:43 PM, Fabio Estevam
 fabio.este...@freescale.com wrote:
 Structure struct spi_imx_data is defined twice.

 Remove one of its definition.

 Signed-off-by: Fabio Estevam fabio.este...@freescale.com
 ---
  drivers/spi/spi-imx.c |   20 +---
  1 files changed, 9 insertions(+), 11 deletions(-)

 diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c
 index 31054e3..f1f6700 100644
 --- a/drivers/spi/spi-imx.c
 +++ b/drivers/spi/spi-imx.c
 @@ -68,17 +68,6 @@ enum spi_imx_devtype {
IMX51_ECSPI,/* ECSPI on i.mx51 and later */
  };

 -struct spi_imx_data;
 -
 -struct spi_imx_devtype_data {
 -   void (*intctrl)(struct spi_imx_data *, int);
 -   int (*config)(struct spi_imx_data *, struct spi_imx_config *);
 -   void (*trigger)(struct spi_imx_data *);
 -   int (*rx_available)(struct spi_imx_data *);
 -   void (*reset)(struct spi_imx_data *);
 -   enum spi_imx_devtype devtype;
 -};
 
 Is this change intentional

Yes, struct spi_imx_data must be defined prior to spi_imx_devtype_data.

Thanks,

Fabio Estevam


--
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
___
spi-devel-general mailing list
spi-devel-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spi-devel-general


[PATCH v2] spi-imx: Remove duplicate spi_imx_data definition

2012-03-26 Thread Fabio Estevam
Structure struct spi_imx_data is defined twice.

Remove one of its definition.

In order to do so, it is also necessary to move spi_imx_devtype_data 
structure after the definition of spi_imx_data.

Signed-off-by: Fabio Estevam fabio.este...@freescale.com
---
Changes since v1:
- Explain why I moved spi_imx_devtype_data location
 drivers/spi/spi-imx.c |   20 +---
 1 files changed, 9 insertions(+), 11 deletions(-)

diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c
index 31054e3..f1f6700 100644
--- a/drivers/spi/spi-imx.c
+++ b/drivers/spi/spi-imx.c
@@ -68,17 +68,6 @@ enum spi_imx_devtype {
IMX51_ECSPI,/* ECSPI on i.mx51 and later */
 };
 
-struct spi_imx_data;
-
-struct spi_imx_devtype_data {
-   void (*intctrl)(struct spi_imx_data *, int);
-   int (*config)(struct spi_imx_data *, struct spi_imx_config *);
-   void (*trigger)(struct spi_imx_data *);
-   int (*rx_available)(struct spi_imx_data *);
-   void (*reset)(struct spi_imx_data *);
-   enum spi_imx_devtype devtype;
-};
-
 struct spi_imx_data {
struct spi_bitbang bitbang;
 
@@ -99,6 +88,15 @@ struct spi_imx_data {
int chipselect[0];
 };
 
+struct spi_imx_devtype_data {
+   void (*intctrl)(struct spi_imx_data *, int);
+   int (*config)(struct spi_imx_data *, struct spi_imx_config *);
+   void (*trigger)(struct spi_imx_data *);
+   int (*rx_available)(struct spi_imx_data *);
+   void (*reset)(struct spi_imx_data *);
+   enum spi_imx_devtype devtype;
+};
+
 static inline int is_imx27_cspi(struct spi_imx_data *d)
 {
return d-devtype_data-devtype == IMX27_CSPI;
-- 
1.7.1



--
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
___
spi-devel-general mailing list
spi-devel-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spi-devel-general


Re: [PATCH] spi-imx: Remove duplicate spi_imx_data definition

2012-03-26 Thread Fabio Estevam
On 3/26/2012 5:59 PM, Uwe Kleine-König wrote:

 In my version of drivers/spi/spi-imx.c struct spi_imx_data is only
 defined once. I guess you wanted to say forward declaration.

Yes, correct.

...

 Does this really work? struct spi_imx_data has a member

Yes, tested it on a mx31pdk board.

Regards,

Fabio Estevam




--
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
___
spi-devel-general mailing list
spi-devel-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spi-devel-general