static int rtl8196b_pcibios_config_access(unsigned char access_type, unsigned int addr, unsigned int *data) { /* Do 8bit/16bit/32bit access */ if (access_type & PCI_ACCESS_WRITE) { if (access_type & PCI_8BIT_ACCESS) WRITE_MEM8(addr, *data); else if (access_type & PCI_16BIT_ACCESS) WRITE_MEM16(addr, *data); else WRITE_MEM32(addr, *data); } else if (access_type & PCI_ACCESS_READ) { if (access_type & PCI_8BIT_ACCESS) *data = READ_MEM8(addr); else if (access_type & PCI_16BIT_ACCESS) *data = READ_MEM16(addr); else *data = READ_MEM32(addr); } /* If need to check for PCIE access timeout, put code here */ /* ... */ return 0; }
static int rtl8196b_pcibios_config_access(unsigned char access_type, unsigned int addr, unsigned int *data) { /* Do 8bit/16bit/32bit access */ if (access_type & PCI_ACCESS_WRITE) { if (access_type & PCI_8BIT_ACCESS) WRITE_MEM8(addr, *data); else if (access_type & PCI_16BIT_ACCESS) WRITE_MEM16(addr, *data); else WRITE_MEM32(addr, *data); } else if (access_type & PCI_ACCESS_READ) { if (access_type & PCI_8BIT_ACCESS) { #ifdef CONFIG_RTL8198_REVISION_B unsigned int data_temp=0; int swap[4]={0,8,16,24}; int diff = addr&0x3; data_temp=READ_MEM32(addr); *data=(unsigned int)(( data_temp>>swap[diff])&0xff); #else *data = READ_MEM8(addr); #endif } else if (access_type & PCI_16BIT_ACCESS) {