[SPAM] 企业白领核心办公技能
ÆóÒµ°×ÁìºËÐİ칫¼¼ÄÜ£¨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
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
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
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
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
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
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
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
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
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
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