struct gether                   port;
        u8                              ctrl_id, data_id;
        u8                              ethaddr[ETH_ALEN];
+       u32                             vendorID;
+       const char                      *manufacturer;
        int                             config;
 
        struct usb_ep                   *notify;
        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
        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;
                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;
 
 
 #ifdef USB_ETH_RNDIS
 
-int rndis_bind_config(struct usb_configuration *c, u8 ethaddr[ETH_ALEN]);
+int rndis_bind_config_vendor(struct usb_configuration *c, u8 ethaddr[ETH_ALEN],
+                               u32 vendorID, const char *manufacturer);
 
 #else
 
 static inline 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)
 {
        return 0;
 }
 
 #endif
 
+/**
+ * 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.
+ */
+static inline int rndis_bind_config(struct usb_configuration *c,
+                                   u8 ethaddr[ETH_ALEN])
+{
+       return rndis_bind_config_vendor(c, ethaddr, 0, NULL);
+}
+
+
 #endif /* __U_ETHER_H */