sr9800.c (e700ac213a0f793fb4f83098413303e3dd080892) sr9800.c (2674e7ea22ba0e22a2d1603bd51e0b8f6442a267)
1/* CoreChip-sz SR9800 one chip USB 2.0 Ethernet Devices
2 *
3 * Author : Liu Junliang <liujunliang_ljl@163.com>
4 *
5 * Based on asix_common.c, asix_devices.c
6 *
7 * This file is licensed under the terms of the GNU General Public License
8 * version 2. This program is licensed "as is" without any warranty of any

--- 489 unchanged lines hidden (view full) ---

498 struct sr_data *data = (struct sr_data *)&dev->data;
499 struct sockaddr *addr = p;
500
501 if (netif_running(net))
502 return -EBUSY;
503 if (!is_valid_ether_addr(addr->sa_data))
504 return -EADDRNOTAVAIL;
505
1/* CoreChip-sz SR9800 one chip USB 2.0 Ethernet Devices
2 *
3 * Author : Liu Junliang <liujunliang_ljl@163.com>
4 *
5 * Based on asix_common.c, asix_devices.c
6 *
7 * This file is licensed under the terms of the GNU General Public License
8 * version 2. This program is licensed "as is" without any warranty of any

--- 489 unchanged lines hidden (view full) ---

498 struct sr_data *data = (struct sr_data *)&dev->data;
499 struct sockaddr *addr = p;
500
501 if (netif_running(net))
502 return -EBUSY;
503 if (!is_valid_ether_addr(addr->sa_data))
504 return -EADDRNOTAVAIL;
505
506 memcpy(net->dev_addr, addr->sa_data, ETH_ALEN);
506 eth_hw_addr_set(net, addr->sa_data);
507
508 /* We use the 20 byte dev->data
509 * for our 6 byte mac buffer
510 * to avoid allocating memory that
511 * is tricky to free later
512 */
513 memcpy(data->mac_addr, addr->sa_data, ETH_ALEN);
514 sr_write_cmd_async(dev, SR_CMD_WRITE_NODE_ID, 0, 0, ETH_ALEN,

--- 211 unchanged lines hidden (view full) ---

726 return 0;
727}
728
729static int sr9800_bind(struct usbnet *dev, struct usb_interface *intf)
730{
731 struct sr_data *data = (struct sr_data *)&dev->data;
732 u16 led01_mux, led23_mux;
733 int ret, embd_phy;
507
508 /* We use the 20 byte dev->data
509 * for our 6 byte mac buffer
510 * to avoid allocating memory that
511 * is tricky to free later
512 */
513 memcpy(data->mac_addr, addr->sa_data, ETH_ALEN);
514 sr_write_cmd_async(dev, SR_CMD_WRITE_NODE_ID, 0, 0, ETH_ALEN,

--- 211 unchanged lines hidden (view full) ---

726 return 0;
727}
728
729static int sr9800_bind(struct usbnet *dev, struct usb_interface *intf)
730{
731 struct sr_data *data = (struct sr_data *)&dev->data;
732 u16 led01_mux, led23_mux;
733 int ret, embd_phy;
734 u8 addr[ETH_ALEN];
734 u32 phyid;
735 u16 rx_ctl;
736
737 data->eeprom_len = SR9800_EEPROM_LEN;
738
739 usbnet_get_endpoints(dev, intf);
740
741 /* LED Setting Rule :

--- 7 unchanged lines hidden (view full) ---

749 led23_mux = (SR_LED_MUX_LINK_ACTIVE << 8) | SR_LED_MUX_TX_ACTIVE;
750 ret = sr_write_cmd(dev, SR_CMD_LED_MUX, led01_mux, led23_mux, 0, NULL);
751 if (ret < 0) {
752 netdev_err(dev->net, "set LINK LED failed : %d\n", ret);
753 goto out;
754 }
755
756 /* Get the MAC address */
735 u32 phyid;
736 u16 rx_ctl;
737
738 data->eeprom_len = SR9800_EEPROM_LEN;
739
740 usbnet_get_endpoints(dev, intf);
741
742 /* LED Setting Rule :

--- 7 unchanged lines hidden (view full) ---

750 led23_mux = (SR_LED_MUX_LINK_ACTIVE << 8) | SR_LED_MUX_TX_ACTIVE;
751 ret = sr_write_cmd(dev, SR_CMD_LED_MUX, led01_mux, led23_mux, 0, NULL);
752 if (ret < 0) {
753 netdev_err(dev->net, "set LINK LED failed : %d\n", ret);
754 goto out;
755 }
756
757 /* Get the MAC address */
757 ret = sr_read_cmd(dev, SR_CMD_READ_NODE_ID, 0, 0, ETH_ALEN,
758 dev->net->dev_addr);
758 ret = sr_read_cmd(dev, SR_CMD_READ_NODE_ID, 0, 0, ETH_ALEN, addr);
759 if (ret < 0) {
760 netdev_dbg(dev->net, "Failed to read MAC address: %d\n", ret);
761 return ret;
762 }
759 if (ret < 0) {
760 netdev_dbg(dev->net, "Failed to read MAC address: %d\n", ret);
761 return ret;
762 }
763 eth_hw_addr_set(dev->net, addr);
763 netdev_dbg(dev->net, "mac addr : %pM\n", dev->net->dev_addr);
764
765 /* Initialize MII structure */
766 dev->mii.dev = dev->net;
767 dev->mii.mdio_read = sr_mdio_read;
768 dev->mii.mdio_write = sr_mdio_write;
769 dev->mii.phy_id_mask = 0x1f;
770 dev->mii.reg_num_mask = 0x1f;

--- 104 unchanged lines hidden ---
764 netdev_dbg(dev->net, "mac addr : %pM\n", dev->net->dev_addr);
765
766 /* Initialize MII structure */
767 dev->mii.dev = dev->net;
768 dev->mii.mdio_read = sr_mdio_read;
769 dev->mii.mdio_write = sr_mdio_write;
770 dev->mii.phy_id_mask = 0x1f;
771 dev->mii.reg_num_mask = 0x1f;

--- 104 unchanged lines hidden ---