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