Way to many DPRINTK()'s 

> +
> +int is_flash_supported(struct netxen_adapter *adapter)

needs to be static or prefixed.

> +{
> +     int locs[] = { 0, 0x4, 0x100, 0x4000, 0x4128 };

use const

> +     int addr, val01, val02, i, j;
> +
> +     /* if the flash size less than 4Mb, make huge war cry and die */
> +     for (j = 1; j < 4; j++) {
> +             addr = j * 0x100000;
> +             for (i = 0; i < (sizeof(locs) / sizeof(locs[0])); i++) {
> +                     if (netxen_rom_fast_read(adapter, locs[i], &val01) == 0
> +                         && netxen_rom_fast_read(adapter, (addr + locs[i]),
> +                                                 &val02) == 0) {
> +                             if (val01 == val02)
> +                                     return -1;
> +                     } else
> +                             return -1;
> +             }
> +     }
> +
> +     return 0;
> +}
> +
> +static int netxen_get_flash_block(struct netxen_adapter *adapter, int base,
> +                               int size, u32 * buf)
> +{
> +     int i, addr;
> +     u32 *ptr32;
> +
> +     addr = base;
> +     ptr32 = buf;
> +     for (i = 0; i < size / sizeof(u32); i++) {
> +             if (netxen_rom_fast_read(adapter, addr, ptr32) == -1)
> +                     return -1;
> +             ptr32++;
> +             addr += sizeof(u32);
> +     }
> +     if ((char *)buf + size > (char *)ptr32) {
> +             u32 local;
> +
> +             if (netxen_rom_fast_read(adapter, addr, &local) == -1)
> +                     return -1;
> +             memcpy(ptr32, &local, (char *)buf + size - (char *)ptr32);
> +     }
> +
> +     return 0;
> +}
> +
> +int get_flash_mac_addr(struct netxen_adapter *adapter, u64 mac[])

static int get_flash_mac_addr()..
+
> +void load_firmware(struct netxen_adapter *adapter)

also must be static

> +{
> +     int i;
> +     long data, size = 0;
> +     long flashaddr = NETXEN_FLASH_BASE, memaddr = NETXEN_PHANTOM_MEM_BASE;
> +     u64 off;
> +     ptrdiff_t addr;
> +
> +     size = (16 * 1024) / 4;
> +     writel(1, NETXEN_CRB_NORMALIZE(adapter, NETXEN_ROMUSB_GLB_CAS_RST));
> +
> +     for (i = 0; i < size; i++) {
> +             if (netxen_rom_fast_read(adapter, flashaddr, (int *)&data) != 
> 0) {
> +                     DPRINTK(ERR,
> +                             "Error in netxen_rom_fast_read(). Will skip"
> +                             "loading flash image\n");
> +                     return;
> +             }
> +             off = netxen_nic_pci_set_window(adapter->ahw.pci_base, memaddr);
> +             addr = (ptrdiff_t) (adapter->ahw.pci_base + off);
> +             writel(data, (void __iomem *)addr);
> +             flashaddr += 4;
> +             memaddr += 4;
> +     }
> +     udelay(100);
> +     /* make sure Casper is powered on */
> +     writel(0x3fff,
> +            NETXEN_CRB_NORMALIZE(adapter, NETXEN_ROMUSB_GLB_CHIP_CLK_CTRL));
> +     writel(0, NETXEN_CRB_NORMALIZE(adapter, NETXEN_ROMUSB_GLB_CAS_RST));
> +
> +     udelay(10000);
> +}
> +
> +int
> +netxen_nic_hw_write_wx(struct netxen_adapter *adapter, u64 off, void *data,
> +                    int len)
> +{
> +     void __iomem * addr;
> +
> +     if (ADDR_IN_WINDOW1(off)) {
> +             addr = NETXEN_CRB_NORMALIZE(adapter, off);
> +     } else {                /* Window 0 */
> +             addr = (void *)(ptrdiff_t) (adapter->ahw.pci_base + off);
> +             netxen_nic_pci_change_crbwindow(adapter, 0);
> +     }
> +
> +     DPRINTK(INFO, "writing to base %lx offset %llx addr %p"
> +             " data %llx len %d\n",
> +             adapter->ahw.pci_base, off, addr,
> +             *(unsigned long long *)data, len);
> +     switch (len) {
> +     case 1:
> +             writeb(*(u8 *) data, addr);
> +             break;
> +     case 2:
> +             writew(*(u16 *) data, addr);
> +             break;
> +     case 4:
> +             writel(*(u32 *) data, addr);
> +             break;
> +     case 8:
> +             writeq(*(u64 *) data, addr);
> +             break;
> +     default:
> +             DPRINTK(INFO,
> +                     "writing data %lx to offset %llx, num words=%d\n",
> +                     *(unsigned long *)data, off, (len >> 3));
> +
> +             NETXEN_NIC_HW_BLOCK_WRITE_64(data, addr, (len >> 3));
> +             break;
> +     }
> +     if (!ADDR_IN_WINDOW1(off))
> +             netxen_nic_pci_change_crbwindow(adapter, 1);
> +
> +     return 0;
> +}
> +
> +int
> +netxen_nic_hw_read_wx(struct netxen_adapter *adapter, u64 off, void *data,
> +                   int len)

If you can make this inline then the switch can be optimized.

> +{
> +     void __iomem * addr;
> +
> +     if (ADDR_IN_WINDOW1(off)) {     /* Window 1 */
> +             addr = NETXEN_CRB_NORMALIZE(adapter, off);
> +     } else {                /* Window 0 */
> +             addr = (void *)(ptrdiff_t) (adapter->ahw.pci_base + off);
> +             netxen_nic_pci_change_crbwindow(adapter, 0);
> +     }
> +
> +     DPRINTK(INFO, "reading from base %lx offset %llx addr %p\n",
> +             adapter->ahw.pci_base, off, addr);
> +     switch (len) {
> +     case 1:
> +             *(u8 *) data = readb(addr);
> +             break;
> +     case 2:
> +             *(u16 *) data = readw(addr);
> +             break;
> +     case 4:
> +             *(u32 *) data = readl(addr);
> +             break;
> +     case 8:
> +             *(u64 *) data = readq(addr);
> +             break;
> +     default:
> +             NETXEN_NIC_HW_BLOCK_READ_64(data, addr, (len >> 3));
> +             break;
> +     }
> +     DPRINTK(INFO, "read %lx\n", *(unsigned long *)data);
> +
> +     if (!ADDR_IN_WINDOW1(off))
> +             netxen_nic_pci_change_crbwindow(adapter, 1);
> +
> +     return 0;
> +}
> +
> +void netxen_nic_reg_write(struct netxen_adapter *adapter, u64 off, u32 val)
> +{                            /* Only for window 1 */
> +     void __iomem * addr;
> +
> +     addr = NETXEN_CRB_NORMALIZE(adapter, off);
> +     DPRINTK(INFO, "writing to base %lx offset %llx addr %p data %x\n",
> +             adapter->ahw.pci_base, off, addr, val);
> +     writel(val, addr);
> +
> +}
> +

inline?

> +int netxen_nic_reg_read(struct netxen_adapter *adapter, u64 off)
> +{                            /* Only for window 1 */
> +     void __iomem * addr;
> +     int val;
> +
> +     addr = NETXEN_CRB_NORMALIZE(adapter, off);
> +     DPRINTK(INFO, "reading from base %lx offset %llx addr %p\n",
> +             adapter->ahw.pci_base, off, addr);
> +     val = readl(addr);
> +     writel(val, addr);
> +
> +     return val;
> +}
inline?


> +     if (fw_major != _NETXEN_NIC_LINUX_MAJOR) {
> +             printk(KERN_ERR "The mismatch in driver version and firmware "
> +                     "version major number\n"
> +                     "Driver version major number = %d \t"
> +                     "Firmware version major number = %d \n",
> +                     _NETXEN_NIC_LINUX_MAJOR, fw_major);
> +             adapter->driver_mismatch = 1;
> +     }
> +     if (fw_minor != _NETXEN_NIC_LINUX_MINOR) {
> +             printk(KERN_ERR "The mismatch in driver version and firmware "
> +                     "version minor number\n"
> +                     "Driver version minor number = %d \t"
> +                     "Firmware version minor number = %d \n",
> +                     _NETXEN_NIC_LINUX_MINOR, fw_minor);
> +             adapter->driver_mismatch = 1;
> +     }
>

You might want a table for this?
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to