From: Jayachandran Sreekumaran Date: Wed, 19 Dec 2018 07:49:03 +0000 (+0530) Subject: cnss2: Add cnss usb API to check the target status X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=2bf8ef1af34678427b99b9552b0971dbdcf92d50;p=sagit-ice-cold%2Fkernel_xiaomi_msm8998.git cnss2: Add cnss usb API to check the target status Add new cnss usb API to check to check whether the target is up or down. Remove invoking pld_remove callback function in usb disconnect. Change-Id: I0e873737a27f9941db1dae54636ef55ba4d05288 Signed-off-by: Jayachandran Sreekumaran --- diff --git a/drivers/net/wireless/cnss2/usb.c b/drivers/net/wireless/cnss2/usb.c index 70aba70757cf..18915715edfd 100644 --- a/drivers/net/wireless/cnss2/usb.c +++ b/drivers/net/wireless/cnss2/usb.c @@ -71,6 +71,25 @@ void cnss_usb_wlan_unregister_driver(struct cnss_usb_wlan_driver *driver_ops) } EXPORT_SYMBOL(cnss_usb_wlan_unregister_driver); +int cnss_usb_is_device_down(struct device *dev) +{ + struct cnss_plat_data *plat_priv = cnss_bus_dev_to_plat_priv(dev); + struct cnss_usb_data *usb_priv; + + if (!plat_priv) { + cnss_pr_err("plat_priv is NULL\n"); + return -ENODEV; + } + + usb_priv = plat_priv->bus_priv; + if (!usb_priv) { + cnss_pr_err("usb_priv is NULL\n"); + return -ENODEV; + } + return 0; +} +EXPORT_SYMBOL(cnss_usb_is_device_down); + int cnss_usb_register_driver_hdlr(struct cnss_usb_data *usb_priv, void *data) { @@ -262,10 +281,6 @@ static void cnss_usb_remove(struct usb_interface *interface) struct cnss_usb_data *usb_priv = plat_priv->bus_priv; cnss_pr_dbg("driver state %lu\n", plat_priv->driver_state); - if (usb_priv->driver_ops) { - cnss_pr_dbg("driver_op remove called for USB\n"); - usb_priv->driver_ops->remove(usb_priv->usb_intf); - } cnss_unregister_ramdump(plat_priv); cnss_unregister_subsys(plat_priv); usb_priv->plat_priv = NULL; diff --git a/include/net/cnss2.h b/include/net/cnss2.h index 8dc7fc44aa02..85634842834e 100644 --- a/include/net/cnss2.h +++ b/include/net/cnss2.h @@ -234,4 +234,6 @@ extern int cnss_set_fw_log_mode(struct device *dev, uint8_t fw_log_mode); extern int cnss_usb_wlan_register_driver(struct cnss_usb_wlan_driver *driver); extern void cnss_usb_wlan_unregister_driver(struct cnss_usb_wlan_driver * driver); +extern int cnss_usb_is_device_down(struct device *dev); + #endif /* _NET_CNSS2_H */