Skip to content

Commit 992e328

Browse files
Loic PoulainAnas Nashif
authored andcommitted
usb: netusb: Rework netusb media connect/disconnect
Consider media connected when interface is selected by the host and disconnected on device diconnection. Signed-off-by: Loic Poulain <[email protected]>
1 parent f1275a7 commit 992e328

File tree

1 file changed

+18
-14
lines changed

1 file changed

+18
-14
lines changed

subsys/usb/class/netusb/netusb.c

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -84,23 +84,26 @@ static int netusb_disconnect_media(void)
8484
return netusb.func->connect_media(false);
8585
}
8686

87-
static void netusb_status_interface(u8_t *iface)
87+
static inline void netusb_status_interface(u8_t *iface)
8888
{
89-
SYS_LOG_INF("Enable interface %u", *iface);
89+
if (*iface != NETUSB_IFACE_IDX) {
90+
return;
91+
}
9092

91-
#if defined(CONFIG_USB_COMPOSITE_DEVICE)
92-
if (*iface == NETUSB_IFACE_IDX) {
93-
#else
94-
if (*iface == 1) {
95-
#endif
96-
netusb.enabled = true;
97-
net_if_up(netusb.iface);
98-
netusb_connect_media();
99-
} else {
100-
netusb.enabled = false;
101-
netusb_disconnect_media();
102-
net_if_down(netusb.iface);
93+
netusb.enabled = true;
94+
net_if_up(netusb.iface);
95+
netusb_connect_media();
96+
}
97+
98+
static inline void netusb_status_disconnected(void)
99+
{
100+
if (!netusb.enabled) {
101+
return;
103102
}
103+
104+
netusb.enabled = false;
105+
netusb_disconnect_media();
106+
net_if_down(netusb.iface);
104107
}
105108

106109
static void netusb_status_cb(enum usb_dc_status_code status, u8_t *param)
@@ -121,6 +124,7 @@ static void netusb_status_cb(enum usb_dc_status_code status, u8_t *param)
121124
break;
122125
case USB_DC_DISCONNECTED:
123126
SYS_LOG_DBG("USB device disconnected");
127+
netusb_status_disconnected();
124128
break;
125129
case USB_DC_SUSPEND:
126130
SYS_LOG_DBG("USB device suspended");

0 commit comments

Comments
 (0)