[PATCH 36/41] usb: eth: r8152: Remove non-DM_ETH code
Tom Rini
trini at konsulko.com
Sun Nov 27 16:25:31 CET 2022
As DM_ETH is required for all network drivers, it's now safe to remove
the non-DM_ETH support code.
Signed-off-by: Tom Rini <trini at konsulko.com>
---
drivers/usb/eth/r8152.c | 275 ----------------------------------------
drivers/usb/eth/r8152.h | 2 -
2 files changed, 277 deletions(-)
diff --git a/drivers/usb/eth/r8152.c b/drivers/usb/eth/r8152.c
index 1aaa5a79b3f6..3c866f4f1e2d 100644
--- a/drivers/usb/eth/r8152.c
+++ b/drivers/usb/eth/r8152.c
@@ -18,43 +18,6 @@
#include "usb_ether.h"
#include "r8152.h"
-#ifndef CONFIG_DM_ETH
-/* local vars */
-static int curr_eth_dev; /* index for name of next device detected */
-
-struct r8152_dongle {
- unsigned short vendor;
- unsigned short product;
-};
-
-static const struct r8152_dongle r8152_dongles[] = {
- /* Realtek */
- { 0x0bda, 0x8050 },
- { 0x0bda, 0x8152 },
- { 0x0bda, 0x8153 },
-
- /* Samsung */
- { 0x04e8, 0xa101 },
-
- /* Lenovo */
- { 0x17ef, 0x304f },
- { 0x17ef, 0x3052 },
- { 0x17ef, 0x3054 },
- { 0x17ef, 0x3057 },
- { 0x17ef, 0x7205 },
- { 0x17ef, 0x720a },
- { 0x17ef, 0x720b },
- { 0x17ef, 0x720c },
-
- /* TP-LINK */
- { 0x2357, 0x0601 },
- { 0x2357, 0x0602 },
-
- /* Nvidia */
- { 0x0955, 0x09ff },
-};
-#endif
-
struct r8152_version {
unsigned short tcr;
unsigned short version;
@@ -1479,243 +1442,6 @@ static int r8152_send_common(struct ueth_data *ueth, void *packet, int length)
return err;
}
-#ifndef CONFIG_DM_ETH
-static int r8152_init(struct eth_device *eth, struct bd_info *bd)
-{
- struct ueth_data *dev = (struct ueth_data *)eth->priv;
- struct r8152 *tp = (struct r8152 *)dev->dev_priv;
-
- return r8152_init_common(tp);
-}
-
-static int r8152_send(struct eth_device *eth, void *packet, int length)
-{
- struct ueth_data *dev = (struct ueth_data *)eth->priv;
-
- return r8152_send_common(dev, packet, length);
-}
-
-static int r8152_recv(struct eth_device *eth)
-{
- struct ueth_data *dev = (struct ueth_data *)eth->priv;
-
- ALLOC_CACHE_ALIGN_BUFFER(uint8_t, recv_buf, RTL8152_AGG_BUF_SZ);
- unsigned char *pkt_ptr;
- int err;
- int actual_len;
- u16 packet_len;
-
- u32 bytes_process = 0;
- struct rx_desc *rx_desc;
-
- debug("** %s()\n", __func__);
-
- err = usb_bulk_msg(dev->pusb_dev,
- usb_rcvbulkpipe(dev->pusb_dev, dev->ep_in),
- (void *)recv_buf,
- RTL8152_AGG_BUF_SZ,
- &actual_len,
- USB_BULK_RECV_TIMEOUT);
- debug("Rx: len = %u, actual = %u, err = %d\n", RTL8152_AGG_BUF_SZ,
- actual_len, err);
- if (err != 0) {
- debug("Rx: failed to receive\n");
- return -1;
- }
- if (actual_len > RTL8152_AGG_BUF_SZ) {
- debug("Rx: received too many bytes %d\n", actual_len);
- return -1;
- }
-
- while (bytes_process < actual_len) {
- rx_desc = (struct rx_desc *)(recv_buf + bytes_process);
- pkt_ptr = recv_buf + sizeof(struct rx_desc) + bytes_process;
-
- packet_len = le32_to_cpu(rx_desc->opts1) & RX_LEN_MASK;
- packet_len -= CRC_SIZE;
-
- net_process_received_packet(pkt_ptr, packet_len);
-
- bytes_process +=
- (packet_len + sizeof(struct rx_desc) + CRC_SIZE);
-
- if (bytes_process % 8)
- bytes_process = bytes_process + 8 - (bytes_process % 8);
- }
-
- return 0;
-}
-
-static void r8152_halt(struct eth_device *eth)
-{
- struct ueth_data *dev = (struct ueth_data *)eth->priv;
- struct r8152 *tp = (struct r8152 *)dev->dev_priv;
-
- debug("** %s()\n", __func__);
-
- tp->rtl_ops.disable(tp);
-}
-
-static int r8152_write_hwaddr(struct eth_device *eth)
-{
- struct ueth_data *dev = (struct ueth_data *)eth->priv;
- struct r8152 *tp = (struct r8152 *)dev->dev_priv;
-
- unsigned char enetaddr[8] = {0};
-
- memcpy(enetaddr, eth->enetaddr, ETH_ALEN);
-
- ocp_write_byte(tp, MCU_TYPE_PLA, PLA_CRWECR, CRWECR_CONFIG);
- pla_ocp_write(tp, PLA_IDR, BYTE_EN_SIX_BYTES, 8, enetaddr);
- ocp_write_byte(tp, MCU_TYPE_PLA, PLA_CRWECR, CRWECR_NORAML);
-
- debug("MAC %pM\n", eth->enetaddr);
- return 0;
-}
-
-void r8152_eth_before_probe(void)
-{
- curr_eth_dev = 0;
-}
-
-/* Probe to see if a new device is actually an realtek device */
-int r8152_eth_probe(struct usb_device *dev, unsigned int ifnum,
- struct ueth_data *ss)
-{
- struct usb_interface *iface;
- struct usb_interface_descriptor *iface_desc;
- int ep_in_found = 0, ep_out_found = 0;
- struct r8152 *tp;
- int i;
-
- /* let's examine the device now */
- iface = &dev->config.if_desc[ifnum];
- iface_desc = &dev->config.if_desc[ifnum].desc;
-
- for (i = 0; i < ARRAY_SIZE(r8152_dongles); i++) {
- if (dev->descriptor.idVendor == r8152_dongles[i].vendor &&
- dev->descriptor.idProduct == r8152_dongles[i].product)
- /* Found a supported dongle */
- break;
- }
-
- if (i == ARRAY_SIZE(r8152_dongles))
- return 0;
-
- memset(ss, 0, sizeof(struct ueth_data));
-
- /* At this point, we know we've got a live one */
- debug("\n\nUSB Ethernet device detected: %#04x:%#04x\n",
- dev->descriptor.idVendor, dev->descriptor.idProduct);
-
- /* Initialize the ueth_data structure with some useful info */
- ss->ifnum = ifnum;
- ss->pusb_dev = dev;
- ss->subclass = iface_desc->bInterfaceSubClass;
- ss->protocol = iface_desc->bInterfaceProtocol;
-
- /* alloc driver private */
- ss->dev_priv = calloc(1, sizeof(struct r8152));
-
- if (!ss->dev_priv)
- return 0;
-
- /*
- * We are expecting a minimum of 3 endpoints - in, out (bulk), and
- * int. We will ignore any others.
- */
- for (i = 0; i < iface_desc->bNumEndpoints; i++) {
- /* is it an BULK endpoint? */
- if ((iface->ep_desc[i].bmAttributes &
- USB_ENDPOINT_XFERTYPE_MASK) == USB_ENDPOINT_XFER_BULK) {
- u8 ep_addr = iface->ep_desc[i].bEndpointAddress;
-
- if (ep_addr & USB_DIR_IN) {
- if (!ep_in_found) {
- ss->ep_in = ep_addr &
- USB_ENDPOINT_NUMBER_MASK;
- ep_in_found = 1;
- }
- } else {
- if (!ep_out_found) {
- ss->ep_out = ep_addr &
- USB_ENDPOINT_NUMBER_MASK;
- ep_out_found = 1;
- }
- }
- }
-
- /* is it an interrupt endpoint? */
- if ((iface->ep_desc[i].bmAttributes &
- USB_ENDPOINT_XFERTYPE_MASK) == USB_ENDPOINT_XFER_INT) {
- ss->ep_int = iface->ep_desc[i].bEndpointAddress &
- USB_ENDPOINT_NUMBER_MASK;
- ss->irqinterval = iface->ep_desc[i].bInterval;
- }
- }
-
- debug("Endpoints In %d Out %d Int %d\n",
- ss->ep_in, ss->ep_out, ss->ep_int);
-
- /* Do some basic sanity checks, and bail if we find a problem */
- if (usb_set_interface(dev, iface_desc->bInterfaceNumber, 0) ||
- !ss->ep_in || !ss->ep_out || !ss->ep_int) {
- debug("Problems with device\n");
- goto error;
- }
-
- dev->privptr = (void *)ss;
-
- tp = ss->dev_priv;
- tp->udev = dev;
- tp->intf = iface;
-
- r8152b_get_version(tp);
-
- if (rtl_ops_init(tp))
- goto error;
-
- tp->rtl_ops.init(tp);
- tp->rtl_ops.up(tp);
-
- rtl8152_set_speed(tp, AUTONEG_ENABLE,
- tp->supports_gmii ? SPEED_1000 : SPEED_100,
- DUPLEX_FULL);
-
- return 1;
-
-error:
- cfree(ss->dev_priv);
- ss->dev_priv = 0;
- return 0;
-}
-
-int r8152_eth_get_info(struct usb_device *dev, struct ueth_data *ss,
- struct eth_device *eth)
-{
- if (!eth) {
- debug("%s: missing parameter.\n", __func__);
- return 0;
- }
-
- sprintf(eth->name, "%s#%d", R8152_BASE_NAME, curr_eth_dev++);
- eth->init = r8152_init;
- eth->send = r8152_send;
- eth->recv = r8152_recv;
- eth->halt = r8152_halt;
- eth->write_hwaddr = r8152_write_hwaddr;
- eth->priv = ss;
-
- /* Get the MAC address */
- if (r8152_read_mac(ss->dev_priv, eth->enetaddr) < 0)
- return 0;
-
- debug("MAC %pM\n", eth->enetaddr);
- return 1;
-}
-#endif /* !CONFIG_DM_ETH */
-
-#ifdef CONFIG_DM_ETH
static int r8152_eth_start(struct udevice *dev)
{
struct r8152 *tp = dev_get_priv(dev);
@@ -1895,4 +1621,3 @@ static const struct usb_device_id r8152_eth_id_table[] = {
};
U_BOOT_USB_DEVICE(r8152_eth, r8152_eth_id_table);
-#endif /* CONFIG_DM_ETH */
diff --git a/drivers/usb/eth/r8152.h b/drivers/usb/eth/r8152.h
index 45172c055f42..7b128b1934b6 100644
--- a/drivers/usb/eth/r8152.h
+++ b/drivers/usb/eth/r8152.h
@@ -642,9 +642,7 @@ struct r8152 {
u8 version;
-#ifdef CONFIG_DM_ETH
struct ueth_data ueth;
-#endif
};
int generic_ocp_write(struct r8152 *tp, u16 index, u16 byteen,
--
2.25.1
More information about the U-Boot
mailing list