ARM: ixp4xx: Move NPE and QMGR to drivers/soc
The Network Processing Engine and Queue Manager are versatile firmware components used by several IXP4xx drivers. Drivers are relying on getting access to these components using <mach/*> headers which does not work with multiplatform. We need to find a better place for the drivers to live. Let's first move them to drivers/soc and the start to refactor a bit by passing resources and moving headers. This patch introduce static IRQ assignments but that will be fixed by later patches in this series. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
		
							parent
							
								
									b9a35d705a
								
							
						
					
					
						commit
						fcf2d8978c
					
				| @ -7888,8 +7888,8 @@ M:	Krzysztof Halasa <khalasa@piap.pl> | |||||||
| S:	Maintained | S:	Maintained | ||||||
| F:	arch/arm/mach-ixp4xx/include/mach/qmgr.h | F:	arch/arm/mach-ixp4xx/include/mach/qmgr.h | ||||||
| F:	arch/arm/mach-ixp4xx/include/mach/npe.h | F:	arch/arm/mach-ixp4xx/include/mach/npe.h | ||||||
| F:	arch/arm/mach-ixp4xx/ixp4xx_qmgr.c | F:	drivers/soc/ixp4xx/ixp4xx-qmgr.c | ||||||
| F:	arch/arm/mach-ixp4xx/ixp4xx_npe.c | F:	drivers/soc/ixp4xx/ixp4xx-npe.c | ||||||
| F:	drivers/net/ethernet/xscale/ixp4xx_eth.c | F:	drivers/net/ethernet/xscale/ixp4xx_eth.c | ||||||
| F:	drivers/net/wan/ixp4xx_hss.c | F:	drivers/net/wan/ixp4xx_hss.c | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -236,19 +236,6 @@ config IXP4XX_INDIRECT_PCI | |||||||
| 	  need to use the indirect method instead. If you don't know | 	  need to use the indirect method instead. If you don't know | ||||||
| 	  what you need, leave this option unselected. | 	  what you need, leave this option unselected. | ||||||
| 
 | 
 | ||||||
| config IXP4XX_QMGR |  | ||||||
| 	tristate "IXP4xx Queue Manager support" |  | ||||||
| 	help |  | ||||||
| 	  This driver supports IXP4xx built-in hardware queue manager |  | ||||||
| 	  and is automatically selected by Ethernet and HSS drivers. |  | ||||||
| 
 |  | ||||||
| config IXP4XX_NPE |  | ||||||
| 	tristate "IXP4xx Network Processor Engine support" |  | ||||||
| 	select FW_LOADER |  | ||||||
| 	help |  | ||||||
| 	  This driver supports IXP4xx built-in network coprocessors |  | ||||||
| 	  and is automatically selected by Ethernet and HSS drivers. |  | ||||||
| 
 |  | ||||||
| endmenu | endmenu | ||||||
| 
 | 
 | ||||||
| endif | endif | ||||||
|  | |||||||
| @ -43,5 +43,3 @@ obj-$(CONFIG_MACH_GORAMO_MLR)	+= goramo_mlr.o | |||||||
| obj-$(CONFIG_MACH_ARCOM_VULCAN)	+= vulcan-setup.o | obj-$(CONFIG_MACH_ARCOM_VULCAN)	+= vulcan-setup.o | ||||||
| 
 | 
 | ||||||
| obj-$(CONFIG_PCI)		+= $(obj-pci-$(CONFIG_PCI)) common-pci.o | obj-$(CONFIG_PCI)		+= $(obj-pci-$(CONFIG_PCI)) common-pci.o | ||||||
| obj-$(CONFIG_IXP4XX_QMGR)	+= ixp4xx_qmgr.o |  | ||||||
| obj-$(CONFIG_IXP4XX_NPE)	+= ixp4xx_npe.o |  | ||||||
|  | |||||||
| @ -6,6 +6,7 @@ source "drivers/soc/atmel/Kconfig" | |||||||
| source "drivers/soc/bcm/Kconfig" | source "drivers/soc/bcm/Kconfig" | ||||||
| source "drivers/soc/fsl/Kconfig" | source "drivers/soc/fsl/Kconfig" | ||||||
| source "drivers/soc/imx/Kconfig" | source "drivers/soc/imx/Kconfig" | ||||||
|  | source "drivers/soc/ixp4xx/Kconfig" | ||||||
| source "drivers/soc/mediatek/Kconfig" | source "drivers/soc/mediatek/Kconfig" | ||||||
| source "drivers/soc/qcom/Kconfig" | source "drivers/soc/qcom/Kconfig" | ||||||
| source "drivers/soc/renesas/Kconfig" | source "drivers/soc/renesas/Kconfig" | ||||||
|  | |||||||
| @ -11,6 +11,7 @@ obj-$(CONFIG_MACH_DOVE)		+= dove/ | |||||||
| obj-y				+= fsl/ | obj-y				+= fsl/ | ||||||
| obj-$(CONFIG_ARCH_GEMINI)	+= gemini/ | obj-$(CONFIG_ARCH_GEMINI)	+= gemini/ | ||||||
| obj-$(CONFIG_ARCH_MXC)		+= imx/ | obj-$(CONFIG_ARCH_MXC)		+= imx/ | ||||||
|  | obj-$(CONFIG_ARCH_IXP4XX)	+= ixp4xx/ | ||||||
| obj-$(CONFIG_SOC_XWAY)		+= lantiq/ | obj-$(CONFIG_SOC_XWAY)		+= lantiq/ | ||||||
| obj-y				+= mediatek/ | obj-y				+= mediatek/ | ||||||
| obj-y				+= amlogic/ | obj-y				+= amlogic/ | ||||||
|  | |||||||
							
								
								
									
										16
									
								
								drivers/soc/ixp4xx/Kconfig
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								drivers/soc/ixp4xx/Kconfig
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,16 @@ | |||||||
|  | menu "IXP4xx SoC drivers" | ||||||
|  | 
 | ||||||
|  | config IXP4XX_QMGR | ||||||
|  | 	tristate "IXP4xx Queue Manager support" | ||||||
|  | 	help | ||||||
|  | 	  This driver supports IXP4xx built-in hardware queue manager | ||||||
|  | 	  and is automatically selected by Ethernet and HSS drivers. | ||||||
|  | 
 | ||||||
|  | config IXP4XX_NPE | ||||||
|  | 	tristate "IXP4xx Network Processor Engine support" | ||||||
|  | 	select FW_LOADER | ||||||
|  | 	help | ||||||
|  | 	  This driver supports IXP4xx built-in network coprocessors | ||||||
|  | 	  and is automatically selected by Ethernet and HSS drivers. | ||||||
|  | 
 | ||||||
|  | endmenu | ||||||
							
								
								
									
										2
									
								
								drivers/soc/ixp4xx/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								drivers/soc/ixp4xx/Makefile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | |||||||
|  | obj-$(CONFIG_IXP4XX_QMGR)	+= ixp4xx-qmgr.o | ||||||
|  | obj-$(CONFIG_IXP4XX_NPE)	+= ixp4xx-npe.o | ||||||
| @ -15,7 +15,10 @@ | |||||||
| #include <linux/of.h> | #include <linux/of.h> | ||||||
| #include <mach/qmgr.h> | #include <mach/qmgr.h> | ||||||
| 
 | 
 | ||||||
| #include "irqs.h" | /* FIXME: get rid of these static assigments */ | ||||||
|  | #define IRQ_IXP4XX_BASE		16 | ||||||
|  | #define IRQ_IXP4XX_QM1		(IRQ_IXP4XX_BASE + 3) | ||||||
|  | #define IRQ_IXP4XX_QM2		(IRQ_IXP4XX_BASE + 4) | ||||||
| 
 | 
 | ||||||
| static struct qmgr_regs __iomem *qmgr_regs = IXP4XX_QMGR_BASE_VIRT; | static struct qmgr_regs __iomem *qmgr_regs = IXP4XX_QMGR_BASE_VIRT; | ||||||
| static struct resource *mem_res; | static struct resource *mem_res; | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user