Patchwork mmc: remove linux/blkdev.h include from host drivers

login
register
mail settings
Submitter Dmitry Artamonow
Date April 10, 2012, 7:06 p.m.
Message ID <1334084783-3572-1-git-send-email-mad_soft@inbox.ru>
Download mbox | patch
Permalink /patch/151684/
State New
Headers show

Comments

Dmitry Artamonow - April 10, 2012, 7:06 p.m.
None of mmc host drivers using linux/blkdev.h header
really need anything from it. The slight exception is
atmel-mci, which uses blkdev.h only because it indirectly
pulls asm/cacheflush.h

So remove any inclusion of blkdev.h - it should also fix
build errors of dw_mmc and atmel-mci drivers when
CONFIG_BLOCK is disabled, like following:
------------------------------------------------------
In file included from drivers/mmc/host/dw_mmc.c:14:0:
include/linux/blkdev.h:1408:42: warning: ‘struct task_struct’ declared inside parameter list [enabled by default]
include/linux/blkdev.h:1408:42: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
include/linux/blkdev.h:1412:51: warning: ‘struct task_struct’ declared inside parameter list [enabled by default]
include/linux/blkdev.h:1417:1: error: unknown type name ‘bool’
include/linux/blkdev.h:1417:48: warning: ‘struct task_struct’ declared inside parameter list [enabled by default]
include/linux/blkdev.h: In function ‘blk_needs_flush_plug’:
include/linux/blkdev.h:1419:9: error: ‘false’ undeclared (first use in this function)
include/linux/blkdev.h:1419:9: note: each undeclared identifier is reported only once for each function it appears in
make[1]: *** [drivers/mmc/host/dw_mmc.o] Error 1
make: *** [drivers/mmc/host/dw_mmc.o] Error 2
------------------------------------------------------

Cc: Ludovic Desroches <ludovic.desroches@atmel.com>
Cc: Pavel Pisa <ppisa@pikron.com>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Will Newton <will.newton@imgtec.com>
Signed-off-by: Dmitry Artamonow <mad_soft@inbox.ru>
---

 drivers/mmc/host/at91_mci.c  |    1 -
 drivers/mmc/host/atmel-mci.c |    2 +-
 drivers/mmc/host/dw_mmc.c    |    1 -
 drivers/mmc/host/imxmmc.c    |    1 -
 drivers/mmc/host/mxcmmc.c    |    1 -
 5 files changed, 1 insertions(+), 5 deletions(-)

I've compile tested everything with and without CONFIG_BLOCK enabled,
except for imxmmc.c - this driver seems to be long time broken
(at least since the removal of mach-imx in 2.6.31 - see commit
1341d34ffc296f98dc84876f35f3151525dc02a2 ) 

If there any plans to remove imxmmc.c soon, I can drop corresponding
chunk from this patch and resend it to not create conflicts.
Will Newton - April 11, 2012, 10:11 a.m.
On Tue, Apr 10, 2012 at 8:06 PM, Dmitry Artamonow <mad_soft@inbox.ru> wrote:
> None of mmc host drivers using linux/blkdev.h header
> really need anything from it. The slight exception is
> atmel-mci, which uses blkdev.h only because it indirectly
> pulls asm/cacheflush.h
>
> So remove any inclusion of blkdev.h - it should also fix
> build errors of dw_mmc and atmel-mci drivers when
> CONFIG_BLOCK is disabled, like following:
> ------------------------------------------------------
> In file included from drivers/mmc/host/dw_mmc.c:14:0:
> include/linux/blkdev.h:1408:42: warning: ‘struct task_struct’ declared inside parameter list [enabled by default]
> include/linux/blkdev.h:1408:42: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
> include/linux/blkdev.h:1412:51: warning: ‘struct task_struct’ declared inside parameter list [enabled by default]
> include/linux/blkdev.h:1417:1: error: unknown type name ‘bool’
> include/linux/blkdev.h:1417:48: warning: ‘struct task_struct’ declared inside parameter list [enabled by default]
> include/linux/blkdev.h: In function ‘blk_needs_flush_plug’:
> include/linux/blkdev.h:1419:9: error: ‘false’ undeclared (first use in this function)
> include/linux/blkdev.h:1419:9: note: each undeclared identifier is reported only once for each function it appears in
> make[1]: *** [drivers/mmc/host/dw_mmc.o] Error 1
> make: *** [drivers/mmc/host/dw_mmc.o] Error 2
> ------------------------------------------------------
>
> Cc: Ludovic Desroches <ludovic.desroches@atmel.com>
> Cc: Pavel Pisa <ppisa@pikron.com>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> Cc: Will Newton <will.newton@imgtec.com>
> Signed-off-by: Dmitry Artamonow <mad_soft@inbox.ru>

For the dw_mmc part:

Acked-by: Will Newton <will.newton@imgtec.com>
ludovic.desroches@atmel.com - April 11, 2012, 3:05 p.m.
Hi Dmitry,

Le 04/10/2012 09:06 PM, Dmitry Artamonow a écrit :
> None of mmc host drivers using linux/blkdev.h header
> really need anything from it. The slight exception is
> atmel-mci, which uses blkdev.h only because it indirectly
> pulls asm/cacheflush.h
>
> So remove any inclusion of blkdev.h - it should also fix
> build errors of dw_mmc and atmel-mci drivers when
> CONFIG_BLOCK is disabled, like following:
> ------------------------------------------------------
> In file included from drivers/mmc/host/dw_mmc.c:14:0:
> include/linux/blkdev.h:1408:42: warning: ‘struct task_struct’ declared inside parameter list [enabled by default]
> include/linux/blkdev.h:1408:42: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
> include/linux/blkdev.h:1412:51: warning: ‘struct task_struct’ declared inside parameter list [enabled by default]
> include/linux/blkdev.h:1417:1: error: unknown type name ‘bool’
> include/linux/blkdev.h:1417:48: warning: ‘struct task_struct’ declared inside parameter list [enabled by default]
> include/linux/blkdev.h: In function ‘blk_needs_flush_plug’:
> include/linux/blkdev.h:1419:9: error: ‘false’ undeclared (first use in this function)
> include/linux/blkdev.h:1419:9: note: each undeclared identifier is reported only once for each function it appears in
> make[1]: *** [drivers/mmc/host/dw_mmc.o] Error 1
> make: *** [drivers/mmc/host/dw_mmc.o] Error 2
> ------------------------------------------------------
>
> Cc: Ludovic Desroches<ludovic.desroches@atmel.com>
> Cc: Pavel Pisa<ppisa@pikron.com>
> Cc: Sascha Hauer<s.hauer@pengutronix.de>
> Cc: Will Newton<will.newton@imgtec.com>
> Signed-off-by: Dmitry Artamonow<mad_soft@inbox.ru>
> ---
>
>   drivers/mmc/host/at91_mci.c  |    1 -
>   drivers/mmc/host/atmel-mci.c |    2 +-

Acked-by: Ludovic Desroches <ludovic.desroches@atmel.com>

Thanks for your patch.

Regards

Ludovic
Chris Ball - April 11, 2012, 3:39 p.m.
Hi Sascha, Wolfram,

On Tue, Apr 10 2012, Dmitry Artamonow wrote:
> I've compile tested everything with and without CONFIG_BLOCK enabled,
> except for imxmmc.c - this driver seems to be long time broken
> (at least since the removal of mach-imx in 2.6.31 - see commit
> 1341d34ffc296f98dc84876f35f3151525dc02a2 ) 

I can confirm that it no longer builds:

/home/cjb/git/mmc/drivers/mmc/host/imxmmc.c:32:26: fatal error: mach/imx-dma.h: No such file or directory

Should imxmmc simply be removed from drivers/mmc/host?  Do any of the
more current i.MX MMC drivers support the same hardware?

Thanks,

- Chris.
Sascha Hauer - April 11, 2012, 4:52 p.m.
On Wed, Apr 11, 2012 at 11:39:12AM -0400, Chris Ball wrote:
> Hi Sascha, Wolfram,
> 
> On Tue, Apr 10 2012, Dmitry Artamonow wrote:
> > I've compile tested everything with and without CONFIG_BLOCK enabled,
> > except for imxmmc.c - this driver seems to be long time broken
> > (at least since the removal of mach-imx in 2.6.31 - see commit
> > 1341d34ffc296f98dc84876f35f3151525dc02a2 ) 
> 
> I can confirm that it no longer builds:
> 
> /home/cjb/git/mmc/drivers/mmc/host/imxmmc.c:32:26: fatal error: mach/imx-dma.h: No such file or directory
> 
> Should imxmmc simply be removed from drivers/mmc/host?  Do any of the
> more current i.MX MMC drivers support the same hardware?

It has long been on my todo list to remove this driver. The more recent
i.MX use the mxcmmc driver which is basically the same hardware but
without a bunch of bugs which made the older imxmmc driver unusable on
newer hardware. I can send a patch if you like.

Sascha
Chris Ball - April 11, 2012, 4:58 p.m.
Hi,

On Wed, Apr 11 2012, Sascha Hauer wrote:
>> Should imxmmc simply be removed from drivers/mmc/host?  Do any of the
>> more current i.MX MMC drivers support the same hardware?
>
> It has long been on my todo list to remove this driver. The more recent
> i.MX use the mxcmmc driver which is basically the same hardware but
> without a bunch of bugs which made the older imxmmc driver unusable on
> newer hardware. I can send a patch if you like.

Thanks, let's do it.

It would be nice to have a story for how MX1 users can use their
hardware with modern kernels, even if it's just "It should be possible
to modify the mxcmmc driver to support this older hardware, and the sort
of changes that need to be made are <..>".

(Dmitry, your patch is fine -- I can remove the imxmmc hunk from it when
applying.)

- Chris.

Patch

diff --git a/drivers/mmc/host/at91_mci.c b/drivers/mmc/host/at91_mci.c
index efdb81d..bf43df4 100644
--- a/drivers/mmc/host/at91_mci.c
+++ b/drivers/mmc/host/at91_mci.c
@@ -59,7 +59,6 @@ 
 #include <linux/ioport.h>
 #include <linux/platform_device.h>
 #include <linux/interrupt.h>
-#include <linux/blkdev.h>
 #include <linux/delay.h>
 #include <linux/err.h>
 #include <linux/dma-mapping.h>
diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
index 9819dc0..1304549 100644
--- a/drivers/mmc/host/atmel-mci.c
+++ b/drivers/mmc/host/atmel-mci.c
@@ -7,7 +7,6 @@ 
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
-#include <linux/blkdev.h>
 #include <linux/clk.h>
 #include <linux/debugfs.h>
 #include <linux/device.h>
@@ -33,6 +32,7 @@ 
 #include <linux/atmel-mci.h>
 #include <linux/atmel_pdc.h>
 
+#include <asm/cacheflush.h>
 #include <asm/io.h>
 #include <asm/unaligned.h>
 
diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
index bf3c9b4..757580b 100644
--- a/drivers/mmc/host/dw_mmc.c
+++ b/drivers/mmc/host/dw_mmc.c
@@ -11,7 +11,6 @@ 
  * (at your option) any later version.
  */
 
-#include <linux/blkdev.h>
 #include <linux/clk.h>
 #include <linux/debugfs.h>
 #include <linux/device.h>
diff --git a/drivers/mmc/host/imxmmc.c b/drivers/mmc/host/imxmmc.c
index ea0f3ce..6479964 100644
--- a/drivers/mmc/host/imxmmc.c
+++ b/drivers/mmc/host/imxmmc.c
@@ -17,7 +17,6 @@ 
 #include <linux/ioport.h>
 #include <linux/platform_device.h>
 #include <linux/interrupt.h>
-#include <linux/blkdev.h>
 #include <linux/dma-mapping.h>
 #include <linux/mmc/host.h>
 #include <linux/mmc/card.h>
diff --git a/drivers/mmc/host/mxcmmc.c b/drivers/mmc/host/mxcmmc.c
index b2058b4..b511861 100644
--- a/drivers/mmc/host/mxcmmc.c
+++ b/drivers/mmc/host/mxcmmc.c
@@ -23,7 +23,6 @@ 
 #include <linux/platform_device.h>
 #include <linux/interrupt.h>
 #include <linux/irq.h>
-#include <linux/blkdev.h>
 #include <linux/dma-mapping.h>
 #include <linux/mmc/host.h>
 #include <linux/mmc/card.h>