iPXE
smsc75xx.h File Reference

SMSC LAN75xx USB Ethernet driver. More...

#include "smscusb.h"

Go to the source code of this file.

Data Structures

struct  smsc75xx_rx_header
 Receive packet header. More...
struct  smsc75xx_tx_header
 Transmit packet header. More...
struct  smsc75xx_byte_statistics
 Byte count statistics. More...
struct  smsc75xx_frame_statistics
 Frame count statistics. More...
struct  smsc75xx_rx_error_statistics
 Receive error statistics. More...
struct  smsc75xx_rx_statistics
 Receive statistics. More...
struct  smsc75xx_tx_error_statistics
 Transmit error statistics. More...
struct  smsc75xx_tx_statistics
 Transmit statistics. More...
struct  smsc75xx_statistics
 Statistics. More...

Macros

#define SMSC75XX_INT_STS   0x00c
 Interrupt status register.
#define SMSC75XX_INT_STS_RDFO_INT   0x00400000UL
 RX FIFO overflow.
#define SMSC75XX_INT_STS_PHY_INT   0x00020000UL
 PHY interrupt.
#define SMSC75XX_HW_CFG   0x010
 Hardware configuration register.
#define SMSC75XX_HW_CFG_BIR   0x00000080UL
 Bulk IN use NAK.
#define SMSC75XX_HW_CFG_LRST   0x00000002UL
 Soft lite reset.
#define SMSC75XX_INT_EP_CTL   0x038
 Interrupt endpoint control register.
#define SMSC75XX_INT_EP_CTL_RDFO_EN   0x00400000UL
 RX FIFO overflow.
#define SMSC75XX_INT_EP_CTL_PHY_EN   0x00020000UL
 PHY interrupt.
#define SMSC75XX_BULK_IN_DLY   0x03c
 Bulk IN delay register.
#define SMSC75XX_BULK_IN_DLY_SET(ticks)
 Delay / 16.7ns.
#define SMSC75XX_E2P_BASE   0x040
 EEPROM register base.
#define SMSC75XX_RFE_CTL   0x060
 Receive filtering engine control register.
#define SMSC75XX_RFE_CTL_AB   0x00000400UL
 Accept broadcast.
#define SMSC75XX_RFE_CTL_AM   0x00000200UL
 Accept multicast.
#define SMSC75XX_RFE_CTL_AU   0x00000100UL
 Accept unicast.
#define SMSC75XX_FCT_RX_CTL   0x090
 FIFO controller RX FIFO control register.
#define SMSC75XX_FCT_RX_CTL_EN   0x80000000UL
 FCT RX enable.
#define SMSC75XX_FCT_RX_CTL_BAD   0x02000000UL
 Store bad frames.
#define SMSC75XX_FCT_TX_CTL   0x094
 FIFO controller TX FIFO control register.
#define SMSC75XX_FCT_TX_CTL_EN   0x80000000UL
 FCT TX enable.
#define SMSC75XX_MAC_RX   0x104
 MAC receive register.
#define SMSC75XX_MAC_RX_MAX_SIZE(mtu)
 Max frame size.
#define SMSC75XX_MAC_RX_MAX_SIZE_DEFAULT    SMSC75XX_MAC_RX_MAX_SIZE ( ETH_FRAME_LEN + 4 /* VLAN */ + 4 /* CRC */ )
#define SMSC75XX_MAC_RX_FCS   0x00000010UL
 FCS stripping.
#define SMSC75XX_MAC_RX_EN   0x00000001UL
 RX enable.
#define SMSC75XX_MAC_TX   0x108
 MAC transmit register.
#define SMSC75XX_MAC_TX_EN   0x00000001UL
 TX enable.
#define SMSC75XX_RX_ADDR_BASE   0x118
 MAC receive address register base.
#define SMSC75XX_MII_BASE   0x120
 MII register base.
#define SMSC75XX_MII_PHY_INTR_SOURCE   29
 PHY interrupt source MII register.
#define SMSC75XX_MII_PHY_INTR_MASK   30
 PHY interrupt mask MII register.
#define SMSC75XX_PHY_INTR_ANEG_DONE   0x0040
 PHY interrupt: auto-negotiation complete.
#define SMSC75XX_PHY_INTR_LINK_DOWN   0x0010
 PHY interrupt: link down.
#define SMSC75XX_ADDR_FILT_BASE   0x300
 MAC address perfect filter register base.
#define SMSC75XX_RX_RED   0x00400000UL
 Receive error detected.
#define SMSC75XX_TX_FCS   0x00400000UL
 Insert frame checksum and pad.
#define SMSC75XX_RESET_MAX_WAIT_MS   100
 Maximum time to wait for reset (in milliseconds)
#define SMSC75XX_IN_MAX_FILL   8
 Bulk IN maximum fill level.
#define SMSC75XX_IN_MTU
 Bulk IN buffer size.

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)
 FILE_SECBOOT (PERMITTED)
int smsc75xx_dump_statistics (struct smscusb_device *smscusb)
 Dump statistics (for debugging)
int smsc75xx_transmit (struct net_device *netdev, struct io_buffer *iobuf)
 Transmit packet.
void smsc75xx_poll (struct net_device *netdev)
 Poll for completed and received packets.

Variables

struct usb_endpoint_driver_operations smsc75xx_in_operations
 Bulk IN endpoint operations.

Detailed Description

SMSC LAN75xx USB Ethernet driver.

Definition in file smsc75xx.h.

Macro Definition Documentation

◆ SMSC75XX_INT_STS

#define SMSC75XX_INT_STS   0x00c

Interrupt status register.

Definition at line 16 of file smsc75xx.h.

Referenced by smsc75xx_poll().

◆ SMSC75XX_INT_STS_RDFO_INT

#define SMSC75XX_INT_STS_RDFO_INT   0x00400000UL

RX FIFO overflow.

Definition at line 17 of file smsc75xx.h.

Referenced by smsc75xx_poll().

◆ SMSC75XX_INT_STS_PHY_INT

#define SMSC75XX_INT_STS_PHY_INT   0x00020000UL

PHY interrupt.

Definition at line 18 of file smsc75xx.h.

Referenced by smsc75xx_poll().

◆ SMSC75XX_HW_CFG

#define SMSC75XX_HW_CFG   0x010

Hardware configuration register.

Definition at line 21 of file smsc75xx.h.

Referenced by smsc75xx_open(), and smsc75xx_reset().

◆ SMSC75XX_HW_CFG_BIR

#define SMSC75XX_HW_CFG_BIR   0x00000080UL

Bulk IN use NAK.

Definition at line 22 of file smsc75xx.h.

Referenced by smsc75xx_open().

◆ SMSC75XX_HW_CFG_LRST

#define SMSC75XX_HW_CFG_LRST   0x00000002UL

Soft lite reset.

Definition at line 23 of file smsc75xx.h.

Referenced by smsc75xx_reset().

◆ SMSC75XX_INT_EP_CTL

#define SMSC75XX_INT_EP_CTL   0x038

Interrupt endpoint control register.

Definition at line 26 of file smsc75xx.h.

Referenced by smsc75xx_open().

◆ SMSC75XX_INT_EP_CTL_RDFO_EN

#define SMSC75XX_INT_EP_CTL_RDFO_EN   0x00400000UL

RX FIFO overflow.

Definition at line 27 of file smsc75xx.h.

Referenced by smsc75xx_open().

◆ SMSC75XX_INT_EP_CTL_PHY_EN

#define SMSC75XX_INT_EP_CTL_PHY_EN   0x00020000UL

PHY interrupt.

Definition at line 28 of file smsc75xx.h.

Referenced by smsc75xx_open().

◆ SMSC75XX_BULK_IN_DLY

#define SMSC75XX_BULK_IN_DLY   0x03c

Bulk IN delay register.

Definition at line 31 of file smsc75xx.h.

Referenced by smsc75xx_open().

◆ SMSC75XX_BULK_IN_DLY_SET

#define SMSC75XX_BULK_IN_DLY_SET ( ticks)
Value:
( (ticks) << 0 )

Delay / 16.7ns.

Definition at line 32 of file smsc75xx.h.

Referenced by smsc75xx_open().

◆ SMSC75XX_E2P_BASE

#define SMSC75XX_E2P_BASE   0x040

EEPROM register base.

Definition at line 35 of file smsc75xx.h.

Referenced by smsc75xx_probe().

◆ SMSC75XX_RFE_CTL

#define SMSC75XX_RFE_CTL   0x060

Receive filtering engine control register.

Definition at line 38 of file smsc75xx.h.

Referenced by smsc75xx_open().

◆ SMSC75XX_RFE_CTL_AB

#define SMSC75XX_RFE_CTL_AB   0x00000400UL

Accept broadcast.

Definition at line 39 of file smsc75xx.h.

Referenced by smsc75xx_open().

◆ SMSC75XX_RFE_CTL_AM

#define SMSC75XX_RFE_CTL_AM   0x00000200UL

Accept multicast.

Definition at line 40 of file smsc75xx.h.

Referenced by smsc75xx_open().

◆ SMSC75XX_RFE_CTL_AU

#define SMSC75XX_RFE_CTL_AU   0x00000100UL

Accept unicast.

Definition at line 41 of file smsc75xx.h.

Referenced by smsc75xx_open().

◆ SMSC75XX_FCT_RX_CTL

#define SMSC75XX_FCT_RX_CTL   0x090

FIFO controller RX FIFO control register.

Definition at line 44 of file smsc75xx.h.

Referenced by smsc75xx_open().

◆ SMSC75XX_FCT_RX_CTL_EN

#define SMSC75XX_FCT_RX_CTL_EN   0x80000000UL

FCT RX enable.

Definition at line 45 of file smsc75xx.h.

Referenced by smsc75xx_open().

◆ SMSC75XX_FCT_RX_CTL_BAD

#define SMSC75XX_FCT_RX_CTL_BAD   0x02000000UL

Store bad frames.

Definition at line 46 of file smsc75xx.h.

Referenced by smsc75xx_open().

◆ SMSC75XX_FCT_TX_CTL

#define SMSC75XX_FCT_TX_CTL   0x094

FIFO controller TX FIFO control register.

Definition at line 49 of file smsc75xx.h.

Referenced by smsc75xx_open().

◆ SMSC75XX_FCT_TX_CTL_EN

#define SMSC75XX_FCT_TX_CTL_EN   0x80000000UL

FCT TX enable.

Definition at line 50 of file smsc75xx.h.

Referenced by smsc75xx_open().

◆ SMSC75XX_MAC_RX

#define SMSC75XX_MAC_RX   0x104

MAC receive register.

Definition at line 53 of file smsc75xx.h.

Referenced by smsc75xx_open().

◆ SMSC75XX_MAC_RX_MAX_SIZE

#define SMSC75XX_MAC_RX_MAX_SIZE ( mtu)
Value:
( (mtu) << 16 )
uint32_t mtu
Maximum MTU.
Definition ena.h:17

Max frame size.

Definition at line 54 of file smsc75xx.h.

◆ SMSC75XX_MAC_RX_MAX_SIZE_DEFAULT

#define SMSC75XX_MAC_RX_MAX_SIZE_DEFAULT    SMSC75XX_MAC_RX_MAX_SIZE ( ETH_FRAME_LEN + 4 /* VLAN */ + 4 /* CRC */ )

Definition at line 55 of file smsc75xx.h.

55#define SMSC75XX_MAC_RX_MAX_SIZE_DEFAULT \
56 SMSC75XX_MAC_RX_MAX_SIZE ( ETH_FRAME_LEN + 4 /* VLAN */ + 4 /* CRC */ )

Referenced by smsc75xx_open().

◆ SMSC75XX_MAC_RX_FCS

#define SMSC75XX_MAC_RX_FCS   0x00000010UL

FCS stripping.

Definition at line 57 of file smsc75xx.h.

Referenced by smsc75xx_open().

◆ SMSC75XX_MAC_RX_EN

#define SMSC75XX_MAC_RX_EN   0x00000001UL

RX enable.

Definition at line 58 of file smsc75xx.h.

Referenced by smsc75xx_open().

◆ SMSC75XX_MAC_TX

#define SMSC75XX_MAC_TX   0x108

MAC transmit register.

Definition at line 61 of file smsc75xx.h.

Referenced by smsc75xx_open().

◆ SMSC75XX_MAC_TX_EN

#define SMSC75XX_MAC_TX_EN   0x00000001UL

TX enable.

Definition at line 62 of file smsc75xx.h.

Referenced by smsc75xx_open().

◆ SMSC75XX_RX_ADDR_BASE

#define SMSC75XX_RX_ADDR_BASE   0x118

MAC receive address register base.

Definition at line 65 of file smsc75xx.h.

Referenced by smsc75xx_open().

◆ SMSC75XX_MII_BASE

#define SMSC75XX_MII_BASE   0x120

MII register base.

Definition at line 68 of file smsc75xx.h.

Referenced by smsc75xx_probe().

◆ SMSC75XX_MII_PHY_INTR_SOURCE

#define SMSC75XX_MII_PHY_INTR_SOURCE   29

PHY interrupt source MII register.

Definition at line 71 of file smsc75xx.h.

Referenced by smsc75xx_probe().

◆ SMSC75XX_MII_PHY_INTR_MASK

#define SMSC75XX_MII_PHY_INTR_MASK   30

PHY interrupt mask MII register.

Definition at line 74 of file smsc75xx.h.

Referenced by smsc75xx_open().

◆ SMSC75XX_PHY_INTR_ANEG_DONE

#define SMSC75XX_PHY_INTR_ANEG_DONE   0x0040

PHY interrupt: auto-negotiation complete.

Definition at line 77 of file smsc75xx.h.

Referenced by smsc75xx_open().

◆ SMSC75XX_PHY_INTR_LINK_DOWN

#define SMSC75XX_PHY_INTR_LINK_DOWN   0x0010

PHY interrupt: link down.

Definition at line 80 of file smsc75xx.h.

Referenced by smsc75xx_open().

◆ SMSC75XX_ADDR_FILT_BASE

#define SMSC75XX_ADDR_FILT_BASE   0x300

MAC address perfect filter register base.

Definition at line 83 of file smsc75xx.h.

Referenced by smsc75xx_open().

◆ SMSC75XX_RX_RED

#define SMSC75XX_RX_RED   0x00400000UL

Receive error detected.

Definition at line 98 of file smsc75xx.h.

Referenced by smsc75xx_in_complete().

◆ SMSC75XX_TX_FCS

#define SMSC75XX_TX_FCS   0x00400000UL

Insert frame checksum and pad.

Definition at line 111 of file smsc75xx.h.

Referenced by smsc75xx_out_transmit().

◆ SMSC75XX_RESET_MAX_WAIT_MS

#define SMSC75XX_RESET_MAX_WAIT_MS   100

Maximum time to wait for reset (in milliseconds)

Definition at line 204 of file smsc75xx.h.

Referenced by smsc75xx_reset().

◆ SMSC75XX_IN_MAX_FILL

#define SMSC75XX_IN_MAX_FILL   8

Bulk IN maximum fill level.

This is a policy decision.

Definition at line 210 of file smsc75xx.h.

Referenced by lan78xx_probe(), and smsc75xx_probe().

◆ SMSC75XX_IN_MTU

#define SMSC75XX_IN_MTU
Value:
( sizeof ( struct smsc75xx_rx_header ) + \
ETH_FRAME_LEN + 4 /* possible VLAN header */ )
#define ETH_FRAME_LEN
Definition if_ether.h:12
Receive packet header.
Definition smsc75xx.h:86

Bulk IN buffer size.

Definition at line 213 of file smsc75xx.h.

213#define SMSC75XX_IN_MTU \
214 ( sizeof ( struct smsc75xx_rx_header ) + \
215 ETH_FRAME_LEN + 4 /* possible VLAN header */ )

Referenced by lan78xx_probe(), and smsc75xx_probe().

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL )

◆ FILE_SECBOOT()

FILE_SECBOOT ( PERMITTED )

◆ smsc75xx_dump_statistics()

int smsc75xx_dump_statistics ( struct smscusb_device * smscusb)
extern

Dump statistics (for debugging)

Parameters
smscusbSMSC USB device
Return values
rcReturn status code

Definition at line 64 of file smsc75xx.c.

64 {
65 struct smsc75xx_statistics stats;
66 int rc;
67
68 /* Do nothing unless debugging is enabled */
69 if ( ! DBG_LOG )
70 return 0;
71
72 /* Get statistics */
73 if ( ( rc = smscusb_get_statistics ( smscusb, 0, &stats,
74 sizeof ( stats ) ) ) != 0 ) {
75 DBGC ( smscusb, "SMSC75XX %p could not get statistics: "
76 "%s\n", smscusb, strerror ( rc ) );
77 return rc;
78 }
79
80 /* Dump statistics */
81 DBGC ( smscusb, "SMSC75XX %p RXE fcs %d aln %d frg %d jab %d und %d "
82 "ovr %d drp %d\n", smscusb, le32_to_cpu ( stats.rx.err.fcs ),
83 le32_to_cpu ( stats.rx.err.alignment ),
84 le32_to_cpu ( stats.rx.err.fragment ),
85 le32_to_cpu ( stats.rx.err.jabber ),
86 le32_to_cpu ( stats.rx.err.undersize ),
87 le32_to_cpu ( stats.rx.err.oversize ),
88 le32_to_cpu ( stats.rx.err.dropped ) );
89 DBGC ( smscusb, "SMSC75XX %p RXB ucast %d bcast %d mcast %d\n",
90 smscusb, le32_to_cpu ( stats.rx.byte.unicast ),
91 le32_to_cpu ( stats.rx.byte.broadcast ),
92 le32_to_cpu ( stats.rx.byte.multicast ) );
93 DBGC ( smscusb, "SMSC75XX %p RXF ucast %d bcast %d mcast %d pause "
94 "%d\n", smscusb, le32_to_cpu ( stats.rx.frame.unicast ),
95 le32_to_cpu ( stats.rx.frame.broadcast ),
96 le32_to_cpu ( stats.rx.frame.multicast ),
97 le32_to_cpu ( stats.rx.frame.pause ) );
98 DBGC ( smscusb, "SMSC75XX %p TXE fcs %d def %d car %d cnt %d sgl %d "
99 "mul %d exc %d lat %d\n", smscusb,
100 le32_to_cpu ( stats.tx.err.fcs ),
101 le32_to_cpu ( stats.tx.err.deferral ),
102 le32_to_cpu ( stats.tx.err.carrier ),
103 le32_to_cpu ( stats.tx.err.count ),
104 le32_to_cpu ( stats.tx.err.single ),
105 le32_to_cpu ( stats.tx.err.multiple ),
106 le32_to_cpu ( stats.tx.err.excessive ),
107 le32_to_cpu ( stats.tx.err.late ) );
108 DBGC ( smscusb, "SMSC75XX %p TXB ucast %d bcast %d mcast %d\n",
109 smscusb, le32_to_cpu ( stats.tx.byte.unicast ),
110 le32_to_cpu ( stats.tx.byte.broadcast ),
111 le32_to_cpu ( stats.tx.byte.multicast ) );
112 DBGC ( smscusb, "SMSC75XX %p TXF ucast %d bcast %d mcast %d pause "
113 "%d\n", smscusb, le32_to_cpu ( stats.tx.frame.unicast ),
114 le32_to_cpu ( stats.tx.frame.broadcast ),
115 le32_to_cpu ( stats.tx.frame.multicast ),
116 le32_to_cpu ( stats.tx.frame.pause ) );
117
118 return 0;
119}
struct arbelprm_rc_send_wqe rc
Definition arbel.h:3
#define DBGC(...)
Definition compiler.h:505
#define DBG_LOG
Definition compiler.h:317
#define le32_to_cpu(value)
Definition byteswap.h:114
static int smscusb_get_statistics(struct smscusb_device *smscusb, unsigned int index, void *data, size_t len)
Get statistics.
Definition smscusb.h:223
char * strerror(int errno)
Retrieve string representation of error number.
Definition strerror.c:79
Statistics.
Definition smsc75xx.h:196

References smsc75xx_rx_error_statistics::alignment, smsc75xx_byte_statistics::broadcast, smsc75xx_frame_statistics::broadcast, smsc75xx_rx_statistics::byte, smsc75xx_tx_statistics::byte, smsc75xx_tx_error_statistics::carrier, smsc75xx_tx_error_statistics::count, DBG_LOG, DBGC, smsc75xx_tx_error_statistics::deferral, smsc75xx_rx_error_statistics::dropped, smsc75xx_rx_statistics::err, smsc75xx_tx_statistics::err, smsc75xx_tx_error_statistics::excessive, smsc75xx_rx_error_statistics::fcs, smsc75xx_tx_error_statistics::fcs, smsc75xx_rx_error_statistics::fragment, smsc75xx_rx_statistics::frame, smsc75xx_tx_statistics::frame, smsc75xx_rx_error_statistics::jabber, smsc75xx_tx_error_statistics::late, le32_to_cpu, smsc75xx_byte_statistics::multicast, smsc75xx_frame_statistics::multicast, smsc75xx_tx_error_statistics::multiple, smsc75xx_rx_error_statistics::oversize, smsc75xx_frame_statistics::pause, rc, smsc75xx_statistics::rx, smsc75xx_tx_error_statistics::single, smscusb_get_statistics(), strerror(), smsc75xx_statistics::tx, smsc75xx_rx_error_statistics::undersize, smsc75xx_byte_statistics::unicast, and smsc75xx_frame_statistics::unicast.

Referenced by lan78xx_close(), and smsc75xx_close().

◆ smsc75xx_transmit()

int smsc75xx_transmit ( struct net_device * netdev,
struct io_buffer * iobuf )
extern

Transmit packet.

Parameters
netdevNetwork device
iobufI/O buffer
Return values
rcReturn status code

Definition at line 404 of file smsc75xx.c.

404 {
405 struct smscusb_device *smscusb = netdev->priv;
406 int rc;
407
408 /* Transmit packet */
409 if ( ( rc = smsc75xx_out_transmit ( smscusb, iobuf ) ) != 0 )
410 return rc;
411
412 return 0;
413}
static struct net_device * netdev
Definition gdbudp.c:53
static int smsc75xx_out_transmit(struct smscusb_device *smscusb, struct io_buffer *iobuf)
Transmit packet.
Definition smsc75xx.c:245
An SMSC USB device.
Definition smscusb.h:145

References netdev, rc, and smsc75xx_out_transmit().

◆ smsc75xx_poll()

void smsc75xx_poll ( struct net_device * netdev)
extern

Poll for completed and received packets.

Parameters
netdevNetwork device

Definition at line 420 of file smsc75xx.c.

420 {
421 struct smscusb_device *smscusb = netdev->priv;
423 int rc;
424
425 /* Poll USB bus */
426 usb_poll ( smscusb->bus );
427
428 /* Refill endpoints */
429 if ( ( rc = usbnet_refill ( &smscusb->usbnet ) ) != 0 )
431
432 /* Do nothing more unless there are interrupts to handle */
433 int_sts = smscusb->int_sts;
434 if ( ! int_sts )
435 return;
436
437 /* Check link status if applicable */
439 smscusb_mii_check_link ( smscusb );
441 }
442
443 /* Record RX FIFO overflow if applicable */
445 DBGC2 ( smscusb, "SMSC75XX %p RX FIFO overflowed\n", smscusb );
448 }
449
450 /* Check for unexpected interrupts */
451 if ( int_sts ) {
452 DBGC ( smscusb, "SMSC75XX %p unexpected interrupt %#08x\n",
453 smscusb, int_sts );
455 }
456
457 /* Clear interrupts */
458 if ( ( rc = smscusb_writel ( smscusb, SMSC75XX_INT_STS,
459 smscusb->int_sts ) ) != 0 )
461 smscusb->int_sts = 0;
462}
#define NULL
NULL pointer (VOID *)
Definition Base.h:322
unsigned int uint32_t
Definition stdint.h:12
#define DBGC2(...)
Definition compiler.h:522
#define ENOBUFS
No buffer space available.
Definition errno.h:499
#define ENOTTY
Inappropriate I/O control operation.
Definition errno.h:595
static void usb_poll(struct usb_bus *bus)
Poll USB bus.
Definition usb.h:1072
void netdev_rx_err(struct net_device *netdev, struct io_buffer *iobuf, int rc)
Discard received packet.
Definition netdevice.c:587
#define SMSC75XX_INT_STS_PHY_INT
PHY interrupt.
Definition smsc75xx.h:18
#define SMSC75XX_INT_STS_RDFO_INT
RX FIFO overflow.
Definition smsc75xx.h:17
#define SMSC75XX_INT_STS
Interrupt status register.
Definition smsc75xx.h:16
int smscusb_mii_check_link(struct smscusb_device *smscusb)
Check link status.
Definition smscusb.c:614
static int smscusb_writel(struct smscusb_device *smscusb, unsigned int address, uint32_t value)
Write register.
Definition smscusb.h:180
struct usb_bus * bus
USB bus.
Definition smscusb.h:149
uint32_t int_sts
Interrupt status.
Definition smscusb.h:163
struct usbnet_device usbnet
USB network device.
Definition smscusb.h:153
int usbnet_refill(struct usbnet_device *usbnet)
Refill USB network device bulk IN and interrupt endpoints.
Definition usbnet.c:152

References smscusb_device::bus, DBGC, DBGC2, ENOBUFS, ENOTTY, smscusb_device::int_sts, netdev, netdev_rx_err(), NULL, rc, SMSC75XX_INT_STS, SMSC75XX_INT_STS_PHY_INT, SMSC75XX_INT_STS_RDFO_INT, smscusb_mii_check_link(), smscusb_writel(), usb_poll(), smscusb_device::usbnet, and usbnet_refill().

Variable Documentation

◆ smsc75xx_in_operations

struct usb_endpoint_driver_operations smsc75xx_in_operations
extern

Bulk IN endpoint operations.

Definition at line 234 of file smsc75xx.c.

234 {
235 .complete = smsc75xx_in_complete,
236};
static void smsc75xx_in_complete(struct usb_endpoint *ep, struct io_buffer *iobuf, int rc)
Complete bulk IN transfer.
Definition smsc75xx.c:177

Referenced by lan78xx_probe(), and smsc75xx_probe().