Commit d5d9f7ac authored by Linus Walleij's avatar Linus Walleij
Browse files

ARM/ixp4xx: Make NEED_MACH_IO_H optional



In order to create a proper PCI driver for the IXP4xx
we need to make the old PCI driver and its reliance
on <mach/io.h> optional.

Create a new Kconfig symbol for the legacy PCI driver
IXP4XX_PCI_LEGACY and only activate NEED_MACH_IO_H
for this driver.

A few files need to be adjusted to explicitly include
the <mach/hardware.h> and <mach/cpu.h> headers that
they previously obtained implicitly using <linux/io.h>
that would include <mach/io.h> and in turn include
these two headers.

This breaks our reliance on the old PCI and indirect
PCI support so we can reimplement a proper purely
DT-based driver in the PCI subsystem.

Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Imre Kaloz <kaloz@openwrt.org>
Cc: Krzysztof Halasa <khalasa@piap.pl>
Cc: Zoltan HERPAI <wigyori@uid0.hu>
Cc: Raylynn Knight <rayknight@me.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 713ce38d
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -398,7 +398,8 @@ config ARCH_IXP4XX
	select HAVE_PCI
	select IXP4XX_IRQ
	select IXP4XX_TIMER
	select NEED_MACH_IO_H
	# With the new PCI driver this is not needed
	select NEED_MACH_IO_H if PCI_IXP4XX_LEGACY
	select USB_EHCI_BIG_ENDIAN_DESC
	select USB_EHCI_BIG_ENDIAN_MMIO
	help
+21 −12
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@ config MACH_IXP4XX_OF
config MACH_NSLU2
	bool
	prompt "Linksys NSLU2"
	select FORCE_PCI
	depends on IXP4XX_PCI_LEGACY
	help
	  Say 'Y' here if you want your kernel to support Linksys's
	  NSLU2 NAS device. For more information on this platform,
@@ -28,7 +28,7 @@ config MACH_NSLU2

config MACH_AVILA
	bool "Avila"
	select FORCE_PCI
	depends on IXP4XX_PCI_LEGACY
	help
	  Say 'Y' here if you want your kernel to support the Gateworks
	  Avila Network Platform. For more information on this platform,
@@ -44,7 +44,7 @@ config MACH_LOFT

config ARCH_ADI_COYOTE
	bool "Coyote"
	select FORCE_PCI
	depends on IXP4XX_PCI_LEGACY
	help
	  Say 'Y' here if you want your kernel to support the ADI 
	  Engineering Coyote Gateway Reference Platform. For more
@@ -52,7 +52,7 @@ config ARCH_ADI_COYOTE

config MACH_GATEWAY7001
	bool "Gateway 7001"
	select FORCE_PCI
	depends on IXP4XX_PCI_LEGACY
	help
	  Say 'Y' here if you want your kernel to support Gateway's
	  7001 Access Point. For more information on this platform,
@@ -60,7 +60,7 @@ config MACH_GATEWAY7001

config MACH_WG302V2
	bool "Netgear WG302 v2 / WAG302 v2"
	select FORCE_PCI
	depends on IXP4XX_PCI_LEGACY
	help
	  Say 'Y' here if you want your kernel to support Netgear's
	  WG302 v2 or WAG302 v2 Access Points. For more information
@@ -68,6 +68,7 @@ config MACH_WG302V2

config ARCH_IXDP425
	bool "IXDP425"
	depends on IXP4XX_PCI_LEGACY
	help
	  Say 'Y' here if you want your kernel to support Intel's 
	  IXDP425 Development Platform (Also known as Richfield).  
@@ -75,6 +76,7 @@ config ARCH_IXDP425

config MACH_IXDPG425
	bool "IXDPG425"
	depends on IXP4XX_PCI_LEGACY
	help
	  Say 'Y' here if you want your kernel to support Intel's
	  IXDPG425 Development Platform (Also known as Montajade).
@@ -120,7 +122,7 @@ config ARCH_PRPMC1100
config MACH_NAS100D
	bool
	prompt "NAS100D"
	select FORCE_PCI
	depends on IXP4XX_PCI_LEGACY
	help
	  Say 'Y' here if you want your kernel to support Iomega's
	  NAS 100d device. For more information on this platform,
@@ -129,7 +131,7 @@ config MACH_NAS100D
config MACH_DSMG600
	bool
	prompt "D-Link DSM-G600 RevA"
	select FORCE_PCI
	depends on IXP4XX_PCI_LEGACY
	help
	  Say 'Y' here if you want your kernel to support D-Link's
	  DSM-G600 RevA device. For more information on this platform,
@@ -143,7 +145,7 @@ config ARCH_IXDP4XX
config MACH_FSG
	bool
	prompt "Freecom FSG-3"
	select FORCE_PCI
	depends on IXP4XX_PCI_LEGACY
	help
	  Say 'Y' here if you want your kernel to support Freecom's
	  FSG-3 device. For more information on this platform,
@@ -152,7 +154,7 @@ config MACH_FSG
config MACH_ARCOM_VULCAN
	bool
	prompt "Arcom/Eurotech Vulcan"
	select FORCE_PCI
	depends on IXP4XX_PCI_LEGACY
	help
	  Say 'Y' here if you want your kernel to support Arcom's
	  Vulcan board.
@@ -173,7 +175,7 @@ config CPU_IXP43X
config MACH_GTWX5715
	bool "Gemtek WX5715 (Linksys WRV54G)"
	depends on ARCH_IXP4XX
	select FORCE_PCI
	depends on IXP4XX_PCI_LEGACY
	help
		This board is currently inside the Linksys WRV54G Gateways.

@@ -196,7 +198,7 @@ config MACH_DEVIXP

config MACH_MICCPT
	bool "Omicron MICCPT"
	select FORCE_PCI
	depends on IXP4XX_PCI_LEGACY
	help
	  Say 'Y' here if you want your kernel to support the MICCPT
	  board from OMICRON electronics GmbH.
@@ -209,9 +211,16 @@ config MACH_MIC256

comment "IXP4xx Options"

config IXP4XX_PCI_LEGACY
	bool "IXP4xx legacy PCI driver support"
	depends on PCI
	help
	  Selects legacy PCI driver.
	  Not recommended for new development.

config IXP4XX_INDIRECT_PCI
	bool "Use indirect PCI memory access"
	depends on PCI
	depends on IXP4XX_PCI_LEGACY
	help
          IXP4xx provides two methods of accessing PCI memory space:

+0 −1
Original line number Diff line number Diff line
@@ -32,7 +32,6 @@
#include <linux/dma-map-ops.h>
#include <mach/udc.h>
#include <mach/hardware.h>
#include <mach/io.h>
#include <linux/uaccess.h>
#include <asm/page.h>
#include <asm/exception.h>
+1 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/flash.h>
#include <mach/hardware.h>

#include "irqs.h"

+1 −0
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/mach/flash.h>
#include <mach/hardware.h>

#include "irqs.h"

Loading