From 2b163b082a5760f85b78d57c51e2d0be480c2766 Mon Sep 17 00:00:00 2001 From: Vijayavardhan Vennapusa Date: Thu, 25 Apr 2019 15:03:06 +0530 Subject: 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 --- drivers/usb/misc/ks_bridge.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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 #include #include +#include #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); -- cgit v1.2.3