Lines Matching refs:db

208 	struct uli526x_board_info *db;	/* board information structure */  in uli526x_initialize()  local
229 db = (struct uli526x_board_info *) in uli526x_initialize()
232 dev->priv = db; in uli526x_initialize()
233 db->pdev = devno; in uli526x_initialize()
242 db->ioaddr = dev->iobase; in uli526x_initialize()
245 pci_read_config_dword(devno, PCI_VENDOR_ID, &db->chip_id); in uli526x_initialize()
248 printf("uli526x: chip_id%x\n", db->chip_id); in uli526x_initialize()
261 struct uli526x_board_info *db = dev->priv; in uli526x_init_one() local
277 db->desc_pool_ptr = (uchar *)&desc_pool_array[0]; in uli526x_init_one()
278 db->desc_pool_dma_ptr = (dma_addr_t)&desc_pool_array[0]; in uli526x_init_one()
279 if (db->desc_pool_ptr == NULL) in uli526x_init_one()
282 db->buf_pool_ptr = (uchar *)&buf_pool[0]; in uli526x_init_one()
283 db->buf_pool_dma_ptr = (dma_addr_t)&buf_pool[0]; in uli526x_init_one()
284 if (db->buf_pool_ptr == NULL) in uli526x_init_one()
287 db->first_tx_desc = (struct tx_desc *) db->desc_pool_ptr; in uli526x_init_one()
288 db->first_tx_desc_dma = db->desc_pool_dma_ptr; in uli526x_init_one()
290 db->buf_pool_start = db->buf_pool_ptr; in uli526x_init_one()
291 db->buf_pool_dma_start = db->buf_pool_dma_ptr; in uli526x_init_one()
295 __FUNCTION__, db->ioaddr); in uli526x_init_one()
299 __FUNCTION__, db->desc_pool_ptr); in uli526x_init_one()
301 __FUNCTION__, db->desc_pool_dma_ptr); in uli526x_init_one()
303 __FUNCTION__, db->buf_pool_ptr); in uli526x_init_one()
305 __FUNCTION__, db->buf_pool_dma_ptr); in uli526x_init_one()
310 ((u16 *) db->srom)[i] = cpu_to_le16(read_srom_word(db->ioaddr, in uli526x_init_one()
314 if (((db->srom[0] == 0xff) && (db->srom[1] == 0xff)) || in uli526x_init_one()
315 ((db->srom[0] == 0x00) && (db->srom[1] == 0x00))) in uli526x_init_one()
320 dev->enetaddr[i] = db->srom[20 + i]; in uli526x_init_one()
326 db->PHY_reg4 = 0x1e0; in uli526x_init_one()
329 db->cr6_data = CR6_DEFAULT ; in uli526x_init_one()
330 db->cr6_data |= ULI526X_TXTH_256; in uli526x_init_one()
331 db->cr0_data = CR0_DEFAULT; in uli526x_init_one()
341 struct uli526x_board_info *db = dev->priv; in uli526x_disable() local
343 if (!((inl(db->ioaddr + DCR12)) & 0x8)) { in uli526x_disable()
345 outl(ULI526X_RESET, db->ioaddr + DCR0); in uli526x_disable()
347 uli_phy_write(db->ioaddr, db->phy_addr, 0, 0x8000, db->chip_id); in uli526x_disable()
350 db->cr6_data &= ~(CR6_RXSC | CR6_TXSC); /* Disable Tx/Rx */ in uli526x_disable()
351 update_cr6(db->cr6_data, dev->iobase); in uli526x_disable()
367 struct uli526x_board_info *db = dev->priv; in uli526x_init() local
373 outl(ULI526X_RESET, db->ioaddr + DCR0); /* RESET MAC */ in uli526x_init()
375 outl(db->cr0_data, db->ioaddr + DCR0); in uli526x_init()
379 db->phy_addr = 1; in uli526x_init()
380 db->tx_packet_cnt = 0; in uli526x_init()
383 phy_value = uli_phy_read(db->ioaddr, phy_tmp, 3, db->chip_id); in uli526x_init()
385 db->phy_addr = phy_tmp; in uli526x_init()
391 printf("%s(): db->ioaddr= 0x%x\n", __FUNCTION__, db->ioaddr); in uli526x_init()
392 printf("%s(): db->phy_addr= 0x%x\n", __FUNCTION__, db->phy_addr); in uli526x_init()
398 db->media_mode = uli526x_media_mode; in uli526x_init()
400 if (!(inl(db->ioaddr + DCR12) & 0x8)) { in uli526x_init()
402 phy_reg_reset = uli_phy_read(db->ioaddr, in uli526x_init()
403 db->phy_addr, 0, db->chip_id); in uli526x_init()
405 uli_phy_write(db->ioaddr, db->phy_addr, 0, in uli526x_init()
406 phy_reg_reset, db->chip_id); in uli526x_init()
410 uli526x_set_phyxcer(db); in uli526x_init()
413 if (!(db->media_mode & ULI526X_AUTO)) in uli526x_init()
414 db->op_mode = db->media_mode; /* Force Mode */ in uli526x_init()
417 uli526x_descriptor_init(db, db->ioaddr); in uli526x_init()
420 update_cr6(db->cr6_data, db->ioaddr); in uli526x_init()
423 db->cr7_data = CR7_DEFAULT; in uli526x_init()
424 outl(db->cr7_data, db->ioaddr + DCR7); in uli526x_init()
427 outl(db->cr15_data, db->ioaddr + DCR15); in uli526x_init()
430 db->cr6_data |= CR6_RXSC | CR6_TXSC; in uli526x_init()
431 update_cr6(db->cr6_data, db->ioaddr); in uli526x_init()
432 while (!(inl(db->ioaddr + DCR12) & 0x8)) in uli526x_init()
443 struct uli526x_board_info *db = dev->priv; in uli526x_start_xmit() local
453 if (db->tx_packet_cnt >= TX_FREE_DESC_CNT) { in uli526x_start_xmit()
454 printf("No Tx resource %ld\n", db->tx_packet_cnt); in uli526x_start_xmit()
462 txptr = db->tx_insert_ptr; in uli526x_start_xmit()
467 db->tx_insert_ptr = txptr->next_tx_desc; in uli526x_start_xmit()
470 if ((db->tx_packet_cnt < TX_DESC_CNT)) { in uli526x_start_xmit()
472 db->tx_packet_cnt++; /* Ready to send */ in uli526x_start_xmit()
477 db->cr5_data = inl(db->ioaddr + DCR5); in uli526x_start_xmit()
478 outl(db->cr5_data, db->ioaddr + DCR5); in uli526x_start_xmit()
482 printf("%s(): cr5_data=%x\n", __FUNCTION__, db->cr5_data); in uli526x_start_xmit()
485 outl(db->cr7_data, dev->iobase + DCR7); in uli526x_start_xmit()
486 uli526x_free_tx_pkt(dev, db); in uli526x_start_xmit()
496 struct uli526x_board_info *db) in uli526x_free_tx_pkt() argument
501 txptr = db->tx_remove_ptr; in uli526x_free_tx_pkt()
502 while (db->tx_packet_cnt) { in uli526x_free_tx_pkt()
509 db->tx_packet_cnt--; in uli526x_free_tx_pkt()
517 if (!(db->cr6_data & CR6_SFT)) { in uli526x_free_tx_pkt()
518 db->cr6_data = db->cr6_data | in uli526x_free_tx_pkt()
520 update_cr6(db->cr6_data, in uli526x_free_tx_pkt()
521 db->ioaddr); in uli526x_free_tx_pkt()
531 db->tx_remove_ptr = txptr; in uli526x_free_tx_pkt()
541 struct uli526x_board_info *db = dev->priv; in uli526x_rx_packet() local
546 rxptr = db->rx_ready_ptr; in uli526x_rx_packet()
571 ((db->cr6_data & CR6_PM) && (rxlen > 6))) { in uli526x_rx_packet()
603 db->rx_ready_ptr = rxptr; in uli526x_rx_packet()
624 static void uli526x_descriptor_init(struct uli526x_board_info *db, in uli526x_descriptor_init() argument
634 db->tx_insert_ptr = db->first_tx_desc; in uli526x_descriptor_init()
635 db->tx_remove_ptr = db->first_tx_desc; in uli526x_descriptor_init()
637 outl(db->first_tx_desc_dma, ioaddr + DCR4); /* TX DESC address */ in uli526x_descriptor_init()
640 db->first_rx_desc = (void *)db->first_tx_desc + in uli526x_descriptor_init()
642 db->first_rx_desc_dma = db->first_tx_desc_dma + in uli526x_descriptor_init()
644 db->rx_ready_ptr = db->first_rx_desc; in uli526x_descriptor_init()
645 outl(db->first_rx_desc_dma, ioaddr + DCR3); /* RX DESC address */ in uli526x_descriptor_init()
648 __FUNCTION__, db->first_tx_desc); in uli526x_descriptor_init()
650 __FUNCTION__, db->first_rx_desc_dma); in uli526x_descriptor_init()
653 tmp_buf = db->buf_pool_start; in uli526x_descriptor_init()
654 tmp_buf_dma = db->buf_pool_dma_start; in uli526x_descriptor_init()
655 tmp_tx_dma = db->first_tx_desc_dma; in uli526x_descriptor_init()
656 for (tmp_tx = db->first_tx_desc, i = 0; in uli526x_descriptor_init()
668 (--tmp_tx)->tdes3 = cpu_to_le32(db->first_tx_desc_dma); in uli526x_descriptor_init()
669 tmp_tx->next_tx_desc = db->first_tx_desc; in uli526x_descriptor_init()
672 tmp_rx_dma = db->first_rx_desc_dma; in uli526x_descriptor_init()
673 for (tmp_rx = db->first_rx_desc, i = 0; i < RX_DESC_CNT; in uli526x_descriptor_init()
681 (--tmp_rx)->rdes3 = cpu_to_le32(db->first_rx_desc_dma); in uli526x_descriptor_init()
682 tmp_rx->next_rx_desc = db->first_rx_desc; in uli526x_descriptor_init()
685 allocate_rx_buffer(db); in uli526x_descriptor_init()
704 static void allocate_rx_buffer(struct uli526x_board_info *db) in allocate_rx_buffer() argument
708 rxptr = db->first_rx_desc; in allocate_rx_buffer()
774 static void uli526x_set_phyxcer(struct uli526x_board_info *db) in uli526x_set_phyxcer() argument
779 phy_reg = uli_phy_read(db->ioaddr, in uli526x_set_phyxcer()
780 db->phy_addr, 4, db->chip_id) & ~0x01e0; in uli526x_set_phyxcer()
782 if (db->media_mode & ULI526X_AUTO) { in uli526x_set_phyxcer()
784 phy_reg |= db->PHY_reg4; in uli526x_set_phyxcer()
787 switch (db->media_mode) { in uli526x_set_phyxcer()
798 phy_reg |= db->PHY_reg4; in uli526x_set_phyxcer()
799 db->media_mode |= ULI526X_AUTO; in uli526x_set_phyxcer()
801 uli_phy_write(db->ioaddr, db->phy_addr, 4, phy_reg, db->chip_id); in uli526x_set_phyxcer()
804 uli_phy_write(db->ioaddr, db->phy_addr, 0, 0x1200, db->chip_id); in uli526x_set_phyxcer()
976 struct uli526x_board_info *db = dev->priv; in set_mac_addr() local
977 outl(0x10000, db->ioaddr + DCR0); /* Diagnosis mode */ in set_mac_addr()
979 outl(0x1c0, db->ioaddr + DCR13); in set_mac_addr()
980 outl(0, db->ioaddr + DCR14); /* Clear reset port */ in set_mac_addr()
981 outl(0x10, db->ioaddr + DCR14); /* Reset ID Table pointer */ in set_mac_addr()
982 outl(0, db->ioaddr + DCR14); /* Clear reset port */ in set_mac_addr()
983 outl(0, db->ioaddr + DCR13); /* Clear CR13 */ in set_mac_addr()
985 outl(0x1b0, db->ioaddr + DCR13); in set_mac_addr()
989 outl(addr, db->ioaddr + DCR14); in set_mac_addr()
992 outl(0, db->ioaddr + DCR13); /* Clear CR13 */ in set_mac_addr()
993 outl(0, db->ioaddr + DCR0); /* Clear CR0 */ in set_mac_addr()