Changeset 31064 for trunk


Ignore:
Timestamp:
2012-03-25T10:50:38+02:00 (4 years ago)
Author:
blogic
Message:

[lantiq] cleanup atheros wifi handling

Signed-off-by: Andrej Vlašić <andrej.vlasic0@…>
Signed-off-by: Luka Perkov <openwrt@…>

Location:
trunk/target/linux/lantiq/files-3.2/arch/mips/lantiq/xway
Files:
1 added
1 copied
2 moved

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/lantiq/files-3.2/arch/mips/lantiq/xway/dev-wifi-athxk.c

    r31063 r31064  
    1111#include <linux/platform_device.h> 
    1212#include <linux/ath5k_platform.h> 
     13#include <linux/ath9k_platform.h> 
    1314#include <linux/pci.h> 
    1415 
    15 #include "dev-wifi-ath5k.h" 
     16#include "dev-wifi-athxk.h" 
    1617 
    1718extern int (*ltqpci_plat_dev_init)(struct pci_dev *dev); 
    1819struct ath5k_platform_data ath5k_pdata; 
     20struct ath9k_platform_data ath9k_pdata = { 
     21        .led_pin = -1, 
     22}; 
    1923 
    20 static int  
     24static int 
    2125ath5k_pci_plat_dev_init(struct pci_dev *dev) 
    2226{ 
    2327        dev->dev.platform_data = &ath5k_pdata; 
     28        return 0; 
     29} 
     30 
     31static int 
     32ath9k_pci_plat_dev_init(struct pci_dev *dev) 
     33{ 
     34        dev->dev.platform_data = &ath9k_pdata; 
    2435        return 0; 
    2536} 
     
    3243        ltqpci_plat_dev_init = ath5k_pci_plat_dev_init; 
    3344} 
     45 
     46void __init 
     47ltq_register_ath9k(u16 *eeprom_data, u8 *macaddr) 
     48{ 
     49        memcpy(ath9k_pdata.eeprom_data, eeprom_data, sizeof(ath9k_pdata.eeprom_data)); 
     50        ath9k_pdata.macaddr = macaddr; 
     51        ltqpci_plat_dev_init = ath9k_pci_plat_dev_init; 
     52} 
  • trunk/target/linux/lantiq/files-3.2/arch/mips/lantiq/xway/dev-wifi-athxk.h

    r31063 r31064  
    88 */ 
    99 
    10 #ifndef _DEV_WIFI_ATH5K_H__ 
    11 #define _DEV_WIFI_ATH5K_H__ 
     10#ifndef _DEV_WIFI_ATHXK_H__ 
     11#define _DEV_WIFI_ATHXK_H__ 
    1212 
    1313extern void ltq_register_ath5k(u16 *eeprom_data, u8 *macaddr); 
     14extern void ltq_register_ath9k(u16 *eeprom_data, u8 *macaddr); 
    1415 
    1516#endif 
  • trunk/target/linux/lantiq/files-3.2/arch/mips/lantiq/xway/pci-ath-fixup.c

    r31063 r31064  
    1010 
    1111#include <linux/pci.h> 
     12#include <linux/init.h> 
    1213#include <linux/delay.h> 
     14#include <lantiq_soc.h> 
    1315 
    14 #include <asm/mach-ath79/ar71xx_regs.h> 
    15 #include <asm/mach-ath79/ath79.h> 
    16 #include <asm/mach-ath79/pci.h> 
     16#define LTQ_PCI_MEM_BASE                0x18000000 
    1717 
    18 struct ath9k_fixup { 
     18struct ath_fixup { 
    1919        u16             *cal_data; 
    2020        unsigned        slot; 
    2121}; 
    2222 
    23 static int ath9k_num_fixups; 
    24 static struct ath9k_fixup ath9k_fixups[2]; 
     23static int ath_num_fixups; 
     24static struct ath_fixup ath_fixups[2]; 
    2525 
    26 static void ath9k_pci_fixup(struct pci_dev *dev) 
     26static void ath_pci_fixup(struct pci_dev *dev) 
    2727{ 
    2828        void __iomem *mem; 
     
    3333        unsigned i; 
    3434 
    35         for (i = 0; i < ath9k_num_fixups; i++) { 
    36                 if (ath9k_fixups[i].cal_data == NULL) 
     35        for (i = 0; i < ath_num_fixups; i++) { 
     36                if (ath_fixups[i].cal_data == NULL) 
    3737                        continue; 
    3838 
    39                 if (ath9k_fixups[i].slot != PCI_SLOT(dev->devfn)) 
     39                if (ath_fixups[i].slot != PCI_SLOT(dev->devfn)) 
    4040                        continue; 
    4141 
    42                 cal_data = ath9k_fixups[i].cal_data; 
     42                cal_data = ath_fixups[i].cal_data; 
    4343                break; 
    4444        } 
     
    5454        pr_info("pci %s: fixup device configuration\n", pci_name(dev)); 
    5555 
    56         mem = ioremap(AR71XX_PCI_MEM_BASE, 0x10000); 
     56        mem = ioremap(LTQ_PCI_MEM_BASE, 0x10000); 
    5757        if (!mem) { 
    5858                pr_err("pci %s: ioremap error\n", pci_name(dev)); 
     
    6161 
    6262        pci_read_config_dword(dev, PCI_BASE_ADDRESS_0, &bar0); 
    63  
    64         switch (ath79_soc) { 
    65         case ATH79_SOC_AR7161: 
    66                 pci_write_config_dword(dev, PCI_BASE_ADDRESS_0, 
    67                                        AR71XX_PCI_MEM_BASE); 
    68                 break; 
    69         case ATH79_SOC_AR7240: 
    70                 pci_write_config_dword(dev, PCI_BASE_ADDRESS_0, 0xffff); 
    71                 break; 
    72  
    73         case ATH79_SOC_AR7241: 
    74         case ATH79_SOC_AR7242: 
    75                 pci_write_config_dword(dev, PCI_BASE_ADDRESS_0, 0x1000ffff); 
    76                 break; 
    77  
    78         default: 
    79                 BUG(); 
    80         } 
    81  
     63        pci_write_config_dword(dev, PCI_BASE_ADDRESS_0, LTQ_PCI_MEM_BASE); 
    8264        pci_read_config_word(dev, PCI_COMMAND, &cmd); 
    8365        cmd |= PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY; 
     
    9274                val |= (*cal_data++) << 16; 
    9375 
    94                 __raw_writel(val, mem + reg); 
     76                ltq_w32(swab32(val), mem + reg); 
    9577                udelay(100); 
    9678        } 
     
    10486        dev->class = val >> 8; /* upper 3 bytes */ 
    10587 
     88        pr_info("pci %s: fixup info: [%04x:%04x] revision %02x class %#08x\n",  
     89                pci_name(dev), dev->vendor, dev->device, dev->revision, dev->class); 
     90 
    10691        pci_read_config_word(dev, PCI_COMMAND, &cmd); 
    10792        cmd &= ~(PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY); 
     
    11297        iounmap(mem); 
    11398} 
    114 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ATHEROS, PCI_ANY_ID, ath9k_pci_fixup); 
     99DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ATHEROS, PCI_ANY_ID, ath_pci_fixup); 
    115100 
    116 void __init pci_enable_ath9k_fixup(unsigned slot, u16 *cal_data) 
     101void __init ltq_pci_ath_fixup(unsigned slot, u16 *cal_data) 
    117102{ 
    118         if (ath9k_num_fixups >= ARRAY_SIZE(ath9k_fixups)) 
     103        if (ath_num_fixups >= ARRAY_SIZE(ath_fixups)) 
    119104                return; 
    120105 
    121         ath9k_fixups[ath9k_num_fixups].slot = slot; 
    122         ath9k_fixups[ath9k_num_fixups].cal_data = cal_data; 
    123         ath9k_num_fixups++; 
     106        ath_fixups[ath_num_fixups].slot = slot; 
     107        ath_fixups[ath_num_fixups].cal_data = cal_data; 
     108        ath_num_fixups++; 
    124109} 
Note: See TracChangeset for help on using the changeset viewer.