static int adapter_init(struct net_device *dev) { int i; select_nic(); rx_page = 0; /* used by RESET */ de600_put_command(RESET); de600_put_command(STOP_RESET); /* Check if it is still there... */ /* Get the some bytes of the adapter ethernet address from the ROM */ de600_setup_address(NODE_ADDRESS, RW_ADDR); de600_read_byte(READ_DATA, dev); if ((de600_read_byte(READ_DATA, dev) != 0xde) || (de600_read_byte(READ_DATA, dev) != 0x15)) { /* was: if (de600_read_status(dev) & 0xf0) { */ printk("Something has happened to the DE-600! Please check it and do a new ifconfig!\n"); /* Goodbye, cruel world... */ dev->flags &= ~IFF_UP; de600_close(dev); was_down = 1; netif_stop_queue(dev); /* Transmit busy... */ return 1; /* failed */ } if (was_down) { printk(KERN_INFO "%s: Thanks, I feel much better now!\n", dev->name); was_down = 0; } tx_fifo_in = 0; tx_fifo_out = 0; free_tx_pages = TX_PAGES; /* set the ether address. */ de600_setup_address(NODE_ADDRESS, RW_ADDR); for (i = 0; i < ETH_ALEN; i++) de600_put_byte(dev->dev_addr[i]); /* where to start saving incoming packets */ rx_page = RX_BP | RX_BASE_PAGE; de600_setup_address(MEM_4K, RW_ADDR); /* Enable receiver */ de600_put_command(RX_ENABLE); select_prn(); netif_start_queue(dev); return 0; /* OK */ }
static int adapter_init(struct net_device *dev) { int i; select_nic(); rx_page = 0; de600_put_command(RESET); de600_put_command(STOP_RESET); de600_setup_address(NODE_ADDRESS, RW_ADDR); de600_read_byte(READ_DATA, dev); if ((de600_read_byte(READ_DATA, dev) != 0xde) || (de600_read_byte(READ_DATA, dev) != 0x15)) { printk("Something has happened to the DE-600! Please check it and do a new ifconfig!\n"); dev->flags &= ~IFF_UP; de600_close(dev); was_down = 1; netif_stop_queue(dev); return 1; } if (was_down) { printk(KERN_INFO "%s: Thanks, I feel much better now!\n", dev->name); was_down = 0; } tx_fifo_in = 0; tx_fifo_out = 0; free_tx_pages = TX_PAGES; de600_setup_address(NODE_ADDRESS, RW_ADDR); for (i = 0; i < ETH_ALEN; i++) de600_put_byte(dev->dev_addr[i]); rx_page = RX_BP | RX_BASE_PAGE; de600_setup_address(MEM_4K, RW_ADDR); de600_put_command(RX_ENABLE); select_prn(); netif_start_queue(dev); return 0; }
static int adapter_init(struct device *dev) { int i; long flags; save_flags(flags); cli(); select_nic(); rx_page = 0; /* used by RESET */ de600_put_command(RESET); de600_put_command(STOP_RESET); #ifdef CHECK_LOST_DE600 /* Check if it is still there... */ /* Get the some bytes of the adapter ethernet address from the ROM */ de600_setup_address(NODE_ADDRESS, RW_ADDR); de600_read_byte(READ_DATA, dev); if ((de600_read_byte(READ_DATA, dev) != 0xde) || (de600_read_byte(READ_DATA, dev) != 0x15)) { /* was: if (de600_read_status(dev) & 0xf0) { */ printk("Something has happened to the DE-600! Please check it" #ifdef SHUTDOWN_WHEN_LOST " and do a new ifconfig" #endif /* SHUTDOWN_WHEN_LOST */ "!\n"); #ifdef SHUTDOWN_WHEN_LOST /* Goodbye, cruel world... */ dev->flags &= ~IFF_UP; de600_close(dev); #endif /* SHUTDOWN_WHEN_LOST */ was_down = 1; dev->tbusy = 1; /* Transmit busy... */ return 1; /* failed */ } #endif /* CHECK_LOST_DE600 */ if (was_down) { printk("Thanks, I feel much better now!\n"); was_down = 0; } dev->tbusy = 0; /* Transmit busy... */ dev->interrupt = 0; tx_fifo_in = 0; tx_fifo_out = 0; free_tx_pages = TX_PAGES; /* set the ether address. */ de600_setup_address(NODE_ADDRESS, RW_ADDR); for (i = 0; i < ETH_ALEN; i++) de600_put_byte(dev->dev_addr[i]); /* where to start saving incoming packets */ rx_page = RX_BP | RX_BASE_PAGE; de600_setup_address(MEM_4K, RW_ADDR); /* Enable receiver */ de600_put_command(RX_ENABLE); select_prn(); restore_flags(flags); return 0; /* OK */ }