OSDN Git Service

cnss2: Add cnss usb API to check the target status
authorJayachandran Sreekumaran <jsreekum@codeaurora.org>
Wed, 19 Dec 2018 07:49:03 +0000 (13:19 +0530)
committerJayachandran Sreekumaran <jsreekum@codeaurora.org>
Tue, 8 Jan 2019 06:24:01 +0000 (11:54 +0530)
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 <jsreekum@codeaurora.org>
drivers/net/wireless/cnss2/usb.c
include/net/cnss2.h

index 70aba70..1891571 100644 (file)
@@ -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;
index 8dc7fc4..8563484 100644 (file)
@@ -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 */