iadev 74 drivers/atm/iphase.c static void desc_dbg(IADEV *iadev); iadev 577 drivers/atm/iphase.c IADEV *iadev; iadev 581 drivers/atm/iphase.c iadev = INPH_IA_DEV(vcc->dev); iadev 582 drivers/atm/iphase.c iadev->NumEnabledCBR--; iadev 583 drivers/atm/iphase.c SchedTbl = (u16*)(iadev->seg_ram+CBR_SCHED_TABLE*iadev->memSize); iadev 584 drivers/atm/iphase.c if (iadev->NumEnabledCBR == 0) { iadev 585 drivers/atm/iphase.c writew((UBR_EN | ABR_EN | (0x23 << 2)), iadev->seg_reg+STPARMS); iadev 589 drivers/atm/iphase.c for (i=0; i < iadev->CbrTotEntries; i++) iadev 592 drivers/atm/iphase.c iadev->CbrRemEntries++; iadev 601 drivers/atm/iphase.c static int ia_avail_descs(IADEV *iadev) { iadev 603 drivers/atm/iphase.c ia_hack_tcq(iadev); iadev 604 drivers/atm/iphase.c if (iadev->host_tcq_wr >= iadev->ffL.tcq_rd) iadev 605 drivers/atm/iphase.c tmp = (iadev->host_tcq_wr - iadev->ffL.tcq_rd) / 2; iadev 607 drivers/atm/iphase.c tmp = (iadev->ffL.tcq_ed - iadev->ffL.tcq_rd + 2 + iadev->host_tcq_wr - iadev 608 drivers/atm/iphase.c iadev->ffL.tcq_st) / 2; iadev 614 drivers/atm/iphase.c static int ia_que_tx (IADEV *iadev) { iadev 618 drivers/atm/iphase.c num_desc = ia_avail_descs(iadev); iadev 620 drivers/atm/iphase.c while (num_desc && (skb = skb_dequeue(&iadev->tx_backlog))) { iadev 632 drivers/atm/iphase.c skb_queue_head(&iadev->tx_backlog, skb); iadev 639 drivers/atm/iphase.c static void ia_tx_poll (IADEV *iadev) { iadev 645 drivers/atm/iphase.c ia_hack_tcq(iadev); iadev 646 drivers/atm/iphase.c while ( (rtne = ia_deque_rtn_q(&iadev->tx_return_q))) { iadev 684 drivers/atm/iphase.c ia_enque_head_rtn_q (&iadev->tx_return_q, rtne); iadev 696 drivers/atm/iphase.c ia_que_tx(iadev); iadev 701 drivers/atm/iphase.c static void ia_eeprom_put (IADEV *iadev, u32 addr, u_short val) iadev 723 drivers/atm/iphase.c t = readl(iadev->reg+IPHASE5575_EEPROM_ACCESS); iadev 725 drivers/atm/iphase.c t = readl(iadev->reg+IPHASE5575_EEPROM_ACCESS); iadev 737 drivers/atm/iphase.c static u16 ia_eeprom_get (IADEV *iadev, u32 addr) iadev 761 drivers/atm/iphase.c static void ia_hw_type(IADEV *iadev) { iadev 762 drivers/atm/iphase.c u_short memType = ia_eeprom_get(iadev, 25); iadev 763 drivers/atm/iphase.c iadev->memType = memType; iadev 765 drivers/atm/iphase.c iadev->num_tx_desc = IA_TX_BUF; iadev 766 drivers/atm/iphase.c iadev->tx_buf_sz = IA_TX_BUF_SZ; iadev 767 drivers/atm/iphase.c iadev->num_rx_desc = IA_RX_BUF; iadev 768 drivers/atm/iphase.c iadev->rx_buf_sz = IA_RX_BUF_SZ; iadev 771 drivers/atm/iphase.c iadev->num_tx_desc = IA_TX_BUF / 2; iadev 773 drivers/atm/iphase.c iadev->num_tx_desc = IA_TX_BUF; iadev 774 drivers/atm/iphase.c iadev->tx_buf_sz = IA_TX_BUF_SZ; iadev 776 drivers/atm/iphase.c iadev->num_rx_desc = IA_RX_BUF / 2; iadev 778 drivers/atm/iphase.c iadev->num_rx_desc = IA_RX_BUF; iadev 779 drivers/atm/iphase.c iadev->rx_buf_sz = IA_RX_BUF_SZ; iadev 783 drivers/atm/iphase.c iadev->num_tx_desc = IA_TX_BUF / 8; iadev 785 drivers/atm/iphase.c iadev->num_tx_desc = IA_TX_BUF; iadev 786 drivers/atm/iphase.c iadev->tx_buf_sz = IA_TX_BUF_SZ; iadev 788 drivers/atm/iphase.c iadev->num_rx_desc = IA_RX_BUF / 8; iadev 790 drivers/atm/iphase.c iadev->num_rx_desc = IA_RX_BUF; iadev 791 drivers/atm/iphase.c iadev->rx_buf_sz = IA_RX_BUF_SZ; iadev 793 drivers/atm/iphase.c iadev->rx_pkt_ram = TX_PACKET_RAM + (iadev->num_tx_desc * iadev->tx_buf_sz); iadev 795 drivers/atm/iphase.c iadev->num_tx_desc, iadev->tx_buf_sz, iadev->num_rx_desc, iadev 796 drivers/atm/iphase.c iadev->rx_buf_sz, iadev->rx_pkt_ram);) iadev 800 drivers/atm/iphase.c iadev->phy_type = PHY_OC3C_S; iadev 802 drivers/atm/iphase.c iadev->phy_type = PHY_UTP155; iadev 804 drivers/atm/iphase.c iadev->phy_type = PHY_OC3C_M; iadev 807 drivers/atm/iphase.c iadev->phy_type = memType & FE_MASK; iadev 809 drivers/atm/iphase.c memType,iadev->phy_type);) iadev 810 drivers/atm/iphase.c if (iadev->phy_type == FE_25MBIT_PHY) iadev 811 drivers/atm/iphase.c iadev->LineRate = (u32)(((25600000/8)*26)/(27*53)); iadev 812 drivers/atm/iphase.c else if (iadev->phy_type == FE_DS3_PHY) iadev 813 drivers/atm/iphase.c iadev->LineRate = (u32)(((44736000/8)*26)/(27*53)); iadev 814 drivers/atm/iphase.c else if (iadev->phy_type == FE_E3_PHY) iadev 815 drivers/atm/iphase.c iadev->LineRate = (u32)(((34368000/8)*26)/(27*53)); iadev 817 drivers/atm/iphase.c iadev->LineRate = (u32)(ATM_OC3_PCR); iadev 818 drivers/atm/iphase.c IF_INIT(printk("iadev->LineRate = %d \n", iadev->LineRate);) iadev 832 drivers/atm/iphase.c static void ia_frontend_intr(struct iadev_priv *iadev) iadev 836 drivers/atm/iphase.c if (iadev->phy_type & FE_25MBIT_PHY) { iadev 837 drivers/atm/iphase.c status = ia_phy_read32(iadev, MB25_INTR_STATUS); iadev 838 drivers/atm/iphase.c iadev->carrier_detect = (status & MB25_IS_GSB) ? 1 : 0; iadev 839 drivers/atm/iphase.c } else if (iadev->phy_type & FE_DS3_PHY) { iadev 840 drivers/atm/iphase.c ia_phy_read32(iadev, SUNI_DS3_FRM_INTR_STAT); iadev 841 drivers/atm/iphase.c status = ia_phy_read32(iadev, SUNI_DS3_FRM_STAT); iadev 842 drivers/atm/iphase.c iadev->carrier_detect = (status & SUNI_DS3_LOSV) ? 0 : 1; iadev 843 drivers/atm/iphase.c } else if (iadev->phy_type & FE_E3_PHY) { iadev 844 drivers/atm/iphase.c ia_phy_read32(iadev, SUNI_E3_FRM_MAINT_INTR_IND); iadev 845 drivers/atm/iphase.c status = ia_phy_read32(iadev, SUNI_E3_FRM_FRAM_INTR_IND_STAT); iadev 846 drivers/atm/iphase.c iadev->carrier_detect = (status & SUNI_E3_LOS) ? 0 : 1; iadev 848 drivers/atm/iphase.c status = ia_phy_read32(iadev, SUNI_RSOP_STATUS); iadev 849 drivers/atm/iphase.c iadev->carrier_detect = (status & SUNI_LOSV) ? 0 : 1; iadev 853 drivers/atm/iphase.c iadev->carrier_detect ? "detected" : "lost signal"); iadev 856 drivers/atm/iphase.c static void ia_mb25_init(struct iadev_priv *iadev) iadev 861 drivers/atm/iphase.c ia_phy_write32(iadev, MB25_MASTER_CTRL, MB25_MC_DRIC | MB25_MC_DREC); iadev 862 drivers/atm/iphase.c ia_phy_write32(iadev, MB25_DIAG_CONTROL, 0); iadev 864 drivers/atm/iphase.c iadev->carrier_detect = iadev 865 drivers/atm/iphase.c (ia_phy_read32(iadev, MB25_INTR_STATUS) & MB25_IS_GSB) ? 1 : 0; iadev 873 drivers/atm/iphase.c static void ia_phy_write(struct iadev_priv *iadev, iadev 877 drivers/atm/iphase.c ia_phy_write32(iadev, regs->reg, regs->val); iadev 882 drivers/atm/iphase.c static void ia_suni_pm7345_init_ds3(struct iadev_priv *iadev) iadev 894 drivers/atm/iphase.c status = ia_phy_read32(iadev, SUNI_DS3_FRM_STAT); iadev 895 drivers/atm/iphase.c iadev->carrier_detect = (status & SUNI_DS3_LOSV) ? 0 : 1; iadev 897 drivers/atm/iphase.c ia_phy_write(iadev, suni_ds3_init, ARRAY_SIZE(suni_ds3_init)); iadev 900 drivers/atm/iphase.c static void ia_suni_pm7345_init_e3(struct iadev_priv *iadev) iadev 915 drivers/atm/iphase.c status = ia_phy_read32(iadev, SUNI_E3_FRM_FRAM_INTR_IND_STAT); iadev 916 drivers/atm/iphase.c iadev->carrier_detect = (status & SUNI_E3_LOS) ? 0 : 1; iadev 917 drivers/atm/iphase.c ia_phy_write(iadev, suni_e3_init, ARRAY_SIZE(suni_e3_init)); iadev 920 drivers/atm/iphase.c static void ia_suni_pm7345_init(struct iadev_priv *iadev) iadev 958 drivers/atm/iphase.c if (iadev->phy_type & FE_DS3_PHY) iadev 959 drivers/atm/iphase.c ia_suni_pm7345_init_ds3(iadev); iadev 961 drivers/atm/iphase.c ia_suni_pm7345_init_e3(iadev); iadev 963 drivers/atm/iphase.c ia_phy_write(iadev, suni_init, ARRAY_SIZE(suni_init)); iadev 965 drivers/atm/iphase.c ia_phy_write32(iadev, SUNI_CONFIG, ia_phy_read32(iadev, SUNI_CONFIG) & iadev 1016 drivers/atm/iphase.c RAM_BASE*((iadev->mem)/(128 * 1024)) iadev 1018 drivers/atm/iphase.c IPHASE5575_FRAG_CONTROL_RAM_BASE*((iadev->mem)/(128 * 1024)) iadev 1020 drivers/atm/iphase.c IPHASE5575_REASS_CONTROL_RAM_BASE*((iadev->mem)/(128 * 1024)) iadev 1025 drivers/atm/iphase.c static void desc_dbg(IADEV *iadev) { iadev 1031 drivers/atm/iphase.c tcq_wr_ptr = readw(iadev->seg_reg+TCQ_WR_PTR); iadev 1033 drivers/atm/iphase.c tcq_wr_ptr, readw(iadev->seg_ram+tcq_wr_ptr), iadev 1034 drivers/atm/iphase.c readw(iadev->seg_ram+tcq_wr_ptr-2)); iadev 1035 drivers/atm/iphase.c printk(" host_tcq_wr = 0x%x host_tcq_rd = 0x%x \n", iadev->host_tcq_wr, iadev 1036 drivers/atm/iphase.c iadev->ffL.tcq_rd); iadev 1037 drivers/atm/iphase.c tcq_st_ptr = readw(iadev->seg_reg+TCQ_ST_ADR); iadev 1038 drivers/atm/iphase.c tcq_ed_ptr = readw(iadev->seg_reg+TCQ_ED_ADR); iadev 1042 drivers/atm/iphase.c tmp = iadev->seg_ram+tcq_st_ptr; iadev 1046 drivers/atm/iphase.c for(i=0; i <iadev->num_tx_desc; i++) iadev 1047 drivers/atm/iphase.c printk("Desc_tbl[%d] = %d \n", i, iadev->desc_tbl[i].timestamp); iadev 1056 drivers/atm/iphase.c IADEV *iadev; iadev 1061 drivers/atm/iphase.c iadev = INPH_IA_DEV(dev); iadev 1062 drivers/atm/iphase.c state = readl(iadev->reass_reg + STATE_REG) & 0xffff; iadev 1065 drivers/atm/iphase.c excpq_rd_ptr = readw(iadev->reass_reg + EXCP_Q_RD_PTR) & 0xffff; iadev 1067 drivers/atm/iphase.c if (excpq_rd_ptr == *(u16*)(iadev->reass_reg + EXCP_Q_WR_PTR)) iadev 1070 drivers/atm/iphase.c vci = readw(iadev->reass_ram+excpq_rd_ptr); iadev 1071 drivers/atm/iphase.c error = readw(iadev->reass_ram+excpq_rd_ptr+2) & 0x0007; iadev 1074 drivers/atm/iphase.c if (excpq_rd_ptr > (readw(iadev->reass_reg + EXCP_Q_ED_ADR)& 0xffff)) iadev 1075 drivers/atm/iphase.c excpq_rd_ptr = readw(iadev->reass_reg + EXCP_Q_ST_ADR)& 0xffff; iadev 1076 drivers/atm/iphase.c writew( excpq_rd_ptr, iadev->reass_reg + EXCP_Q_RD_PTR); iadev 1077 drivers/atm/iphase.c state = readl(iadev->reass_reg + STATE_REG) & 0xffff; iadev 1084 drivers/atm/iphase.c IADEV *iadev; iadev 1085 drivers/atm/iphase.c iadev = INPH_IA_DEV(dev); iadev 1086 drivers/atm/iphase.c writew(desc, iadev->reass_ram+iadev->rfL.fdq_wr); iadev 1087 drivers/atm/iphase.c iadev->rfL.fdq_wr +=2; iadev 1088 drivers/atm/iphase.c if (iadev->rfL.fdq_wr > iadev->rfL.fdq_ed) iadev 1089 drivers/atm/iphase.c iadev->rfL.fdq_wr = iadev->rfL.fdq_st; iadev 1090 drivers/atm/iphase.c writew(iadev->rfL.fdq_wr, iadev->reass_reg+FREEQ_WR_PTR); iadev 1096 drivers/atm/iphase.c IADEV *iadev; iadev 1106 drivers/atm/iphase.c iadev = INPH_IA_DEV(dev); iadev 1107 drivers/atm/iphase.c if (iadev->rfL.pcq_rd == (readw(iadev->reass_reg+PCQ_WR_PTR)&0xffff)) iadev 1113 drivers/atm/iphase.c desc = readw(iadev->reass_ram+iadev->rfL.pcq_rd) & 0x1fff; iadev 1115 drivers/atm/iphase.c iadev->reass_ram, iadev->rfL.pcq_rd, desc); iadev 1117 drivers/atm/iphase.c readw(iadev->reass_reg+PCQ_WR_PTR)&0xffff);) iadev 1119 drivers/atm/iphase.c if ( iadev->rfL.pcq_rd== iadev->rfL.pcq_ed) iadev 1120 drivers/atm/iphase.c iadev->rfL.pcq_rd = iadev->rfL.pcq_st; iadev 1122 drivers/atm/iphase.c iadev->rfL.pcq_rd += 2; iadev 1123 drivers/atm/iphase.c writew(iadev->rfL.pcq_rd, iadev->reass_reg+PCQ_RD_PTR); iadev 1128 drivers/atm/iphase.c buf_desc_ptr = iadev->RX_DESC_BASE_ADDR; iadev 1131 drivers/atm/iphase.c if (!desc || (desc > iadev->num_rx_desc) || iadev 1132 drivers/atm/iphase.c ((buf_desc_ptr->vc_index & 0xffff) >= iadev->num_vc)) { iadev 1137 drivers/atm/iphase.c vcc = iadev->rx_open[buf_desc_ptr->vc_index & 0xffff]; iadev 1171 drivers/atm/iphase.c if (len > iadev->rx_buf_sz) { iadev 1172 drivers/atm/iphase.c printk("Over %d bytes sdu received, dropped!!!\n", iadev->rx_buf_sz); iadev 1186 drivers/atm/iphase.c skb_queue_tail(&iadev->rx_dma_q, skb); iadev 1189 drivers/atm/iphase.c wr_ptr = iadev->rx_dle_q.write; iadev 1190 drivers/atm/iphase.c wr_ptr->sys_pkt_addr = dma_map_single(&iadev->pci->dev, skb->data, iadev 1197 drivers/atm/iphase.c if(++wr_ptr == iadev->rx_dle_q.end) iadev 1198 drivers/atm/iphase.c wr_ptr = iadev->rx_dle_q.start; iadev 1199 drivers/atm/iphase.c iadev->rx_dle_q.write = wr_ptr; iadev 1202 drivers/atm/iphase.c writel(1, iadev->dma+IPHASE5575_RX_COUNTER); iadev 1211 drivers/atm/iphase.c IADEV *iadev; iadev 1215 drivers/atm/iphase.c iadev = INPH_IA_DEV(dev); iadev 1216 drivers/atm/iphase.c status = readl(iadev->reass_reg+REASS_INTR_STATUS_REG) & 0xffff; iadev 1226 drivers/atm/iphase.c state = readl(iadev->reass_reg + STATE_REG) & 0xffff; iadev 1231 drivers/atm/iphase.c state = readl(iadev->reass_reg + STATE_REG) & 0xffff; iadev 1233 drivers/atm/iphase.c iadev->rxing = 1; iadev 1237 drivers/atm/iphase.c if (iadev->rxing) { iadev 1238 drivers/atm/iphase.c iadev->rx_tmp_cnt = iadev->rx_pkt_cnt; iadev 1239 drivers/atm/iphase.c iadev->rx_tmp_jif = jiffies; iadev 1240 drivers/atm/iphase.c iadev->rxing = 0; iadev 1242 drivers/atm/iphase.c else if ((time_after(jiffies, iadev->rx_tmp_jif + 50)) && iadev 1243 drivers/atm/iphase.c ((iadev->rx_pkt_cnt - iadev->rx_tmp_cnt) == 0)) { iadev 1244 drivers/atm/iphase.c for (i = 1; i <= iadev->num_rx_desc; i++) iadev 1247 drivers/atm/iphase.c writew( ~(RX_FREEQ_EMPT|RX_EXCP_RCVD),iadev->reass_reg+REASS_MASK_REG); iadev 1248 drivers/atm/iphase.c iadev->rxing = 1; iadev 1273 drivers/atm/iphase.c IADEV *iadev; iadev 1281 drivers/atm/iphase.c iadev = INPH_IA_DEV(dev); iadev 1288 drivers/atm/iphase.c dle = iadev->rx_dle_q.read; iadev 1289 drivers/atm/iphase.c dle_lp = readl(iadev->dma+IPHASE5575_RX_LIST_ADDR) & (sizeof(struct dle)*DLE_ENTRIES - 1); iadev 1290 drivers/atm/iphase.c cur_dle = (struct dle*)(iadev->rx_dle_q.start + (dle_lp >> 4)); iadev 1294 drivers/atm/iphase.c skb = skb_dequeue(&iadev->rx_dma_q); iadev 1311 drivers/atm/iphase.c dma_unmap_single(&iadev->pci->dev, iadev->rx_dle_q.write->sys_pkt_addr, iadev 1332 drivers/atm/iphase.c if ((length > iadev->rx_buf_sz) || (length > iadev 1352 drivers/atm/iphase.c iadev->rx_pkt_cnt++; iadev 1355 drivers/atm/iphase.c if (++dle == iadev->rx_dle_q.end) iadev 1356 drivers/atm/iphase.c dle = iadev->rx_dle_q.start; iadev 1358 drivers/atm/iphase.c iadev->rx_dle_q.read = dle; iadev 1362 drivers/atm/iphase.c if (!iadev->rxing) { iadev 1363 drivers/atm/iphase.c state = readl(iadev->reass_reg + STATE_REG) & 0xffff; iadev 1365 drivers/atm/iphase.c state = readl(iadev->reass_reg + REASS_MASK_REG) & 0xffff; iadev 1367 drivers/atm/iphase.c iadev->reass_reg+REASS_MASK_REG); iadev 1368 drivers/atm/iphase.c iadev->rxing++; iadev 1376 drivers/atm/iphase.c IADEV *iadev; iadev 1382 drivers/atm/iphase.c iadev = INPH_IA_DEV(vcc->dev); iadev 1384 drivers/atm/iphase.c if (iadev->phy_type & FE_25MBIT_PHY) { iadev 1391 drivers/atm/iphase.c vc_table = iadev->reass_ram+RX_VC_TABLE*iadev->memSize; iadev 1402 drivers/atm/iphase.c init_abr_vc(iadev, &srv_p); iadev 1403 drivers/atm/iphase.c ia_open_abr_vc(iadev, &srv_p, vcc, 0); iadev 1406 drivers/atm/iphase.c reass_ptr = iadev->reass_ram+REASS_TABLE*iadev->memSize; iadev 1411 drivers/atm/iphase.c if (iadev->rx_open[vcc->vci]) iadev 1414 drivers/atm/iphase.c iadev->rx_open[vcc->vci] = vcc; iadev 1420 drivers/atm/iphase.c IADEV *iadev; iadev 1431 drivers/atm/iphase.c iadev = INPH_IA_DEV(dev); iadev 1435 drivers/atm/iphase.c dle_addr = dma_alloc_coherent(&iadev->pci->dev, DLE_TOTAL_SIZE, iadev 1436 drivers/atm/iphase.c &iadev->rx_dle_dma, GFP_KERNEL); iadev 1441 drivers/atm/iphase.c iadev->rx_dle_q.start = (struct dle *)dle_addr; iadev 1442 drivers/atm/iphase.c iadev->rx_dle_q.read = iadev->rx_dle_q.start; iadev 1443 drivers/atm/iphase.c iadev->rx_dle_q.write = iadev->rx_dle_q.start; iadev 1444 drivers/atm/iphase.c iadev->rx_dle_q.end = (struct dle*)((unsigned long)dle_addr+sizeof(struct dle)*DLE_ENTRIES); iadev 1450 drivers/atm/iphase.c writel(iadev->rx_dle_dma & 0xfffff000, iadev 1451 drivers/atm/iphase.c iadev->dma + IPHASE5575_RX_LIST_ADDR); iadev 1453 drivers/atm/iphase.c iadev->dma+IPHASE5575_TX_LIST_ADDR, iadev 1454 drivers/atm/iphase.c readl(iadev->dma + IPHASE5575_TX_LIST_ADDR)); iadev 1456 drivers/atm/iphase.c iadev->dma+IPHASE5575_RX_LIST_ADDR, iadev 1457 drivers/atm/iphase.c readl(iadev->dma + IPHASE5575_RX_LIST_ADDR));) iadev 1459 drivers/atm/iphase.c writew(0xffff, iadev->reass_reg+REASS_MASK_REG); iadev 1460 drivers/atm/iphase.c writew(0, iadev->reass_reg+MODE_REG); iadev 1461 drivers/atm/iphase.c writew(RESET_REASS, iadev->reass_reg+REASS_COMMAND_REG); iadev 1477 drivers/atm/iphase.c writew(RX_DESC_BASE >> 16, iadev->reass_reg+REASS_DESC_BASE); iadev 1479 drivers/atm/iphase.c writew(iadev->rx_buf_sz, iadev->reass_reg+BUF_SIZE); iadev 1482 drivers/atm/iphase.c iadev->RX_DESC_BASE_ADDR = iadev->reass_ram+RX_DESC_BASE*iadev->memSize; iadev 1483 drivers/atm/iphase.c buf_desc_ptr = iadev->RX_DESC_BASE_ADDR; iadev 1486 drivers/atm/iphase.c rx_pkt_start = iadev->rx_pkt_ram; iadev 1487 drivers/atm/iphase.c for(i=1; i<=iadev->num_rx_desc; i++) iadev 1493 drivers/atm/iphase.c rx_pkt_start += iadev->rx_buf_sz; iadev 1496 drivers/atm/iphase.c i = FREE_BUF_DESC_Q*iadev->memSize; iadev 1497 drivers/atm/iphase.c writew(i >> 16, iadev->reass_reg+REASS_QUEUE_BASE); iadev 1498 drivers/atm/iphase.c writew(i, iadev->reass_reg+FREEQ_ST_ADR); iadev 1499 drivers/atm/iphase.c writew(i+iadev->num_rx_desc*sizeof(u_short), iadev 1500 drivers/atm/iphase.c iadev->reass_reg+FREEQ_ED_ADR); iadev 1501 drivers/atm/iphase.c writew(i, iadev->reass_reg+FREEQ_RD_PTR); iadev 1502 drivers/atm/iphase.c writew(i+iadev->num_rx_desc*sizeof(u_short), iadev 1503 drivers/atm/iphase.c iadev->reass_reg+FREEQ_WR_PTR); iadev 1505 drivers/atm/iphase.c freeq_st_adr = readw(iadev->reass_reg+FREEQ_ST_ADR); iadev 1506 drivers/atm/iphase.c freeq_start = (u_short *)(iadev->reass_ram+freeq_st_adr); iadev 1507 drivers/atm/iphase.c for(i=1; i<=iadev->num_rx_desc; i++) iadev 1514 drivers/atm/iphase.c i = (PKT_COMP_Q * iadev->memSize) & 0xffff; iadev 1515 drivers/atm/iphase.c writew(i, iadev->reass_reg+PCQ_ST_ADR); iadev 1516 drivers/atm/iphase.c writew(i+iadev->num_vc*sizeof(u_short), iadev->reass_reg+PCQ_ED_ADR); iadev 1517 drivers/atm/iphase.c writew(i, iadev->reass_reg+PCQ_RD_PTR); iadev 1518 drivers/atm/iphase.c writew(i, iadev->reass_reg+PCQ_WR_PTR); iadev 1521 drivers/atm/iphase.c i = (EXCEPTION_Q * iadev->memSize) & 0xffff; iadev 1522 drivers/atm/iphase.c writew(i, iadev->reass_reg+EXCP_Q_ST_ADR); iadev 1524 drivers/atm/iphase.c iadev->reass_reg+EXCP_Q_ED_ADR); iadev 1525 drivers/atm/iphase.c writew(i, iadev->reass_reg+EXCP_Q_RD_PTR); iadev 1526 drivers/atm/iphase.c writew(i, iadev->reass_reg+EXCP_Q_WR_PTR); iadev 1529 drivers/atm/iphase.c iadev->rfL.fdq_st = readw(iadev->reass_reg+FREEQ_ST_ADR) & 0xffff; iadev 1530 drivers/atm/iphase.c iadev->rfL.fdq_ed = readw(iadev->reass_reg+FREEQ_ED_ADR) & 0xffff ; iadev 1531 drivers/atm/iphase.c iadev->rfL.fdq_rd = readw(iadev->reass_reg+FREEQ_RD_PTR) & 0xffff; iadev 1532 drivers/atm/iphase.c iadev->rfL.fdq_wr = readw(iadev->reass_reg+FREEQ_WR_PTR) & 0xffff; iadev 1533 drivers/atm/iphase.c iadev->rfL.pcq_st = readw(iadev->reass_reg+PCQ_ST_ADR) & 0xffff; iadev 1534 drivers/atm/iphase.c iadev->rfL.pcq_ed = readw(iadev->reass_reg+PCQ_ED_ADR) & 0xffff; iadev 1535 drivers/atm/iphase.c iadev->rfL.pcq_rd = readw(iadev->reass_reg+PCQ_RD_PTR) & 0xffff; iadev 1536 drivers/atm/iphase.c iadev->rfL.pcq_wr = readw(iadev->reass_reg+PCQ_WR_PTR) & 0xffff; iadev 1539 drivers/atm/iphase.c iadev->rfL.pcq_st, iadev->rfL.pcq_ed, iadev->rfL.pcq_rd, iadev 1540 drivers/atm/iphase.c iadev->rfL.pcq_wr);) iadev 1550 drivers/atm/iphase.c i = REASS_TABLE * iadev->memSize; iadev 1551 drivers/atm/iphase.c writew((i >> 3), iadev->reass_reg+REASS_TABLE_BASE); iadev 1553 drivers/atm/iphase.c reass_table = (u16 *)(iadev->reass_ram+i); iadev 1554 drivers/atm/iphase.c j = REASS_TABLE_SZ * iadev->memSize; iadev 1559 drivers/atm/iphase.c while (i != iadev->num_vc) { iadev 1563 drivers/atm/iphase.c i = RX_VC_TABLE * iadev->memSize; iadev 1564 drivers/atm/iphase.c writew(((i>>3) & 0xfff8) | vcsize_sel, iadev->reass_reg+VC_LKUP_BASE); iadev 1565 drivers/atm/iphase.c vc_table = (u16 *)(iadev->reass_ram+RX_VC_TABLE*iadev->memSize); iadev 1566 drivers/atm/iphase.c j = RX_VC_TABLE_SZ * iadev->memSize; iadev 1578 drivers/atm/iphase.c i = ABR_VC_TABLE * iadev->memSize; iadev 1579 drivers/atm/iphase.c writew(i >> 3, iadev->reass_reg+ABR_LKUP_BASE); iadev 1581 drivers/atm/iphase.c i = ABR_VC_TABLE * iadev->memSize; iadev 1582 drivers/atm/iphase.c abr_vc_table = (struct abr_vc_table *)(iadev->reass_ram+i); iadev 1583 drivers/atm/iphase.c j = REASS_TABLE_SZ * iadev->memSize; iadev 1594 drivers/atm/iphase.c writew(0xff00, iadev->reass_reg+VP_FILTER); iadev 1595 drivers/atm/iphase.c writew(0, iadev->reass_reg+XTRA_RM_OFFSET); iadev 1596 drivers/atm/iphase.c writew(0x1, iadev->reass_reg+PROTOCOL_ID); iadev 1602 drivers/atm/iphase.c writew(0xF6F8, iadev->reass_reg+PKT_TM_CNT ); iadev 1607 drivers/atm/iphase.c writew(i, iadev->reass_reg+TMOUT_RANGE); iadev 1610 drivers/atm/iphase.c for(i=0; i<iadev->num_tx_desc;i++) iadev 1611 drivers/atm/iphase.c iadev->desc_tbl[i].timestamp = 0; iadev 1614 drivers/atm/iphase.c readw(iadev->reass_reg+REASS_INTR_STATUS_REG); iadev 1617 drivers/atm/iphase.c writew(~(RX_FREEQ_EMPT|RX_PKT_RCVD), iadev->reass_reg+REASS_MASK_REG); iadev 1619 drivers/atm/iphase.c skb_queue_head_init(&iadev->rx_dma_q); iadev 1620 drivers/atm/iphase.c iadev->rx_free_desc_qhead = NULL; iadev 1622 drivers/atm/iphase.c iadev->rx_open = kcalloc(iadev->num_vc, sizeof(void *), GFP_KERNEL); iadev 1623 drivers/atm/iphase.c if (!iadev->rx_open) { iadev 1629 drivers/atm/iphase.c iadev->rxing = 1; iadev 1630 drivers/atm/iphase.c iadev->rx_pkt_cnt = 0; iadev 1632 drivers/atm/iphase.c writew(R_ONLINE, iadev->reass_reg+MODE_REG); iadev 1636 drivers/atm/iphase.c dma_free_coherent(&iadev->pci->dev, DLE_TOTAL_SIZE, iadev->rx_dle_q.start, iadev 1637 drivers/atm/iphase.c iadev->rx_dle_dma); iadev 1660 drivers/atm/iphase.c IADEV *iadev; iadev 1664 drivers/atm/iphase.c iadev = INPH_IA_DEV(dev); iadev 1666 drivers/atm/iphase.c status = readl(iadev->seg_reg+SEG_INTR_STATUS_REG); iadev 1670 drivers/atm/iphase.c spin_lock_irqsave(&iadev->tx_lock, flags); iadev 1671 drivers/atm/iphase.c ia_tx_poll(iadev); iadev 1672 drivers/atm/iphase.c spin_unlock_irqrestore(&iadev->tx_lock, flags); iadev 1673 drivers/atm/iphase.c writew(TRANSMIT_DONE, iadev->seg_reg+SEG_INTR_STATUS_REG); iadev 1674 drivers/atm/iphase.c if (iadev->close_pending) iadev 1675 drivers/atm/iphase.c wake_up(&iadev->close_wait); iadev 1685 drivers/atm/iphase.c IADEV *iadev; iadev 1693 drivers/atm/iphase.c iadev = INPH_IA_DEV(dev); iadev 1694 drivers/atm/iphase.c spin_lock_irqsave(&iadev->tx_lock, flags); iadev 1695 drivers/atm/iphase.c dle = iadev->tx_dle_q.read; iadev 1696 drivers/atm/iphase.c dle_lp = readl(iadev->dma+IPHASE5575_TX_LIST_ADDR) & iadev 1698 drivers/atm/iphase.c cur_dle = (struct dle*)(iadev->tx_dle_q.start + (dle_lp >> 4)); iadev 1702 drivers/atm/iphase.c skb = skb_dequeue(&iadev->tx_dma_q); iadev 1706 drivers/atm/iphase.c if (!((dle - iadev->tx_dle_q.start)%(2*sizeof(struct dle)))) { iadev 1707 drivers/atm/iphase.c dma_unmap_single(&iadev->pci->dev, dle->sys_pkt_addr, skb->len, iadev 1713 drivers/atm/iphase.c spin_unlock_irqrestore(&iadev->tx_lock, flags); iadev 1721 drivers/atm/iphase.c spin_unlock_irqrestore(&iadev->tx_lock, flags); iadev 1725 drivers/atm/iphase.c if (vcc->qos.txtp.pcr >= iadev->rate_limit) { iadev 1739 drivers/atm/iphase.c if (++dle == iadev->tx_dle_q.end) iadev 1740 drivers/atm/iphase.c dle = iadev->tx_dle_q.start; iadev 1742 drivers/atm/iphase.c iadev->tx_dle_q.read = dle; iadev 1743 drivers/atm/iphase.c spin_unlock_irqrestore(&iadev->tx_lock, flags); iadev 1749 drivers/atm/iphase.c IADEV *iadev; iadev 1755 drivers/atm/iphase.c iadev = INPH_IA_DEV(vcc->dev); iadev 1757 drivers/atm/iphase.c if (iadev->phy_type & FE_25MBIT_PHY) { iadev 1770 drivers/atm/iphase.c (iadev->tx_buf_sz - sizeof(struct cpcs_trailer))){ iadev 1772 drivers/atm/iphase.c vcc->qos.txtp.max_sdu,iadev->tx_buf_sz); iadev 1782 drivers/atm/iphase.c vcc->qos.txtp.pcr = iadev->LineRate; iadev 1784 drivers/atm/iphase.c vcc->qos.txtp.pcr = iadev->LineRate; iadev 1787 drivers/atm/iphase.c if (vcc->qos.txtp.pcr > iadev->LineRate) iadev 1788 drivers/atm/iphase.c vcc->qos.txtp.pcr = iadev->LineRate; iadev 1791 drivers/atm/iphase.c if (ia_vcc->pcr > (iadev->LineRate / 6) ) ia_vcc->ltimeout = HZ / 10; iadev 1792 drivers/atm/iphase.c else if (ia_vcc->pcr > (iadev->LineRate / 130)) ia_vcc->ltimeout = HZ; iadev 1795 drivers/atm/iphase.c if (ia_vcc->pcr < iadev->rate_limit) iadev 1797 drivers/atm/iphase.c if (ia_vcc->pcr < iadev->rate_limit) { iadev 1812 drivers/atm/iphase.c vc = (struct main_vc *)iadev->MAIN_VC_TABLE_ADDR; iadev 1813 drivers/atm/iphase.c evc = (struct ext_vc *)iadev->EXT_VC_TABLE_ADDR; iadev 1832 drivers/atm/iphase.c vc->acr = cellrate_to_float(iadev->LineRate); iadev 1841 drivers/atm/iphase.c init_abr_vc(iadev, &srv_p); iadev 1845 drivers/atm/iphase.c int tmpsum = iadev->sum_mcr+iadev->sum_cbr+vcc->qos.txtp.min_pcr; iadev 1846 drivers/atm/iphase.c if (tmpsum > iadev->LineRate) iadev 1849 drivers/atm/iphase.c iadev->sum_mcr += vcc->qos.txtp.min_pcr; iadev 1874 drivers/atm/iphase.c ia_open_abr_vc(iadev, &srv_p, vcc, 1); iadev 1876 drivers/atm/iphase.c if (iadev->phy_type & FE_25MBIT_PHY) { iadev 1880 drivers/atm/iphase.c if (vcc->qos.txtp.max_pcr > iadev->LineRate) { iadev 1886 drivers/atm/iphase.c if ((ret = ia_cbr_setup (iadev, vcc)) < 0) { iadev 1893 drivers/atm/iphase.c iadev->testTable[vcc->vci]->vc_status |= VC_ACTIVE; iadev 1901 drivers/atm/iphase.c IADEV *iadev; iadev 1915 drivers/atm/iphase.c iadev = INPH_IA_DEV(dev); iadev 1916 drivers/atm/iphase.c spin_lock_init(&iadev->tx_lock); iadev 1919 drivers/atm/iphase.c readw(iadev->seg_reg+SEG_MASK_REG));) iadev 1922 drivers/atm/iphase.c dle_addr = dma_alloc_coherent(&iadev->pci->dev, DLE_TOTAL_SIZE, iadev 1923 drivers/atm/iphase.c &iadev->tx_dle_dma, GFP_KERNEL); iadev 1928 drivers/atm/iphase.c iadev->tx_dle_q.start = (struct dle*)dle_addr; iadev 1929 drivers/atm/iphase.c iadev->tx_dle_q.read = iadev->tx_dle_q.start; iadev 1930 drivers/atm/iphase.c iadev->tx_dle_q.write = iadev->tx_dle_q.start; iadev 1931 drivers/atm/iphase.c iadev->tx_dle_q.end = (struct dle*)((unsigned long)dle_addr+sizeof(struct dle)*DLE_ENTRIES); iadev 1934 drivers/atm/iphase.c writel(iadev->tx_dle_dma & 0xfffff000, iadev 1935 drivers/atm/iphase.c iadev->dma + IPHASE5575_TX_LIST_ADDR); iadev 1936 drivers/atm/iphase.c writew(0xffff, iadev->seg_reg+SEG_MASK_REG); iadev 1937 drivers/atm/iphase.c writew(0, iadev->seg_reg+MODE_REG_0); iadev 1938 drivers/atm/iphase.c writew(RESET_SEG, iadev->seg_reg+SEG_COMMAND_REG); iadev 1939 drivers/atm/iphase.c iadev->MAIN_VC_TABLE_ADDR = iadev->seg_ram+MAIN_VC_TABLE*iadev->memSize; iadev 1940 drivers/atm/iphase.c iadev->EXT_VC_TABLE_ADDR = iadev->seg_ram+EXT_VC_TABLE*iadev->memSize; iadev 1941 drivers/atm/iphase.c iadev->ABR_SCHED_TABLE_ADDR=iadev->seg_ram+ABR_SCHED_TABLE*iadev->memSize; iadev 1963 drivers/atm/iphase.c writew(TX_DESC_BASE, iadev->seg_reg+SEG_DESC_BASE); iadev 1966 drivers/atm/iphase.c buf_desc_ptr =(struct tx_buf_desc *)(iadev->seg_ram+TX_DESC_BASE); iadev 1970 drivers/atm/iphase.c for(i=1; i<=iadev->num_tx_desc; i++) iadev 1977 drivers/atm/iphase.c tx_pkt_start += iadev->tx_buf_sz; iadev 1979 drivers/atm/iphase.c iadev->tx_buf = kmalloc_array(iadev->num_tx_desc, iadev 1980 drivers/atm/iphase.c sizeof(*iadev->tx_buf), iadev 1982 drivers/atm/iphase.c if (!iadev->tx_buf) { iadev 1986 drivers/atm/iphase.c for (i= 0; i< iadev->num_tx_desc; i++) iadev 1995 drivers/atm/iphase.c iadev->tx_buf[i].cpcs = cpcs; iadev 1996 drivers/atm/iphase.c iadev->tx_buf[i].dma_addr = dma_map_single(&iadev->pci->dev, iadev 2001 drivers/atm/iphase.c iadev->desc_tbl = kmalloc_array(iadev->num_tx_desc, iadev 2002 drivers/atm/iphase.c sizeof(*iadev->desc_tbl), iadev 2004 drivers/atm/iphase.c if (!iadev->desc_tbl) { iadev 2010 drivers/atm/iphase.c i = TX_COMP_Q * iadev->memSize; iadev 2011 drivers/atm/iphase.c writew(i >> 16, iadev->seg_reg+SEG_QUEUE_BASE); iadev 2014 drivers/atm/iphase.c writew(i, iadev->seg_reg+TCQ_ST_ADR); iadev 2015 drivers/atm/iphase.c writew(i, iadev->seg_reg+TCQ_RD_PTR); iadev 2016 drivers/atm/iphase.c writew(i+iadev->num_tx_desc*sizeof(u_short),iadev->seg_reg+TCQ_WR_PTR); iadev 2017 drivers/atm/iphase.c iadev->host_tcq_wr = i + iadev->num_tx_desc*sizeof(u_short); iadev 2018 drivers/atm/iphase.c writew(i+2 * iadev->num_tx_desc * sizeof(u_short), iadev 2019 drivers/atm/iphase.c iadev->seg_reg+TCQ_ED_ADR); iadev 2021 drivers/atm/iphase.c tcq_st_adr = readw(iadev->seg_reg+TCQ_ST_ADR); iadev 2022 drivers/atm/iphase.c tcq_start = (u_short *)(iadev->seg_ram+tcq_st_adr); iadev 2023 drivers/atm/iphase.c for(i=1; i<=iadev->num_tx_desc; i++) iadev 2030 drivers/atm/iphase.c i = PKT_RDY_Q * iadev->memSize; iadev 2031 drivers/atm/iphase.c writew(i, iadev->seg_reg+PRQ_ST_ADR); iadev 2032 drivers/atm/iphase.c writew(i+2 * iadev->num_tx_desc * sizeof(u_short), iadev 2033 drivers/atm/iphase.c iadev->seg_reg+PRQ_ED_ADR); iadev 2034 drivers/atm/iphase.c writew(i, iadev->seg_reg+PRQ_RD_PTR); iadev 2035 drivers/atm/iphase.c writew(i, iadev->seg_reg+PRQ_WR_PTR); iadev 2038 drivers/atm/iphase.c iadev->ffL.prq_st = readw(iadev->seg_reg+PRQ_ST_ADR) & 0xffff; iadev 2039 drivers/atm/iphase.c iadev->ffL.prq_ed = readw(iadev->seg_reg+PRQ_ED_ADR) & 0xffff; iadev 2040 drivers/atm/iphase.c iadev->ffL.prq_wr = readw(iadev->seg_reg+PRQ_WR_PTR) & 0xffff; iadev 2042 drivers/atm/iphase.c iadev->ffL.tcq_st = readw(iadev->seg_reg+TCQ_ST_ADR) & 0xffff; iadev 2043 drivers/atm/iphase.c iadev->ffL.tcq_ed = readw(iadev->seg_reg+TCQ_ED_ADR) & 0xffff; iadev 2044 drivers/atm/iphase.c iadev->ffL.tcq_rd = readw(iadev->seg_reg+TCQ_RD_PTR) & 0xffff; iadev 2048 drivers/atm/iphase.c prq_st_adr = readw(iadev->seg_reg+PRQ_ST_ADR); iadev 2049 drivers/atm/iphase.c prq_start = (u_short *)(iadev->seg_ram+prq_st_adr); iadev 2050 drivers/atm/iphase.c for(i=1; i<=iadev->num_tx_desc; i++) iadev 2058 drivers/atm/iphase.c writew(0,iadev->seg_reg+CBR_PTR_BASE); iadev 2060 drivers/atm/iphase.c tmp16 = (iadev->seg_ram+CBR_SCHED_TABLE*iadev->memSize)>>17; iadev 2062 drivers/atm/iphase.c writew(tmp16,iadev->seg_reg+CBR_PTR_BASE); iadev 2066 drivers/atm/iphase.c readw(iadev->seg_reg+CBR_PTR_BASE));) iadev 2067 drivers/atm/iphase.c tmp16 = (CBR_SCHED_TABLE*iadev->memSize) >> 1; iadev 2068 drivers/atm/iphase.c writew(tmp16, iadev->seg_reg+CBR_TAB_BEG); iadev 2070 drivers/atm/iphase.c readw(iadev->seg_reg+CBR_TAB_BEG));) iadev 2071 drivers/atm/iphase.c writew(tmp16, iadev->seg_reg+CBR_TAB_END+1); // CBR_PTR; iadev 2072 drivers/atm/iphase.c tmp16 = (CBR_SCHED_TABLE*iadev->memSize + iadev->num_vc*6 - 2) >> 1; iadev 2073 drivers/atm/iphase.c writew(tmp16, iadev->seg_reg+CBR_TAB_END); iadev 2075 drivers/atm/iphase.c iadev->seg_reg, readw(iadev->seg_reg+CBR_PTR_BASE));) iadev 2077 drivers/atm/iphase.c readw(iadev->seg_reg+CBR_TAB_BEG), readw(iadev->seg_reg+CBR_TAB_END), iadev 2078 drivers/atm/iphase.c readw(iadev->seg_reg+CBR_TAB_END+1));) iadev 2081 drivers/atm/iphase.c memset_io(iadev->seg_ram+CBR_SCHED_TABLE*iadev->memSize, iadev 2082 drivers/atm/iphase.c 0, iadev->num_vc*6); iadev 2083 drivers/atm/iphase.c iadev->CbrRemEntries = iadev->CbrTotEntries = iadev->num_vc*3; iadev 2084 drivers/atm/iphase.c iadev->CbrEntryPt = 0; iadev 2085 drivers/atm/iphase.c iadev->Granularity = MAX_ATM_155 / iadev->CbrTotEntries; iadev 2086 drivers/atm/iphase.c iadev->NumEnabledCBR = 0; iadev 2099 drivers/atm/iphase.c while (i != iadev->num_vc) { iadev 2104 drivers/atm/iphase.c i = MAIN_VC_TABLE * iadev->memSize; iadev 2105 drivers/atm/iphase.c writew(vcsize_sel | ((i >> 8) & 0xfff8),iadev->seg_reg+VCT_BASE); iadev 2106 drivers/atm/iphase.c i = EXT_VC_TABLE * iadev->memSize; iadev 2107 drivers/atm/iphase.c writew((i >> 8) & 0xfffe, iadev->seg_reg+VCTE_BASE); iadev 2108 drivers/atm/iphase.c i = UBR_SCHED_TABLE * iadev->memSize; iadev 2109 drivers/atm/iphase.c writew((i & 0xffff) >> 11, iadev->seg_reg+UBR_SBPTR_BASE); iadev 2110 drivers/atm/iphase.c i = UBR_WAIT_Q * iadev->memSize; iadev 2111 drivers/atm/iphase.c writew((i >> 7) & 0xffff, iadev->seg_reg+UBRWQ_BASE); iadev 2112 drivers/atm/iphase.c memset((caddr_t)(iadev->seg_ram+UBR_SCHED_TABLE*iadev->memSize), iadev 2113 drivers/atm/iphase.c 0, iadev->num_vc*8); iadev 2122 drivers/atm/iphase.c i = ABR_SCHED_TABLE * iadev->memSize; iadev 2123 drivers/atm/iphase.c writew((i >> 11) & 0xffff, iadev->seg_reg+ABR_SBPTR_BASE); iadev 2124 drivers/atm/iphase.c i = ABR_WAIT_Q * iadev->memSize; iadev 2125 drivers/atm/iphase.c writew((i >> 7) & 0xffff, iadev->seg_reg+ABRWQ_BASE); iadev 2127 drivers/atm/iphase.c i = ABR_SCHED_TABLE*iadev->memSize; iadev 2128 drivers/atm/iphase.c memset((caddr_t)(iadev->seg_ram+i), 0, iadev->num_vc*4); iadev 2129 drivers/atm/iphase.c vc = (struct main_vc *)iadev->MAIN_VC_TABLE_ADDR; iadev 2130 drivers/atm/iphase.c evc = (struct ext_vc *)iadev->EXT_VC_TABLE_ADDR; iadev 2131 drivers/atm/iphase.c iadev->testTable = kmalloc_array(iadev->num_vc, iadev 2132 drivers/atm/iphase.c sizeof(*iadev->testTable), iadev 2134 drivers/atm/iphase.c if (!iadev->testTable) { iadev 2138 drivers/atm/iphase.c for(i=0; i<iadev->num_vc; i++) iadev 2142 drivers/atm/iphase.c iadev->testTable[i] = kmalloc(sizeof(struct testTable_t), iadev 2144 drivers/atm/iphase.c if (!iadev->testTable[i]) iadev 2146 drivers/atm/iphase.c iadev->testTable[i]->lastTime = 0; iadev 2147 drivers/atm/iphase.c iadev->testTable[i]->fract = 0; iadev 2148 drivers/atm/iphase.c iadev->testTable[i]->vc_status = VC_UBR; iadev 2156 drivers/atm/iphase.c if (iadev->phy_type & FE_25MBIT_PHY) { iadev 2157 drivers/atm/iphase.c writew(RATE25, iadev->seg_reg+MAXRATE); iadev 2158 drivers/atm/iphase.c writew((UBR_EN | (0x23 << 2)), iadev->seg_reg+STPARMS); iadev 2161 drivers/atm/iphase.c writew(cellrate_to_float(iadev->LineRate),iadev->seg_reg+MAXRATE); iadev 2162 drivers/atm/iphase.c writew((UBR_EN | ABR_EN | (0x23 << 2)), iadev->seg_reg+STPARMS); iadev 2165 drivers/atm/iphase.c writew(0, iadev->seg_reg+IDLEHEADHI); iadev 2166 drivers/atm/iphase.c writew(0, iadev->seg_reg+IDLEHEADLO); iadev 2169 drivers/atm/iphase.c writew(0xaa00, iadev->seg_reg+ABRUBR_ARB); iadev 2171 drivers/atm/iphase.c iadev->close_pending = 0; iadev 2172 drivers/atm/iphase.c init_waitqueue_head(&iadev->close_wait); iadev 2173 drivers/atm/iphase.c init_waitqueue_head(&iadev->timeout_wait); iadev 2174 drivers/atm/iphase.c skb_queue_head_init(&iadev->tx_dma_q); iadev 2175 drivers/atm/iphase.c ia_init_rtn_q(&iadev->tx_return_q); iadev 2178 drivers/atm/iphase.c writew(RM_TYPE_4_0, iadev->seg_reg+RM_TYPE); iadev 2179 drivers/atm/iphase.c skb_queue_head_init (&iadev->tx_backlog); iadev 2182 drivers/atm/iphase.c writew(MODE_REG_1_VAL, iadev->seg_reg+MODE_REG_1); iadev 2185 drivers/atm/iphase.c writew(T_ONLINE, iadev->seg_reg+MODE_REG_0); iadev 2188 drivers/atm/iphase.c readw(iadev->seg_reg+SEG_INTR_STATUS_REG); iadev 2191 drivers/atm/iphase.c writew(~(TRANSMIT_DONE | TCQ_NOT_EMPTY), iadev->seg_reg+SEG_MASK_REG); iadev 2192 drivers/atm/iphase.c writew(TRANSMIT_DONE, iadev->seg_reg+SEG_INTR_STATUS_REG); iadev 2193 drivers/atm/iphase.c iadev->tx_pkt_cnt = 0; iadev 2194 drivers/atm/iphase.c iadev->rate_limit = iadev->LineRate / 3; iadev 2200 drivers/atm/iphase.c kfree(iadev->testTable[i]); iadev 2201 drivers/atm/iphase.c kfree(iadev->testTable); iadev 2203 drivers/atm/iphase.c kfree(iadev->desc_tbl); iadev 2205 drivers/atm/iphase.c i = iadev->num_tx_desc; iadev 2208 drivers/atm/iphase.c struct cpcs_trailer_desc *desc = iadev->tx_buf + i; iadev 2210 drivers/atm/iphase.c dma_unmap_single(&iadev->pci->dev, desc->dma_addr, iadev 2214 drivers/atm/iphase.c kfree(iadev->tx_buf); iadev 2216 drivers/atm/iphase.c dma_free_coherent(&iadev->pci->dev, DLE_TOTAL_SIZE, iadev->tx_dle_q.start, iadev 2217 drivers/atm/iphase.c iadev->tx_dle_dma); iadev 2225 drivers/atm/iphase.c IADEV *iadev; iadev 2230 drivers/atm/iphase.c iadev = INPH_IA_DEV(dev); iadev 2231 drivers/atm/iphase.c while( (status = readl(iadev->reg+IPHASE5575_BUS_STATUS_REG) & 0x7f)) iadev 2244 drivers/atm/iphase.c writel(STAT_DLERINT, iadev->reg + IPHASE5575_BUS_STATUS_REG); iadev 2255 drivers/atm/iphase.c writel(STAT_DLETINT, iadev->reg + IPHASE5575_BUS_STATUS_REG); iadev 2261 drivers/atm/iphase.c ia_frontend_intr(iadev); iadev 2272 drivers/atm/iphase.c IADEV *iadev; iadev 2277 drivers/atm/iphase.c iadev = INPH_IA_DEV(dev); iadev 2279 drivers/atm/iphase.c iadev->reg+IPHASE5575_MAC1))); iadev 2280 drivers/atm/iphase.c mac2 = cpu_to_be16(le16_to_cpu(readl(iadev->reg+IPHASE5575_MAC2))); iadev 2292 drivers/atm/iphase.c IADEV *iadev; iadev 2296 drivers/atm/iphase.c iadev = INPH_IA_DEV(dev); iadev 2298 drivers/atm/iphase.c if ((error = pci_read_config_dword(iadev->pci, iadev 2301 drivers/atm/iphase.c writel(0, iadev->reg+IPHASE5575_EXT_RESET); iadev 2303 drivers/atm/iphase.c if ((error = pci_write_config_dword(iadev->pci, iadev 2313 drivers/atm/iphase.c IADEV *iadev; iadev 2327 drivers/atm/iphase.c iadev = INPH_IA_DEV(dev); iadev 2328 drivers/atm/iphase.c real_base = pci_resource_start (iadev->pci, 0); iadev 2329 drivers/atm/iphase.c iadev->irq = iadev->pci->irq; iadev 2331 drivers/atm/iphase.c error = pci_read_config_word(iadev->pci, PCI_COMMAND, &command); iadev 2338 drivers/atm/iphase.c dev->number, iadev->pci->revision, real_base, iadev->irq);) iadev 2342 drivers/atm/iphase.c iadev->pci_map_size = pci_resource_len(iadev->pci, 0); iadev 2344 drivers/atm/iphase.c if (iadev->pci_map_size == 0x100000){ iadev 2345 drivers/atm/iphase.c iadev->num_vc = 4096; iadev 2347 drivers/atm/iphase.c iadev->memSize = 4; iadev 2349 drivers/atm/iphase.c else if (iadev->pci_map_size == 0x40000) { iadev 2350 drivers/atm/iphase.c iadev->num_vc = 1024; iadev 2351 drivers/atm/iphase.c iadev->memSize = 1; iadev 2354 drivers/atm/iphase.c printk("Unknown pci_map_size = 0x%x\n", iadev->pci_map_size); iadev 2357 drivers/atm/iphase.c IF_INIT(printk (DEV_LABEL "map size: %i\n", iadev->pci_map_size);) iadev 2360 drivers/atm/iphase.c pci_set_master(iadev->pci); iadev 2368 drivers/atm/iphase.c base = ioremap(real_base,iadev->pci_map_size); /* ioremap is not resolved ??? */ iadev 2377 drivers/atm/iphase.c dev->number, iadev->pci->revision, base, iadev->irq);) iadev 2380 drivers/atm/iphase.c iadev->mem = iadev->pci_map_size /2; iadev 2381 drivers/atm/iphase.c iadev->real_base = real_base; iadev 2382 drivers/atm/iphase.c iadev->base = base; iadev 2385 drivers/atm/iphase.c iadev->reg = base + REG_BASE; iadev 2387 drivers/atm/iphase.c iadev->seg_reg = base + SEG_BASE; iadev 2389 drivers/atm/iphase.c iadev->reass_reg = base + REASS_BASE; iadev 2391 drivers/atm/iphase.c iadev->phy = base + PHY_BASE; iadev 2392 drivers/atm/iphase.c iadev->dma = base + PHY_BASE; iadev 2394 drivers/atm/iphase.c iadev->ram = base + ACTUAL_RAM_BASE; iadev 2395 drivers/atm/iphase.c iadev->seg_ram = base + ACTUAL_SEG_RAM_BASE; iadev 2396 drivers/atm/iphase.c iadev->reass_ram = base + ACTUAL_REASS_RAM_BASE; iadev 2400 drivers/atm/iphase.c iadev->reg,iadev->seg_reg,iadev->reass_reg, iadev 2401 drivers/atm/iphase.c iadev->phy, iadev->ram, iadev->seg_ram, iadev 2402 drivers/atm/iphase.c iadev->reass_ram);) iadev 2407 drivers/atm/iphase.c iounmap(iadev->base); iadev 2417 drivers/atm/iphase.c iounmap(iadev->base); iadev 2424 drivers/atm/iphase.c static void ia_update_stats(IADEV *iadev) { iadev 2425 drivers/atm/iphase.c if (!iadev->carrier_detect) iadev 2427 drivers/atm/iphase.c iadev->rx_cell_cnt += readw(iadev->reass_reg+CELL_CTR0)&0xffff; iadev 2428 drivers/atm/iphase.c iadev->rx_cell_cnt += (readw(iadev->reass_reg+CELL_CTR1) & 0xffff) << 16; iadev 2429 drivers/atm/iphase.c iadev->drop_rxpkt += readw(iadev->reass_reg + DRP_PKT_CNTR ) & 0xffff; iadev 2430 drivers/atm/iphase.c iadev->drop_rxcell += readw(iadev->reass_reg + ERR_CNTR) & 0xffff; iadev 2431 drivers/atm/iphase.c iadev->tx_cell_cnt += readw(iadev->seg_reg + CELL_CTR_LO_AUTO)&0xffff; iadev 2432 drivers/atm/iphase.c iadev->tx_cell_cnt += (readw(iadev->seg_reg+CELL_CTR_HIGH_AUTO)&0xffff)<<16; iadev 2477 drivers/atm/iphase.c static void ia_free_tx(IADEV *iadev) iadev 2481 drivers/atm/iphase.c kfree(iadev->desc_tbl); iadev 2482 drivers/atm/iphase.c for (i = 0; i < iadev->num_vc; i++) iadev 2483 drivers/atm/iphase.c kfree(iadev->testTable[i]); iadev 2484 drivers/atm/iphase.c kfree(iadev->testTable); iadev 2485 drivers/atm/iphase.c for (i = 0; i < iadev->num_tx_desc; i++) { iadev 2486 drivers/atm/iphase.c struct cpcs_trailer_desc *desc = iadev->tx_buf + i; iadev 2488 drivers/atm/iphase.c dma_unmap_single(&iadev->pci->dev, desc->dma_addr, iadev 2492 drivers/atm/iphase.c kfree(iadev->tx_buf); iadev 2493 drivers/atm/iphase.c dma_free_coherent(&iadev->pci->dev, DLE_TOTAL_SIZE, iadev->tx_dle_q.start, iadev 2494 drivers/atm/iphase.c iadev->tx_dle_dma); iadev 2497 drivers/atm/iphase.c static void ia_free_rx(IADEV *iadev) iadev 2499 drivers/atm/iphase.c kfree(iadev->rx_open); iadev 2500 drivers/atm/iphase.c dma_free_coherent(&iadev->pci->dev, DLE_TOTAL_SIZE, iadev->rx_dle_q.start, iadev 2501 drivers/atm/iphase.c iadev->rx_dle_dma); iadev 2506 drivers/atm/iphase.c IADEV *iadev; iadev 2511 drivers/atm/iphase.c iadev = INPH_IA_DEV(dev); iadev 2512 drivers/atm/iphase.c if (request_irq(iadev->irq, &ia_int, IRQF_SHARED, DEV_LABEL, dev)) { iadev 2514 drivers/atm/iphase.c dev->number, iadev->irq); iadev 2520 drivers/atm/iphase.c if ((error = pci_write_config_word(iadev->pci, iadev 2535 drivers/atm/iphase.c readl(iadev->reg+IPHASE5575_BUS_CONTROL_REG));) iadev 2536 drivers/atm/iphase.c ctrl_reg = readl(iadev->reg+IPHASE5575_BUS_CONTROL_REG); iadev 2552 drivers/atm/iphase.c writel(ctrl_reg, iadev->reg+IPHASE5575_BUS_CONTROL_REG); iadev 2555 drivers/atm/iphase.c readl(iadev->reg+IPHASE5575_BUS_CONTROL_REG)); iadev 2557 drivers/atm/iphase.c readl(iadev->reg+IPHASE5575_BUS_STATUS_REG));) iadev 2559 drivers/atm/iphase.c ia_hw_type(iadev); iadev 2567 drivers/atm/iphase.c ctrl_reg = readl(iadev->reg+IPHASE5575_BUS_CONTROL_REG); iadev 2568 drivers/atm/iphase.c writel(ctrl_reg | CTRL_FE_RST, iadev->reg+IPHASE5575_BUS_CONTROL_REG); iadev 2570 drivers/atm/iphase.c readl(iadev->reg+IPHASE5575_BUS_CONTROL_REG));) iadev 2578 drivers/atm/iphase.c if (iadev->phy_type & FE_25MBIT_PHY) iadev 2579 drivers/atm/iphase.c ia_mb25_init(iadev); iadev 2580 drivers/atm/iphase.c else if (iadev->phy_type & (FE_DS3_PHY | FE_E3_PHY)) iadev 2581 drivers/atm/iphase.c ia_suni_pm7345_init(iadev); iadev 2592 drivers/atm/iphase.c ia_frontend_intr(iadev); iadev 2597 drivers/atm/iphase.c ia_free_rx(iadev); iadev 2599 drivers/atm/iphase.c ia_free_tx(iadev); iadev 2601 drivers/atm/iphase.c free_irq(iadev->irq, dev); iadev 2610 drivers/atm/iphase.c IADEV *iadev; iadev 2616 drivers/atm/iphase.c iadev = INPH_IA_DEV(vcc->dev); iadev 2626 drivers/atm/iphase.c iadev->close_pending++; iadev 2627 drivers/atm/iphase.c prepare_to_wait(&iadev->timeout_wait, &wait, TASK_UNINTERRUPTIBLE); iadev 2629 drivers/atm/iphase.c finish_wait(&iadev->timeout_wait, &wait); iadev 2630 drivers/atm/iphase.c spin_lock_irqsave(&iadev->tx_lock, flags); iadev 2631 drivers/atm/iphase.c while((skb = skb_dequeue(&iadev->tx_backlog))) { iadev 2640 drivers/atm/iphase.c skb_queue_tail(&iadev->tx_backlog, skb); iadev 2645 drivers/atm/iphase.c spin_unlock_irqrestore(&iadev->tx_lock, flags); iadev 2646 drivers/atm/iphase.c wait_event_timeout(iadev->close_wait, (ia_vcc->vc_desc_cnt <= 0), closetime); iadev 2647 drivers/atm/iphase.c spin_lock_irqsave(&iadev->tx_lock, flags); iadev 2648 drivers/atm/iphase.c iadev->close_pending--; iadev 2649 drivers/atm/iphase.c iadev->testTable[vcc->vci]->lastTime = 0; iadev 2650 drivers/atm/iphase.c iadev->testTable[vcc->vci]->fract = 0; iadev 2651 drivers/atm/iphase.c iadev->testTable[vcc->vci]->vc_status = VC_UBR; iadev 2654 drivers/atm/iphase.c iadev->sum_mcr -= vcc->qos.txtp.min_pcr; iadev 2658 drivers/atm/iphase.c iadev->sum_mcr -= ia_vcc->NumCbrEntry*iadev->Granularity; iadev 2661 drivers/atm/iphase.c spin_unlock_irqrestore(&iadev->tx_lock, flags); iadev 2666 drivers/atm/iphase.c vc_table = (u16 *)(iadev->reass_ram+REASS_TABLE*iadev->memSize); iadev 2670 drivers/atm/iphase.c vc_table = (u16 *)(iadev->reass_ram+RX_VC_TABLE*iadev->memSize); iadev 2675 drivers/atm/iphase.c (iadev->reass_ram+ABR_VC_TABLE*iadev->memSize); iadev 2682 drivers/atm/iphase.c iadev->rx_open[vcc->vci] = NULL; iadev 2754 drivers/atm/iphase.c IADEV *iadev; iadev 2769 drivers/atm/iphase.c iadev = ia_dev[board]; iadev 2778 drivers/atm/iphase.c if(put_user((u16)(readl(iadev->seg_reg+i) & 0xffff), tmps)) return -EFAULT; iadev 2786 drivers/atm/iphase.c if(put_user((u16)(readl(iadev->reass_reg+i) & 0xffff), tmps)) return -EFAULT; iadev 2803 drivers/atm/iphase.c ((u_int *)rfL)[i] = readl(iadev->reass_reg + i) & 0xffff; iadev 2806 drivers/atm/iphase.c ((u_int *)ffL)[i] = readl(iadev->seg_reg + i) & 0xffff; iadev 2820 drivers/atm/iphase.c desc_dbg(iadev); iadev 2827 drivers/atm/iphase.c printk("skb = 0x%p\n", skb_peek(&iadev->tx_backlog)); iadev 2828 drivers/atm/iphase.c printk("rtn_q: 0x%p\n",ia_deque_rtn_q(&iadev->tx_return_q)); iadev 2849 drivers/atm/iphase.c for (i = 1; i <= iadev->num_rx_desc; i++) iadev 2852 drivers/atm/iphase.c iadev->reass_reg+REASS_MASK_REG); iadev 2853 drivers/atm/iphase.c iadev->rxing = 1; iadev 2860 drivers/atm/iphase.c ia_frontend_intr(iadev); iadev 2898 drivers/atm/iphase.c IADEV *iadev; iadev 2907 drivers/atm/iphase.c iadev = INPH_IA_DEV(vcc->dev); iadev 2918 drivers/atm/iphase.c if (skb->len > iadev->tx_buf_sz - 8) { iadev 2939 drivers/atm/iphase.c desc = get_desc (iadev, iavcc); iadev 2945 drivers/atm/iphase.c if ((desc == 0) || (desc > iadev->num_tx_desc)) iadev 2964 drivers/atm/iphase.c iadev->desc_tbl[desc-1].iavcc = iavcc; iadev 2965 drivers/atm/iphase.c iadev->desc_tbl[desc-1].txskb = skb; iadev 2968 drivers/atm/iphase.c iadev->ffL.tcq_rd += 2; iadev 2969 drivers/atm/iphase.c if (iadev->ffL.tcq_rd > iadev->ffL.tcq_ed) iadev 2970 drivers/atm/iphase.c iadev->ffL.tcq_rd = iadev->ffL.tcq_st; iadev 2971 drivers/atm/iphase.c writew(iadev->ffL.tcq_rd, iadev->seg_reg+TCQ_RD_PTR); iadev 2976 drivers/atm/iphase.c *(u16*)(iadev->seg_ram+iadev->ffL.prq_wr) = desc; iadev 2978 drivers/atm/iphase.c iadev->ffL.prq_wr += 2; iadev 2979 drivers/atm/iphase.c if (iadev->ffL.prq_wr > iadev->ffL.prq_ed) iadev 2980 drivers/atm/iphase.c iadev->ffL.prq_wr = iadev->ffL.prq_st; iadev 2989 drivers/atm/iphase.c trailer = iadev->tx_buf[desc-1].cpcs; iadev 3004 drivers/atm/iphase.c buf_desc_ptr = iadev->seg_ram+TX_DESC_BASE; iadev 3008 drivers/atm/iphase.c writew(TRANSMIT_DONE, iadev->seg_reg+SEG_INTR_STATUS_REG); iadev 3013 drivers/atm/iphase.c clear_lockup (vcc, iadev); iadev 3016 drivers/atm/iphase.c wr_ptr = iadev->tx_dle_q.write; iadev 3018 drivers/atm/iphase.c wr_ptr->sys_pkt_addr = dma_map_single(&iadev->pci->dev, skb->data, iadev 3033 drivers/atm/iphase.c if (++wr_ptr == iadev->tx_dle_q.end) iadev 3034 drivers/atm/iphase.c wr_ptr = iadev->tx_dle_q.start; iadev 3037 drivers/atm/iphase.c wr_ptr->sys_pkt_addr = iadev->tx_buf[desc-1].dma_addr; iadev 3043 drivers/atm/iphase.c wr_ptr->prq_wr_ptr_data = iadev->ffL.prq_wr; iadev 3046 drivers/atm/iphase.c if (++wr_ptr == iadev->tx_dle_q.end) iadev 3047 drivers/atm/iphase.c wr_ptr = iadev->tx_dle_q.start; iadev 3049 drivers/atm/iphase.c iadev->tx_dle_q.write = wr_ptr; iadev 3051 drivers/atm/iphase.c skb_queue_tail(&iadev->tx_dma_q, skb); iadev 3054 drivers/atm/iphase.c iadev->tx_pkt_cnt++; iadev 3056 drivers/atm/iphase.c writel(2, iadev->dma+IPHASE5575_TX_COUNTER); iadev 3079 drivers/atm/iphase.c IADEV *iadev; iadev 3082 drivers/atm/iphase.c iadev = INPH_IA_DEV(vcc->dev); iadev 3083 drivers/atm/iphase.c if ((!skb)||(skb->len>(iadev->tx_buf_sz-sizeof(struct cpcs_trailer)))) iadev 3090 drivers/atm/iphase.c spin_lock_irqsave(&iadev->tx_lock, flags); iadev 3093 drivers/atm/iphase.c spin_unlock_irqrestore(&iadev->tx_lock, flags); iadev 3098 drivers/atm/iphase.c if (skb_peek(&iadev->tx_backlog)) { iadev 3099 drivers/atm/iphase.c skb_queue_tail(&iadev->tx_backlog, skb); iadev 3103 drivers/atm/iphase.c skb_queue_tail(&iadev->tx_backlog, skb); iadev 3106 drivers/atm/iphase.c spin_unlock_irqrestore(&iadev->tx_lock, flags); iadev 3115 drivers/atm/iphase.c IADEV *iadev = INPH_IA_DEV(dev); iadev 3117 drivers/atm/iphase.c if (iadev->phy_type == FE_25MBIT_PHY) { iadev 3121 drivers/atm/iphase.c if (iadev->phy_type == FE_DS3_PHY) iadev 3123 drivers/atm/iphase.c else if (iadev->phy_type == FE_E3_PHY) iadev 3125 drivers/atm/iphase.c else if (iadev->phy_type == FE_UTP_OPTION) iadev 3130 drivers/atm/iphase.c if (iadev->pci_map_size == 0x40000) iadev 3135 drivers/atm/iphase.c if ((iadev->memType & MEM_SIZE_MASK) == MEM_SIZE_1M) iadev 3137 drivers/atm/iphase.c else if ((iadev->memType & MEM_SIZE_MASK) == MEM_SIZE_512K) iadev 3154 drivers/atm/iphase.c iadev->num_tx_desc, iadev->tx_buf_sz, iadev 3155 drivers/atm/iphase.c iadev->num_rx_desc, iadev->rx_buf_sz, iadev 3156 drivers/atm/iphase.c iadev->rx_pkt_cnt, iadev->tx_pkt_cnt, iadev 3157 drivers/atm/iphase.c iadev->rx_cell_cnt, iadev->tx_cell_cnt, iadev 3158 drivers/atm/iphase.c iadev->drop_rxcell, iadev->drop_rxpkt); iadev 3180 drivers/atm/iphase.c IADEV *iadev; iadev 3183 drivers/atm/iphase.c iadev = kzalloc(sizeof(*iadev), GFP_KERNEL); iadev 3184 drivers/atm/iphase.c if (!iadev) { iadev 3189 drivers/atm/iphase.c iadev->pci = pdev; iadev 3202 drivers/atm/iphase.c dev->dev_data = iadev; iadev 3205 drivers/atm/iphase.c iadev->LineRate);) iadev 3209 drivers/atm/iphase.c ia_dev[iadev_count] = iadev; iadev 3222 drivers/atm/iphase.c iadev->next_board = ia_boards; iadev 3232 drivers/atm/iphase.c kfree(iadev); iadev 3240 drivers/atm/iphase.c IADEV *iadev = INPH_IA_DEV(dev); iadev 3251 drivers/atm/iphase.c free_irq(iadev->irq, dev); iadev 3258 drivers/atm/iphase.c iounmap(iadev->base); iadev 3261 drivers/atm/iphase.c ia_free_rx(iadev); iadev 3262 drivers/atm/iphase.c ia_free_tx(iadev); iadev 3264 drivers/atm/iphase.c kfree(iadev); iadev 1375 drivers/atm/iphase.h t = readl(iadev->reg+IPHASE5575_EEPROM_ACCESS); \ iadev 1377 drivers/atm/iphase.h writel(t, iadev->reg+IPHASE5575_EEPROM_ACCESS); \ iadev 1389 drivers/atm/iphase.h t = readl(iadev->reg+IPHASE5575_EEPROM_ACCESS); \ iadev 1391 drivers/atm/iphase.h writel(t, iadev->reg+IPHASE5575_EEPROM_ACCESS); \ iadev 1448 drivers/atm/iphase.h _t = readl(iadev->reg+IPHASE5575_EEPROM_ACCESS); \