Loading drivers/net/wireless/Kconfig +1 −17 Original line number Diff line number Diff line Loading @@ -500,23 +500,7 @@ config PRISM54 will be called prism54.ko. source "drivers/net/wireless/hostap/Kconfig" config BCM43XX tristate "Broadcom BCM43xx wireless support" depends on PCI && IEEE80211 && NET_RADIO && IEEE80211_SOFTMAC && EXPERIMENTAL select FW_LOADER ---help--- This is an experimental driver for the Broadcom 43xx wireless chip, found in the Apple Airport Extreme and various other devices. config BCM43XX_DEBUG bool "Broadcom BCM43xx debugging (RECOMMENDED)" depends on BCM43XX default y ---help--- Broadcom 43xx debugging messages. Say Y, because the driver is still very experimental and this will help you get it running. source "drivers/net/wireless/bcm43xx/Kconfig" # yes, this works even when no drivers are selected config NET_WIRELESS Loading drivers/net/wireless/bcm43xx/Kconfig 0 → 100644 +57 −0 Original line number Diff line number Diff line config BCM43XX tristate "Broadcom BCM43xx wireless support" depends on PCI && IEEE80211 && IEEE80211_SOFTMAC && NET_RADIO && EXPERIMENTAL select FW_LOADER ---help--- This is an experimental driver for the Broadcom 43xx wireless chip, found in the Apple Airport Extreme and various other devices. config BCM43XX_DEBUG bool "Broadcom BCM43xx debugging (RECOMMENDED)" depends on BCM43XX default y ---help--- Broadcom 43xx debugging messages. Say Y, because the driver is still very experimental and this will help you get it running. config BCM43XX_DMA bool config BCM43XX_PIO bool choice prompt "BCM43xx data transfer mode" depends on BCM43XX default BCM43XX_DMA_AND_PIO config BCM43XX_DMA_AND_PIO_MODE bool "DMA + PIO" select BCM43XX_DMA select BCM43XX_PIO ---help--- Include both, Direct Memory Access (DMA) and Programmed I/O (PIO) data transfer modes. The actually used mode is selectable through the module parameter "pio". If the module parameter is pio=0, DMA is used. Otherwise PIO is used. DMA is default. If unsure, choose this option. config BCM43XX_DMA_MODE bool "DMA (Direct Memory Access) only" select BCM43XX_DMA ---help--- Only include Direct Memory Access (DMA). This reduces the size of the driver module, by omitting the PIO code. config BCM43XX_PIO_MODE bool "PIO (Programmed I/O) only" select BCM43XX_PIO ---help--- Only include Programmed I/O (PIO). This reduces the size of the driver module, by omitting the DMA code. Please note that PIO transfers are slow (compared to DMA). Only use PIO, if DMA does not work for you. endchoice drivers/net/wireless/bcm43xx/Makefile +4 −2 Original line number Diff line number Diff line obj-$(CONFIG_BCM43XX) += bcm43xx.o bcm43xx-obj-$(CONFIG_BCM43XX_DEBUG) += bcm43xx_debugfs.o bcm43xx-objs := bcm43xx_main.o bcm43xx_dma.o \ bcm43xx-obj-$(CONFIG_BCM43XX_DMA) += bcm43xx_dma.o bcm43xx-obj-$(CONFIG_BCM43XX_PIO) += bcm43xx_pio.o bcm43xx-objs := bcm43xx_main.o bcm43xx_ilt.o \ bcm43xx_radio.o bcm43xx_phy.o \ bcm43xx_power.o bcm43xx_wx.o \ bcm43xx_pio.o bcm43xx_ilt.o \ bcm43xx_leds.o bcm43xx_ethtool.o \ $(bcm43xx-obj-y) drivers/net/wireless/bcm43xx/bcm43xx.h +28 −1 Original line number Diff line number Diff line Loading @@ -639,7 +639,7 @@ struct bcm43xx_private { u32 initialized:1, /* init_board() succeed */ was_initialized:1, /* for PCI suspend/resume. */ shutting_down:1, /* free_board() in progress */ pio_mode:1, /* PIO (if true), or DMA (if false) used. */ __using_pio:1, /* Internal, use bcm43xx_using_pio(). */ bad_frames_preempt:1, /* Use "Bad Frames Preemption" (default off) */ reg124_set_0x4:1, /* Some variable to keep track of IRQ stuff. */ powersaving:1, /* TRUE if we are in PowerSaving mode. FALSE otherwise. */ Loading Loading @@ -749,6 +749,33 @@ struct bcm43xx_private * bcm43xx_priv(struct net_device *dev) return ieee80211softmac_priv(dev); } /* Helper function, which returns a boolean. * TRUE, if PIO is used; FALSE, if DMA is used. */ #if defined(CONFIG_BCM43XX_DMA) && defined(CONFIG_BCM43XX_PIO) static inline int bcm43xx_using_pio(struct bcm43xx_private *bcm) { return bcm->__using_pio; } #elif defined(CONFIG_BCM43XX_DMA) static inline int bcm43xx_using_pio(struct bcm43xx_private *bcm) { return 0; } #elif defined(CONFIG_BCM43XX_PIO) static inline int bcm43xx_using_pio(struct bcm43xx_private *bcm) { return 1; } #else # error "Using neither DMA nor PIO? Confused..." #endif static inline int bcm43xx_num_80211_cores(struct bcm43xx_private *bcm) { Loading drivers/net/wireless/bcm43xx/bcm43xx_dma.h +46 −0 Original line number Diff line number Diff line Loading @@ -94,6 +94,10 @@ #define BCM43xx_TXRESUME_PERCENT 50 #ifdef CONFIG_BCM43XX_DMA struct sk_buff; struct bcm43xx_private; struct bcm43xx_xmitstatus; Loading Loading @@ -172,4 +176,46 @@ int bcm43xx_dma_tx(struct bcm43xx_private *bcm, struct ieee80211_txb *txb); void bcm43xx_dma_rx(struct bcm43xx_dmaring *ring); #else /* CONFIG_BCM43XX_DMA */ static inline int bcm43xx_dma_init(struct bcm43xx_private *bcm) { return 0; } static inline void bcm43xx_dma_free(struct bcm43xx_private *bcm) { } static inline int bcm43xx_dmacontroller_rx_reset(struct bcm43xx_private *bcm, u16 dmacontroller_mmio_base) { return 0; } static inline int bcm43xx_dmacontroller_tx_reset(struct bcm43xx_private *bcm, u16 dmacontroller_mmio_base) { return 0; } static inline int bcm43xx_dma_tx(struct bcm43xx_private *bcm, struct ieee80211_txb *txb) { return 0; } static inline void bcm43xx_dma_handle_xmitstatus(struct bcm43xx_private *bcm, struct bcm43xx_xmitstatus *status) { } static inline void bcm43xx_dma_rx(struct bcm43xx_dmaring *ring) { } #endif /* CONFIG_BCM43XX_DMA */ #endif /* BCM43xx_DMA_H_ */ Loading
drivers/net/wireless/Kconfig +1 −17 Original line number Diff line number Diff line Loading @@ -500,23 +500,7 @@ config PRISM54 will be called prism54.ko. source "drivers/net/wireless/hostap/Kconfig" config BCM43XX tristate "Broadcom BCM43xx wireless support" depends on PCI && IEEE80211 && NET_RADIO && IEEE80211_SOFTMAC && EXPERIMENTAL select FW_LOADER ---help--- This is an experimental driver for the Broadcom 43xx wireless chip, found in the Apple Airport Extreme and various other devices. config BCM43XX_DEBUG bool "Broadcom BCM43xx debugging (RECOMMENDED)" depends on BCM43XX default y ---help--- Broadcom 43xx debugging messages. Say Y, because the driver is still very experimental and this will help you get it running. source "drivers/net/wireless/bcm43xx/Kconfig" # yes, this works even when no drivers are selected config NET_WIRELESS Loading
drivers/net/wireless/bcm43xx/Kconfig 0 → 100644 +57 −0 Original line number Diff line number Diff line config BCM43XX tristate "Broadcom BCM43xx wireless support" depends on PCI && IEEE80211 && IEEE80211_SOFTMAC && NET_RADIO && EXPERIMENTAL select FW_LOADER ---help--- This is an experimental driver for the Broadcom 43xx wireless chip, found in the Apple Airport Extreme and various other devices. config BCM43XX_DEBUG bool "Broadcom BCM43xx debugging (RECOMMENDED)" depends on BCM43XX default y ---help--- Broadcom 43xx debugging messages. Say Y, because the driver is still very experimental and this will help you get it running. config BCM43XX_DMA bool config BCM43XX_PIO bool choice prompt "BCM43xx data transfer mode" depends on BCM43XX default BCM43XX_DMA_AND_PIO config BCM43XX_DMA_AND_PIO_MODE bool "DMA + PIO" select BCM43XX_DMA select BCM43XX_PIO ---help--- Include both, Direct Memory Access (DMA) and Programmed I/O (PIO) data transfer modes. The actually used mode is selectable through the module parameter "pio". If the module parameter is pio=0, DMA is used. Otherwise PIO is used. DMA is default. If unsure, choose this option. config BCM43XX_DMA_MODE bool "DMA (Direct Memory Access) only" select BCM43XX_DMA ---help--- Only include Direct Memory Access (DMA). This reduces the size of the driver module, by omitting the PIO code. config BCM43XX_PIO_MODE bool "PIO (Programmed I/O) only" select BCM43XX_PIO ---help--- Only include Programmed I/O (PIO). This reduces the size of the driver module, by omitting the DMA code. Please note that PIO transfers are slow (compared to DMA). Only use PIO, if DMA does not work for you. endchoice
drivers/net/wireless/bcm43xx/Makefile +4 −2 Original line number Diff line number Diff line obj-$(CONFIG_BCM43XX) += bcm43xx.o bcm43xx-obj-$(CONFIG_BCM43XX_DEBUG) += bcm43xx_debugfs.o bcm43xx-objs := bcm43xx_main.o bcm43xx_dma.o \ bcm43xx-obj-$(CONFIG_BCM43XX_DMA) += bcm43xx_dma.o bcm43xx-obj-$(CONFIG_BCM43XX_PIO) += bcm43xx_pio.o bcm43xx-objs := bcm43xx_main.o bcm43xx_ilt.o \ bcm43xx_radio.o bcm43xx_phy.o \ bcm43xx_power.o bcm43xx_wx.o \ bcm43xx_pio.o bcm43xx_ilt.o \ bcm43xx_leds.o bcm43xx_ethtool.o \ $(bcm43xx-obj-y)
drivers/net/wireless/bcm43xx/bcm43xx.h +28 −1 Original line number Diff line number Diff line Loading @@ -639,7 +639,7 @@ struct bcm43xx_private { u32 initialized:1, /* init_board() succeed */ was_initialized:1, /* for PCI suspend/resume. */ shutting_down:1, /* free_board() in progress */ pio_mode:1, /* PIO (if true), or DMA (if false) used. */ __using_pio:1, /* Internal, use bcm43xx_using_pio(). */ bad_frames_preempt:1, /* Use "Bad Frames Preemption" (default off) */ reg124_set_0x4:1, /* Some variable to keep track of IRQ stuff. */ powersaving:1, /* TRUE if we are in PowerSaving mode. FALSE otherwise. */ Loading Loading @@ -749,6 +749,33 @@ struct bcm43xx_private * bcm43xx_priv(struct net_device *dev) return ieee80211softmac_priv(dev); } /* Helper function, which returns a boolean. * TRUE, if PIO is used; FALSE, if DMA is used. */ #if defined(CONFIG_BCM43XX_DMA) && defined(CONFIG_BCM43XX_PIO) static inline int bcm43xx_using_pio(struct bcm43xx_private *bcm) { return bcm->__using_pio; } #elif defined(CONFIG_BCM43XX_DMA) static inline int bcm43xx_using_pio(struct bcm43xx_private *bcm) { return 0; } #elif defined(CONFIG_BCM43XX_PIO) static inline int bcm43xx_using_pio(struct bcm43xx_private *bcm) { return 1; } #else # error "Using neither DMA nor PIO? Confused..." #endif static inline int bcm43xx_num_80211_cores(struct bcm43xx_private *bcm) { Loading
drivers/net/wireless/bcm43xx/bcm43xx_dma.h +46 −0 Original line number Diff line number Diff line Loading @@ -94,6 +94,10 @@ #define BCM43xx_TXRESUME_PERCENT 50 #ifdef CONFIG_BCM43XX_DMA struct sk_buff; struct bcm43xx_private; struct bcm43xx_xmitstatus; Loading Loading @@ -172,4 +176,46 @@ int bcm43xx_dma_tx(struct bcm43xx_private *bcm, struct ieee80211_txb *txb); void bcm43xx_dma_rx(struct bcm43xx_dmaring *ring); #else /* CONFIG_BCM43XX_DMA */ static inline int bcm43xx_dma_init(struct bcm43xx_private *bcm) { return 0; } static inline void bcm43xx_dma_free(struct bcm43xx_private *bcm) { } static inline int bcm43xx_dmacontroller_rx_reset(struct bcm43xx_private *bcm, u16 dmacontroller_mmio_base) { return 0; } static inline int bcm43xx_dmacontroller_tx_reset(struct bcm43xx_private *bcm, u16 dmacontroller_mmio_base) { return 0; } static inline int bcm43xx_dma_tx(struct bcm43xx_private *bcm, struct ieee80211_txb *txb) { return 0; } static inline void bcm43xx_dma_handle_xmitstatus(struct bcm43xx_private *bcm, struct bcm43xx_xmitstatus *status) { } static inline void bcm43xx_dma_rx(struct bcm43xx_dmaring *ring) { } #endif /* CONFIG_BCM43XX_DMA */ #endif /* BCM43xx_DMA_H_ */