p54spi: p54spi driver
RFC PATCH 3/3 p54spi: p54spi driver
This patch adds the p54spi driver itself.
Again: If you don't know what you're doing, don't do anything ;-)
---
drivers/net/wireless/p54/Kconfig +9 -0
@@ -61,3 +61,12 @@ config P54_PCI http://prism54.org/ If you choose to build a module, it'll be called p54pci. + +config P54_SPI + tristate "Prism54 SPI (stlc45xx) support" + depends on P54_COMMON && SPI_MASTER + ---help--- + This driver is for stlc4550 or stlc4560 based wireless chips. + This driver is highly experimental and untested. + + If you choose to build a module, it'll be called p54spi.
drivers/net/wireless/p54/Makefile +1 -0
@@ -1,3 +1,4 @@ obj-$(CONFIG_P54_COMMON) += p54common.o obj-$(CONFIG_P54_USB) += p54usb.o obj-$(CONFIG_P54_PCI) += p54pci.o +obj-$(CONFIG_P54_SPI) += p54spi.o
drivers/net/wireless/p54/p54common.c +2 -1
@@ -398,7 +398,7 @@ static int p54_parse_output_power_limitsreturn 0 ; } -static int p54_parse_eeprom (struct ieee80211_hw *dev,void *eeprom,int len) +int p54_parse_eeprom (struct ieee80211_hw *dev,void *eeprom,int len) {struct p54_common *priv = dev->priv;struct eeprom_pda_wrap *wrap =NULL ;
@@ -622,6 +622,7 @@ static int p54_parse_eeprom(struct ieee8 wiphy_name(dev->wiphy));return err; } +EXPORT_SYMBOL_GPL (p54_parse_eeprom);static int p54_rssi_to_dbm (struct ieee80211_hw *dev,int rssi) {
drivers/net/wireless/p54/p54common.h +0 -6
@@ -278,12 +278,6 @@ struct pda_custom_wrapper {#define PDR_COUNTRY_CERT_IODOOR_OUTDOOR 0x30#define PDR_COUNTRY_CERT_INDEX 0x0F -/* stored in skb->cb */ -struct memrecord { -u32 start_addr; -u32 end_addr; -}; - struct p54_eeprom_lm86 { union { struct {
drivers/net/wireless/p54/p54.h +16 -0
@@ -84,6 +84,21 @@ struct p54_rssi_linear_approximation {#define FW_LM87 0x4c4d3837#define FW_LM20 0x4c4d3230 +enum fw_state { +FW_STATE_OFF , +FW_STATE_BOOTING , +FW_STATE_READY , +FW_STATE_RESET , +FW_STATE_RESETTING , +}; + +/* stored in skb->cb */ +struct memrecord { +u32 start_addr; +u32 end_addr; +u8 driver_data[16 ]; +}; +struct p54_common {struct ieee80211_hw *hw;u32 rx_start;
@@ -132,6 +147,7 @@ struct p54_common {int p54_rx (struct ieee80211_hw *dev,struct sk_buff *skb);void p54_free_skb (struct ieee80211_hw *dev,struct sk_buff *skb);int p54_parse_firmware (struct ieee80211_hw *dev,const struct firmware *fw); +int p54_parse_eeprom (struct ieee80211_hw *dev,void *eeprom,int len);int p54_read_eeprom (struct ieee80211_hw *dev);struct ieee80211_hw *p54_init_common (size_t priv_data_len);void p54_free_common (struct ieee80211_hw *dev);
drivers/net/wireless/p54/p54spi.c +774 -0
774 lines not on this page · raw message
drivers/net/wireless/p54/p54spi.h +134 -0
134 lines not on this page · raw message