firewall: update to git head
[openwrt.git] / package / mac80211 / patches / 603-rt2x00-introduce-rt2x00eeprom.patch
index 801d53a..0c9cf81 100644 (file)
 +}
 --- a/drivers/net/wireless/rt2x00/rt2x00.h
 +++ b/drivers/net/wireless/rt2x00/rt2x00.h
-@@ -554,6 +554,7 @@ struct rt2x00lib_ops {
+@@ -560,6 +560,7 @@ struct rt2x00lib_ops {
                               const u8 *data, const size_t len);
        int (*load_firmware) (struct rt2x00_dev *rt2x00dev,
                              const u8 *data, const size_t len);
  
        /*
         * Device initialization/deinitialization handlers.
-@@ -706,6 +707,7 @@ enum rt2x00_capability_flags {
+@@ -720,6 +721,7 @@ enum rt2x00_capability_flags {
        REQUIRE_SW_SEQNO,
        REQUIRE_HT_TX_DESC,
        REQUIRE_PS_AUTOWAKE,
  
        /*
         * Capabilities
-@@ -960,6 +962,11 @@ struct rt2x00_dev {
+@@ -989,6 +991,11 @@ struct rt2x00_dev {
        const struct firmware *fw;
  
        /*
        DECLARE_KFIFO_PTR(txstatus_fifo, u32);
 --- a/drivers/net/wireless/rt2x00/rt2x00lib.h
 +++ b/drivers/net/wireless/rt2x00/rt2x00lib.h
-@@ -309,6 +309,22 @@ static inline void rt2x00lib_free_firmwa
+@@ -322,6 +322,22 @@ static inline void rt2x00lib_free_firmwa
  #endif /* CONFIG_RT2X00_LIB_FIRMWARE */
  
  /*
  #ifdef CONFIG_RT2X00_LIB_DEBUGFS
 --- a/drivers/net/wireless/rt2x00/Kconfig
 +++ b/drivers/net/wireless/rt2x00/Kconfig
-@@ -60,6 +60,7 @@ config RT2800PCI
+@@ -64,6 +64,7 @@ config RT2800PCI
        select RT2X00_LIB_PCI if PCI
-       select RT2X00_LIB_SOC if RALINK_RT288X || RALINK_RT305X
+       select RT2X00_LIB_SOC if SOC_RT288X || SOC_RT305X
        select RT2X00_LIB_FIRMWARE
 +      select RT2X00_LIB_EEPROM
        select RT2X00_LIB_CRYPTO
        select CRC_CCITT
        select EEPROM_93CX6
-@@ -204,6 +205,9 @@ config RT2X00_LIB_FIRMWARE
+@@ -221,6 +222,9 @@ config RT2X00_LIB_FIRMWARE
  config RT2X00_LIB_CRYPTO
        boolean
  
 +rt2x00lib-$(CONFIG_RT2X00_LIB_EEPROM) += rt2x00eeprom.o
  
  obj-$(CONFIG_RT2X00_LIB)              += rt2x00lib.o
- obj-$(CONFIG_RT2X00_LIB_PCI)          += rt2x00pci.o
+ obj-$(CONFIG_RT2X00_LIB_MMIO)         += rt2x00mmio.o
 --- a/drivers/net/wireless/rt2x00/rt2800pci.c
 +++ b/drivers/net/wireless/rt2x00/rt2800pci.c
-@@ -84,20 +84,10 @@ static void rt2800pci_mcu_status(struct 
-       rt2x00pci_register_write(rt2x00dev, H2M_MAILBOX_CID, ~0);
+@@ -90,25 +90,11 @@ static void rt2800pci_mcu_status(struct 
+       rt2x00mmio_register_write(rt2x00dev, H2M_MAILBOX_CID, ~0);
  }
  
--#if defined(CONFIG_RALINK_RT288X) || defined(CONFIG_RALINK_RT305X)
- static void rt2800pci_read_eeprom_soc(struct rt2x00_dev *rt2x00dev)
+-#if defined(CONFIG_SOC_RT288X) || defined(CONFIG_SOC_RT305X)
+ static int rt2800pci_read_eeprom_soc(struct rt2x00_dev *rt2x00dev)
  {
 -      void __iomem *base_addr = ioremap(0x1F040000, EEPROM_SIZE);
 -
+-      if (!base_addr)
+-              return -ENOMEM;
+-
 -      memcpy_fromio(rt2x00dev->eeprom, base_addr, EEPROM_SIZE);
 -
 -      iounmap(base_addr);
 +      memcpy(rt2x00dev->eeprom, rt2x00dev->eeprom_file->data, EEPROM_SIZE);
+       return 0;
  }
 -#else
--static inline void rt2800pci_read_eeprom_soc(struct rt2x00_dev *rt2x00dev)
+-static inline int rt2800pci_read_eeprom_soc(struct rt2x00_dev *rt2x00dev)
 -{
+-      return -ENOMEM;
 -}
--#endif /* CONFIG_RALINK_RT288X || CONFIG_RALINK_RT305X */
+-#endif /* CONFIG_SOC_RT288X || CONFIG_SOC_RT305X */
  
  #ifdef CONFIG_PCI
  static void rt2800pci_eepromregister_read(struct eeprom_93cx6 *eeprom)
-@@ -311,6 +301,20 @@ static int rt2800pci_write_firmware(stru
+@@ -332,6 +318,20 @@ static int rt2800pci_write_firmware(stru
  }
  
  /*
   * Initialization functions.
   */
  static bool rt2800pci_get_entry_state(struct queue_entry *entry)
-@@ -1040,6 +1044,7 @@ static const struct rt2x00lib_ops rt2800
+@@ -1162,6 +1162,7 @@ static const struct rt2x00lib_ops rt2800
        .get_firmware_name      = rt2800pci_get_firmware_name,
        .check_firmware         = rt2800_check_firmware,
        .load_firmware          = rt2800_load_firmware,
-+      .get_eeprom_file_name   = rt2800pci_get_eeprom_file_name,
-       .initialize             = rt2x00pci_initialize,
-       .uninitialize           = rt2x00pci_uninitialize,
++      .get_eeprom_file_name   = rt2800pci_get_eeprom_file_name,
+       .initialize             = rt2x00mmio_initialize,
+       .uninitialize           = rt2x00mmio_uninitialize,
        .get_entry_state        = rt2800pci_get_entry_state,
 --- a/drivers/net/wireless/rt2x00/rt2x00dev.c
 +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
-@@ -1157,6 +1157,10 @@ int rt2x00lib_probe_dev(struct rt2x00_de
-                   BIT(NL80211_IFTYPE_MESH_POINT) |
-                   BIT(NL80211_IFTYPE_WDS);
+@@ -1318,6 +1318,10 @@ int rt2x00lib_probe_dev(struct rt2x00_de
+       rt2x00dev->hw->wiphy->flags |= WIPHY_FLAG_IBSS_RSN;
  
 +      retval = rt2x00lib_load_eeprom_file(rt2x00dev);
 +      if (retval)
        /*
         * Initialize work.
         */
-@@ -1280,6 +1284,11 @@ void rt2x00lib_remove_dev(struct rt2x00_
+@@ -1442,6 +1446,11 @@ void rt2x00lib_remove_dev(struct rt2x00_
         */
        if (rt2x00dev->drv_data)
                kfree(rt2x00dev->drv_data);