diff options
author | Heikki Krogerus <heikki.krogerus@linux.intel.com> | 2019-02-01 13:47:55 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-02-08 10:25:12 +0100 |
commit | b0fcdffdd6262d49d509a2945b2c2375a84f28af (patch) | |
tree | 3d304e6effdc004331db9e4838aaadf2ad716ebf /drivers/usb | |
parent | 382e8fa80da1571271faf1bd2220ac22cee13866 (diff) | |
download | linux-b0fcdffdd6262d49d509a2945b2c2375a84f28af.tar.bz2 |
usb: typec: Prepare alt mode enter/exit reporting for UCSI alt mode support
Because of UCSI, we have to support alt mode enter/exit
reporting even when there is no alt mode driver bind to the
alt mode device. With UCSI a firmware handles the alternate
modes, and the modes are entered automatically from OS PoW.
Changing typec_altmode_update_active() so that the driver
module ref count is incremented/decremented only if there
really is a driver for the alt mode. That avoids a NULL
pointer dereference from happening when the driver is
missing.
Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/typec/class.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/typec/class.c b/drivers/usb/typec/class.c index 5db0593ca0bd..41c0d790a50f 100644 --- a/drivers/usb/typec/class.c +++ b/drivers/usb/typec/class.c @@ -277,7 +277,7 @@ void typec_altmode_update_active(struct typec_altmode *adev, bool active) if (adev->active == active) return; - if (!is_typec_port(adev->dev.parent)) { + if (!is_typec_port(adev->dev.parent) && adev->dev.driver) { if (!active) module_put(adev->dev.driver->owner); else |