Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[smsc75xx] Expose functionality shared with LAN78xx devices
The LAN78xx datapath is essentially identical to that of the SMSC75xx.
Expose the transmit, poll, and bulk IN endpoint operations to allow
for reuse by the LAN78xx driver.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
  • Loading branch information
mcb30 committed Jul 10, 2017
1 parent 74f934a commit 1ee7f4e
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 6 deletions.
12 changes: 6 additions & 6 deletions src/drivers/net/smsc75xx.c
Expand Up @@ -60,7 +60,7 @@ static struct profiler smsc75xx_out_profiler __profiler =
* @v smscusb SMSC USB device
* @ret rc Return status code
*/
static int smsc75xx_dump_statistics ( struct smscusb_device *smscusb ) {
int smsc75xx_dump_statistics ( struct smscusb_device *smscusb ) {
struct smsc75xx_statistics stats;
int rc;

Expand Down Expand Up @@ -230,7 +230,7 @@ static void smsc75xx_in_complete ( struct usb_endpoint *ep,
}

/** Bulk IN endpoint operations */
static struct usb_endpoint_driver_operations smsc75xx_in_operations = {
struct usb_endpoint_driver_operations smsc75xx_in_operations = {
.complete = smsc75xx_in_complete,
};

Expand Down Expand Up @@ -386,7 +386,8 @@ static void smsc75xx_close ( struct net_device *netdev ) {
usbnet_close ( &smscusb->usbnet );

/* Dump statistics (for debugging) */
smsc75xx_dump_statistics ( smscusb );
if ( DBG_LOG )
smsc75xx_dump_statistics ( smscusb );

/* Reset device */
smsc75xx_reset ( smscusb );
Expand All @@ -399,8 +400,7 @@ static void smsc75xx_close ( struct net_device *netdev ) {
* @v iobuf I/O buffer
* @ret rc Return status code
*/
static int smsc75xx_transmit ( struct net_device *netdev,
struct io_buffer *iobuf ) {
int smsc75xx_transmit ( struct net_device *netdev, struct io_buffer *iobuf ) {
struct smscusb_device *smscusb = netdev->priv;
int rc;

Expand All @@ -416,7 +416,7 @@ static int smsc75xx_transmit ( struct net_device *netdev,
*
* @v netdev Network device
*/
static void smsc75xx_poll ( struct net_device *netdev ) {
void smsc75xx_poll ( struct net_device *netdev ) {
struct smscusb_device *smscusb = netdev->priv;
uint32_t int_sts;
int rc;
Expand Down
7 changes: 7 additions & 0 deletions src/drivers/net/smsc75xx.h
Expand Up @@ -213,4 +213,11 @@ struct smsc75xx_statistics {
( sizeof ( struct smsc75xx_rx_header ) + \
ETH_FRAME_LEN + 4 /* possible VLAN header */ )

extern struct usb_endpoint_driver_operations smsc75xx_in_operations;

extern int smsc75xx_dump_statistics ( struct smscusb_device *smscusb );
extern int smsc75xx_transmit ( struct net_device *netdev,
struct io_buffer *iobuf );
extern void smsc75xx_poll ( struct net_device *netdev );

#endif /* _SMSC75XX_H */

0 comments on commit 1ee7f4e

Please sign in to comment.