|
@@ -71,6 +71,8 @@ struct f_rndis {
|
|
|
struct gether port;
|
|
|
u8 ctrl_id, data_id;
|
|
|
u8 ethaddr[ETH_ALEN];
|
|
|
+ u32 vendorID;
|
|
|
+ const char *manufacturer;
|
|
|
int config;
|
|
|
|
|
|
struct usb_ep *notify;
|
|
@@ -768,12 +770,10 @@ rndis_bind(struct usb_configuration *c, struct usb_function *f)
|
|
|
rndis_set_param_medium(rndis->config, NDIS_MEDIUM_802_3, 0);
|
|
|
rndis_set_host_mac(rndis->config, rndis->ethaddr);
|
|
|
|
|
|
-#if 0
|
|
|
-// FIXME
|
|
|
- if (rndis_set_param_vendor(rndis->config, vendorID,
|
|
|
- manufacturer))
|
|
|
- goto fail0;
|
|
|
-#endif
|
|
|
+ if (rndis->manufacturer && rndis->vendorID &&
|
|
|
+ rndis_set_param_vendor(rndis->config, rndis->vendorID,
|
|
|
+ rndis->manufacturer))
|
|
|
+ goto fail;
|
|
|
|
|
|
/* NOTE: all that is done without knowing or caring about
|
|
|
* the network link ... which is unavailable to this code
|
|
@@ -841,20 +841,9 @@ static inline bool can_support_rndis(struct usb_configuration *c)
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
-/**
|
|
|
- * rndis_bind_config - add RNDIS network link to a configuration
|
|
|
- * @c: the configuration to support the network link
|
|
|
- * @ethaddr: a buffer in which the ethernet address of the host side
|
|
|
- * side of the link was recorded
|
|
|
- * Context: single threaded during gadget setup
|
|
|
- *
|
|
|
- * Returns zero on success, else negative errno.
|
|
|
- *
|
|
|
- * Caller must have called @gether_setup(). Caller is also responsible
|
|
|
- * for calling @gether_cleanup() before module unload.
|
|
|
- */
|
|
|
int
|
|
|
-rndis_bind_config(struct usb_configuration *c, u8 ethaddr[ETH_ALEN])
|
|
|
+rndis_bind_config_vendor(struct usb_configuration *c, u8 ethaddr[ETH_ALEN],
|
|
|
+ u32 vendorID, const char *manufacturer)
|
|
|
{
|
|
|
struct f_rndis *rndis;
|
|
|
int status;
|
|
@@ -899,6 +888,8 @@ rndis_bind_config(struct usb_configuration *c, u8 ethaddr[ETH_ALEN])
|
|
|
goto fail;
|
|
|
|
|
|
memcpy(rndis->ethaddr, ethaddr, ETH_ALEN);
|
|
|
+ rndis->vendorID = vendorID;
|
|
|
+ rndis->manufacturer = manufacturer;
|
|
|
|
|
|
/* RNDIS activates when the host changes this filter */
|
|
|
rndis->port.cdc_filter = 0;
|