diff options
| author | Vijayavardhan Vennapusa <vvreddy@codeaurora.org> | 2019-04-25 15:03:06 +0530 |
|---|---|---|
| committer | Vijayavardhan Vennapusa <vvreddy@codeaurora.org> | 2019-05-08 11:32:46 +0530 |
| commit | 2b163b082a5760f85b78d57c51e2d0be480c2766 (patch) | |
| tree | 9269b14cf0eae1671bd62273f796ac9a7ab1774c /drivers/usb/misc/ks_bridge.c | |
| parent | 3d1854afebdb70d642b6c012a09e32f12b3dbd1f (diff) | |
misc: ksbridge: Add support for sending uevent with pid/vid
Add required support in ksbridge driver to send uevent with vendor id
and product id details.
Change-Id: I22974dfa63665e6ddcbda2f7d11c68f716c1c760
Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
Diffstat (limited to 'drivers/usb/misc/ks_bridge.c')
| -rw-r--r-- | drivers/usb/misc/ks_bridge.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/usb/misc/ks_bridge.c b/drivers/usb/misc/ks_bridge.c index 715bf840def8..56e6fbabdf40 100644 --- a/drivers/usb/misc/ks_bridge.c +++ b/drivers/usb/misc/ks_bridge.c @@ -30,6 +30,7 @@ #include <linux/list.h> #include <linux/wait.h> #include <linux/poll.h> +#include <linux/kobject.h> #define DRIVER_DESC "USB host ks bridge driver" @@ -670,6 +671,17 @@ static void ksb_start_rx_work(struct work_struct *w) usb_autopm_put_interface_async(ksb->ifc); } +static void ks_bridge_notify_status(struct kobject *kobj, + const struct usb_device_id *id) +{ + char product_info[32]; + char *envp[2] = { product_info, NULL }; + + snprintf(product_info, sizeof(product_info), "PRODUCT=%x/%x/%x", + id->idVendor, id->idProduct, id->bDeviceProtocol); + kobject_uevent_env(kobj, KOBJ_ONLINE, envp); +} + static int ksb_usb_probe(struct usb_interface *ifc, const struct usb_device_id *id) { @@ -854,6 +866,8 @@ ksb_usb_probe(struct usb_interface *ifc, const struct usb_device_id *id) if (free_mdev) kfree(mdev); + + ks_bridge_notify_status(&ksb->device->kobj, id); dev_dbg(&udev->dev, "usb dev connected"); return 0; @@ -925,6 +939,7 @@ static void ksb_usb_disconnect(struct usb_interface *ifc) dbg_log_event(ksb, "PID-DETACH", 0, 0); clear_bit(USB_DEV_CONNECTED, &ksb->flags); + kobject_uevent(&ksb->device->kobj, KOBJ_OFFLINE); wake_up(&ksb->ks_wait_q); cancel_work_sync(&ksb->to_mdm_work); cancel_work_sync(&ksb->start_rx_work); |
