Lines Matching refs:adapter
36 static void vsc_read(adapter_t *adapter, u32 addr, u32 *val) in vsc_read() argument
41 spin_lock_bh(&adapter->mac_lock); in vsc_read()
42 t1_tpi_read(adapter, (addr << 2) + 4, &vlo); in vsc_read()
45 t1_tpi_read(adapter, (REG_LOCAL_STATUS << 2) + 4, &vlo); in vsc_read()
46 t1_tpi_read(adapter, REG_LOCAL_STATUS << 2, &vhi); in vsc_read()
53 t1_tpi_read(adapter, (REG_LOCAL_DATA << 2) + 4, &vlo); in vsc_read()
54 t1_tpi_read(adapter, REG_LOCAL_DATA << 2, &vhi); in vsc_read()
61 spin_unlock_bh(&adapter->mac_lock); in vsc_read()
64 static void vsc_write(adapter_t *adapter, u32 addr, u32 data) in vsc_write() argument
66 spin_lock_bh(&adapter->mac_lock); in vsc_write()
67 t1_tpi_write(adapter, (addr << 2) + 4, data & 0xFFFF); in vsc_write()
68 t1_tpi_write(adapter, addr << 2, (data >> 16) & 0xFFFF); in vsc_write()
72 spin_unlock_bh(&adapter->mac_lock); in vsc_write()
76 static void vsc7326_full_reset(adapter_t* adapter) in vsc7326_full_reset() argument
81 t1_tpi_read(adapter, A_ELMER0_GPO, &val); in vsc7326_full_reset()
83 t1_tpi_write(adapter, A_ELMER0_GPO, val); in vsc7326_full_reset()
87 t1_tpi_write(adapter, A_ELMER0_GPO, val); in vsc7326_full_reset()
89 vsc_write(adapter, REG_SW_RESET, 0x80000001); in vsc7326_full_reset()
92 vsc_read(adapter, REG_SW_RESET, &result); in vsc7326_full_reset()
221 static void run_table(adapter_t *adapter, struct init_table *ib, int len) in run_table() argument
230 vsc_write( adapter, ib[i].addr, ib[i].data ); in run_table()
234 static int bist_rd(adapter_t *adapter, int moduleid, int address) in bist_rd() argument
248 vsc_write(adapter, REG_RAM_BIST_CMD, data); in bist_rd()
252 vsc_read(adapter, REG_RAM_BIST_RESULT, &result); in bist_rd()
261 static int bist_wr(adapter_t *adapter, int moduleid, int address, int value) in bist_wr() argument
278 vsc_write(adapter, REG_RAM_BIST_CMD, data); in bist_wr()
282 vsc_read(adapter, REG_RAM_BIST_CMD, &result); in bist_wr()
291 static int run_bist(adapter_t *adapter, int moduleid) in run_bist() argument
294 (void) bist_wr(adapter,moduleid, 0x00, 0x02); in run_bist()
295 (void) bist_wr(adapter,moduleid, 0x01, 0x01); in run_bist()
300 static int check_bist(adapter_t *adapter, int moduleid) in check_bist() argument
305 result = bist_rd(adapter,moduleid, 0x02); in check_bist()
306 column = ((bist_rd(adapter,moduleid, 0x0e)<<8) + in check_bist()
307 (bist_rd(adapter,moduleid, 0x0d))); in check_bist()
314 static int enable_mem(adapter_t *adapter, int moduleid) in enable_mem() argument
317 (void) bist_wr(adapter,moduleid, 0x00, 0x00); in enable_mem()
321 static int run_bist_all(adapter_t *adapter) in run_bist_all() argument
326 vsc_write(adapter, REG_MEM_BIST, 0x5); in run_bist_all()
327 vsc_read(adapter, REG_MEM_BIST, &val); in run_bist_all()
330 vsc_write(adapter, REG_DEV_SETUP(port), 0x0); in run_bist_all()
333 vsc_write(adapter, REG_SPI4_MISC, 0x00040409); in run_bist_all()
336 (void) run_bist(adapter,13); in run_bist_all()
337 (void) run_bist(adapter,14); in run_bist_all()
338 (void) run_bist(adapter,20); in run_bist_all()
339 (void) run_bist(adapter,21); in run_bist_all()
341 (void) check_bist(adapter,13); in run_bist_all()
342 (void) check_bist(adapter,14); in run_bist_all()
343 (void) check_bist(adapter,20); in run_bist_all()
344 (void) check_bist(adapter,21); in run_bist_all()
346 (void) enable_mem(adapter,13); in run_bist_all()
347 (void) enable_mem(adapter,14); in run_bist_all()
348 (void) enable_mem(adapter,20); in run_bist_all()
349 (void) enable_mem(adapter,21); in run_bist_all()
351 vsc_write(adapter, REG_SPI4_MISC, 0x60040400); in run_bist_all()
354 vsc_write(adapter, REG_DEV_SETUP(port), 0x1); in run_bist_all()
357 vsc_write(adapter, REG_MEM_BIST, 0x0); in run_bist_all()
388 vsc_write(mac->adapter, REG_MAC_LOW_ADDR(port), in mac_set_address()
390 vsc_write(mac->adapter, REG_MAC_HIGH_ADDR(port), in mac_set_address()
393 vsc_read(mac->adapter, REG_ING_FFILT_UM_EN, &val); in mac_set_address()
395 vsc_write(mac->adapter, REG_ING_FFILT_UM_EN, val | (port << 28)); in mac_set_address()
397 vsc_write(mac->adapter, REG_ING_FFILT_MASK0, in mac_set_address()
399 vsc_write(mac->adapter, REG_ING_FFILT_MASK1, in mac_set_address()
401 vsc_write(mac->adapter, REG_ING_FFILT_MASK2, in mac_set_address()
411 vsc_read(mac->adapter, REG_MAC_LOW_ADDR(port), &addr_lo); in mac_get_address()
412 vsc_read(mac->adapter, REG_MAC_HIGH_ADDR(port), &addr_hi); in mac_get_address()
428 run_table(mac->adapter, vsc7326_portinit[index], in mac_reset()
439 vsc_read(mac->adapter, REG_ING_FFILT_UM_EN, &v); in mac_set_rx_mode()
447 vsc_write(mac->adapter, REG_ING_FFILT_UM_EN, v); in mac_set_rx_mode()
459 vsc_write(mac->adapter, REG_MAX_LEN(port), mtu + 14 + 4); in mac_set_mtu()
476 vsc_read(mac->adapter, REG_MODE_CFG(port), &v); in mac_set_speed_duplex_fc()
483 vsc_write(mac->adapter, REG_MODE_CFG(port), v); in mac_set_speed_duplex_fc()
491 vsc_write(mac->adapter, REG_DEV_SETUP(port), v | 1); /* reset */ in mac_set_speed_duplex_fc()
492 vsc_write(mac->adapter, REG_DEV_SETUP(port), v); in mac_set_speed_duplex_fc()
493 vsc_read(mac->adapter, REG_DBG(port), &v); in mac_set_speed_duplex_fc()
501 vsc_write(mac->adapter, REG_DBG(port), v); in mac_set_speed_duplex_fc()
503 vsc_write(mac->adapter, REG_TX_IFG(port), in mac_set_speed_duplex_fc()
515 vsc_write(mac->adapter, REG_MODE_CFG(port), enable); in mac_set_speed_duplex_fc()
519 vsc_read(mac->adapter, REG_PAUSE_CFG(port), &v); in mac_set_speed_duplex_fc()
528 vsc_write(mac->adapter, REG_PAUSE_CFG(port), v); in mac_set_speed_duplex_fc()
538 vsc_write(mac->adapter, REG_HIGH_LOW_WM(1,port), WM_ENABLE); in mac_enable()
540 vsc_read(mac->adapter, REG_MODE_CFG(port), &val); in mac_enable()
545 vsc_write(mac->adapter, REG_MODE_CFG(port), val); in mac_enable()
557 vsc_read(mac->adapter, REG_MODE_CFG(port), &val); in mac_disable()
562 vsc_write(mac->adapter, REG_MODE_CFG(port), val); in mac_disable()
563 vsc_read(mac->adapter, REG_MODE_CFG(port), &val); in mac_disable()
567 vsc_write(mac->adapter, CRA(4, port, i), 0); in mac_disable()
579 vsc_read(mac->adapter, addr, &v); in rmon_update()
686 static struct cmac *vsc7326_mac_create(adapter_t *adapter, int index) in vsc7326_mac_create() argument
698 mac->adapter = adapter; in vsc7326_mac_create()
708 t1_tpi_read(adapter, (REG_LOCAL_STATUS << 2) + 4, &vlo); in vsc7326_mac_create()
710 t1_tpi_read(adapter, REG_LOCAL_STATUS << 2, &vhi); in vsc7326_mac_create()
718 static int vsc7326_mac_reset(adapter_t *adapter) in vsc7326_mac_reset() argument
720 vsc7326_full_reset(adapter); in vsc7326_mac_reset()
721 (void) run_bist_all(adapter); in vsc7326_mac_reset()
722 run_table(adapter, vsc7326_reset, ARRAY_SIZE(vsc7326_reset)); in vsc7326_mac_reset()