Lines Matching refs:udev

162 static int smsc95xx_write_reg(struct usb_device *udev, u32 index, u32 data)  in smsc95xx_write_reg()  argument
170 len = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), in smsc95xx_write_reg()
183 static int smsc95xx_read_reg(struct usb_device *udev, u32 index, u32 *data) in smsc95xx_read_reg() argument
188 len = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), in smsc95xx_read_reg()
205 static int smsc95xx_phy_wait_not_busy(struct usb_device *udev) in smsc95xx_phy_wait_not_busy() argument
211 smsc95xx_read_reg(udev, MII_ADDR, &val); in smsc95xx_phy_wait_not_busy()
219 static int smsc95xx_mdio_read(struct usb_device *udev, int phy_id, int idx) in smsc95xx_mdio_read() argument
224 if (smsc95xx_phy_wait_not_busy(udev)) { in smsc95xx_mdio_read()
231 smsc95xx_write_reg(udev, MII_ADDR, addr); in smsc95xx_mdio_read()
233 if (smsc95xx_phy_wait_not_busy(udev)) { in smsc95xx_mdio_read()
238 smsc95xx_read_reg(udev, MII_DATA, &val); in smsc95xx_mdio_read()
243 static void smsc95xx_mdio_write(struct usb_device *udev, int phy_id, int idx, in smsc95xx_mdio_write() argument
249 if (smsc95xx_phy_wait_not_busy(udev)) { in smsc95xx_mdio_write()
255 smsc95xx_write_reg(udev, MII_DATA, val); in smsc95xx_mdio_write()
259 smsc95xx_write_reg(udev, MII_ADDR, addr); in smsc95xx_mdio_write()
261 if (smsc95xx_phy_wait_not_busy(udev)) in smsc95xx_mdio_write()
265 static int smsc95xx_eeprom_confirm_not_busy(struct usb_device *udev) in smsc95xx_eeprom_confirm_not_busy() argument
271 smsc95xx_read_reg(udev, E2P_CMD, &val); in smsc95xx_eeprom_confirm_not_busy()
281 static int smsc95xx_wait_eeprom(struct usb_device *udev) in smsc95xx_wait_eeprom() argument
287 smsc95xx_read_reg(udev, E2P_CMD, &val); in smsc95xx_wait_eeprom()
300 static int smsc95xx_read_eeprom(struct usb_device *udev, u32 offset, u32 length, in smsc95xx_read_eeprom() argument
306 ret = smsc95xx_eeprom_confirm_not_busy(udev); in smsc95xx_read_eeprom()
312 smsc95xx_write_reg(udev, E2P_CMD, val); in smsc95xx_read_eeprom()
314 ret = smsc95xx_wait_eeprom(udev); in smsc95xx_read_eeprom()
318 smsc95xx_read_reg(udev, E2P_DATA, &val); in smsc95xx_read_eeprom()
330 static int mii_nway_restart(struct usb_device *udev, struct ueth_data *dev) in mii_nway_restart() argument
336 bmcr = smsc95xx_mdio_read(udev, dev->phy_id, MII_BMCR); in mii_nway_restart()
340 smsc95xx_mdio_write(udev, dev->phy_id, MII_BMCR, bmcr); in mii_nway_restart()
346 static int smsc95xx_phy_initialize(struct usb_device *udev, in smsc95xx_phy_initialize() argument
349 smsc95xx_mdio_write(udev, dev->phy_id, MII_BMCR, BMCR_RESET); in smsc95xx_phy_initialize()
350 smsc95xx_mdio_write(udev, dev->phy_id, MII_ADVERTISE, in smsc95xx_phy_initialize()
355 smsc95xx_mdio_read(udev, dev->phy_id, PHY_INT_SRC); in smsc95xx_phy_initialize()
357 smsc95xx_mdio_write(udev, dev->phy_id, PHY_INT_MASK, in smsc95xx_phy_initialize()
359 mii_nway_restart(udev, dev); in smsc95xx_phy_initialize()
366 struct usb_device *udev) in smsc95xx_init_mac_address() argument
371 ret = smsc95xx_read_eeprom(udev, EEPROM_MAC_OFFSET, ETH_ALEN, enetaddr); in smsc95xx_init_mac_address()
390 static int smsc95xx_write_hwaddr_common(struct usb_device *udev, in smsc95xx_write_hwaddr_common() argument
400 ret = smsc95xx_write_reg(udev, ADDRL, addr_lo); in smsc95xx_write_hwaddr_common()
404 ret = smsc95xx_write_reg(udev, ADDRH, addr_hi); in smsc95xx_write_hwaddr_common()
415 static int smsc95xx_set_csums(struct usb_device *udev, int use_tx_csum, in smsc95xx_set_csums() argument
419 int ret = smsc95xx_read_reg(udev, COE_CR, &read_buf); in smsc95xx_set_csums()
433 ret = smsc95xx_write_reg(udev, COE_CR, read_buf); in smsc95xx_set_csums()
448 static void smsc95xx_start_tx_path(struct usb_device *udev, in smsc95xx_start_tx_path() argument
456 smsc95xx_write_reg(udev, MAC_CR, priv->mac_cr); in smsc95xx_start_tx_path()
460 smsc95xx_write_reg(udev, TX_CFG, reg_val); in smsc95xx_start_tx_path()
464 static void smsc95xx_start_rx_path(struct usb_device *udev, in smsc95xx_start_rx_path() argument
468 smsc95xx_write_reg(udev, MAC_CR, priv->mac_cr); in smsc95xx_start_rx_path()
471 static int smsc95xx_init_common(struct usb_device *udev, struct ueth_data *dev, in smsc95xx_init_common() argument
487 ret = smsc95xx_write_reg(udev, HW_CFG, write_buf); in smsc95xx_init_common()
493 ret = smsc95xx_read_reg(udev, HW_CFG, &read_buf); in smsc95xx_init_common()
506 ret = smsc95xx_write_reg(udev, PM_CTRL, write_buf); in smsc95xx_init_common()
512 ret = smsc95xx_read_reg(udev, PM_CTRL, &read_buf); in smsc95xx_init_common()
523 if (!priv->have_hwaddr && smsc95xx_init_mac_address(enetaddr, udev) == in smsc95xx_init_common()
531 ret = smsc95xx_write_hwaddr_common(udev, priv, enetaddr); in smsc95xx_init_common()
549 ret = smsc95xx_write_reg(udev, BURST_CAP, burst_cap); in smsc95xx_init_common()
553 ret = smsc95xx_read_reg(udev, BURST_CAP, &read_buf); in smsc95xx_init_common()
559 ret = smsc95xx_write_reg(udev, BULK_IN_DLY, read_buf); in smsc95xx_init_common()
563 ret = smsc95xx_read_reg(udev, BULK_IN_DLY, &read_buf); in smsc95xx_init_common()
569 ret = smsc95xx_read_reg(udev, HW_CFG, &read_buf); in smsc95xx_init_common()
582 ret = smsc95xx_write_reg(udev, HW_CFG, read_buf); in smsc95xx_init_common()
586 ret = smsc95xx_read_reg(udev, HW_CFG, &read_buf); in smsc95xx_init_common()
592 ret = smsc95xx_write_reg(udev, INT_STS, write_buf); in smsc95xx_init_common()
596 ret = smsc95xx_read_reg(udev, ID_REV, &read_buf); in smsc95xx_init_common()
604 ret = smsc95xx_write_reg(udev, LED_GPIO_CFG, write_buf); in smsc95xx_init_common()
611 ret = smsc95xx_write_reg(udev, FLOW, write_buf); in smsc95xx_init_common()
616 ret = smsc95xx_write_reg(udev, AFC_CFG, read_buf); in smsc95xx_init_common()
620 ret = smsc95xx_read_reg(udev, MAC_CR, &priv->mac_cr); in smsc95xx_init_common()
626 ret = smsc95xx_write_reg(udev, VLAN1, write_buf); in smsc95xx_init_common()
631 ret = smsc95xx_set_csums(udev, 0, 0); in smsc95xx_init_common()
638 ret = smsc95xx_phy_initialize(udev, dev); in smsc95xx_init_common()
641 ret = smsc95xx_read_reg(udev, INT_EP_CTL, &read_buf); in smsc95xx_init_common()
648 ret = smsc95xx_write_reg(udev, INT_EP_CTL, read_buf); in smsc95xx_init_common()
652 smsc95xx_start_tx_path(udev, priv); in smsc95xx_init_common()
653 smsc95xx_start_rx_path(udev, priv); in smsc95xx_init_common()
657 link_detected = smsc95xx_mdio_read(udev, dev->phy_id, MII_BMSR) in smsc95xx_init_common()
720 struct usb_device *udev = dev->pusb_dev; in smsc95xx_init() local
724 return smsc95xx_init_common(udev, dev, priv, eth->enetaddr); in smsc95xx_init()
810 struct usb_device *udev = dev->pusb_dev; in smsc95xx_write_hwaddr() local
813 return smsc95xx_write_hwaddr_common(udev, priv, eth->enetaddr); in smsc95xx_write_hwaddr()
936 struct usb_device *udev = dev_get_parent_priv(dev); in smsc95xx_eth_start() local
943 return smsc95xx_init_common(udev, &priv->ueth, priv, pdata->enetaddr); in smsc95xx_eth_start()
1020 struct usb_device *udev = dev_get_parent_priv(dev); in smsc95xx_write_hwaddr() local
1024 return smsc95xx_write_hwaddr_common(udev, priv, pdata->enetaddr); in smsc95xx_write_hwaddr()
1029 struct usb_device *udev = dev_get_parent_priv(dev); in smsc95xx_read_rom_hwaddr() local
1033 ret = smsc95xx_init_mac_address(pdata->enetaddr, udev); in smsc95xx_read_rom_hwaddr()