ath9k_htc: Optimize HTC start/stop API
authorSujith Manoharan <Sujith.Manoharan@atheros.com>
Wed, 13 Apr 2011 05:56:06 +0000 (11:26 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 13 Apr 2011 19:24:12 +0000 (15:24 -0400)
There is no point in looping over all the endpoints,
since the HIF layer uses the start/stop APIs only
for the TX pipe. Simplify the API accordingly.

Signed-off-by: Sujith Manoharan <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/hif_usb.c
drivers/net/wireless/ath/ath9k/htc_hst.c
drivers/net/wireless/ath/ath9k/htc_hst.h

index db07e7b..b3f23c2 100644 (file)
@@ -310,7 +310,7 @@ static int hif_usb_send_tx(struct hif_device_usb *hif_dev, struct sk_buff *skb)
        return 0;
 }
 
-static void hif_usb_start(void *hif_handle, u8 pipe_id)
+static void hif_usb_start(void *hif_handle)
 {
        struct hif_device_usb *hif_dev = (struct hif_device_usb *)hif_handle;
        unsigned long flags;
@@ -322,7 +322,7 @@ static void hif_usb_start(void *hif_handle, u8 pipe_id)
        spin_unlock_irqrestore(&hif_dev->tx.tx_lock, flags);
 }
 
-static void hif_usb_stop(void *hif_handle, u8 pipe_id)
+static void hif_usb_stop(void *hif_handle)
 {
        struct hif_device_usb *hif_dev = (struct hif_device_usb *)hif_handle;
        struct tx_buf *tx_buf = NULL, *tx_buf_tmp = NULL;
index be87f47..7ced8ab 100644 (file)
@@ -302,27 +302,12 @@ int htc_send_epid(struct htc_target *target, struct sk_buff *skb,
 
 void htc_stop(struct htc_target *target)
 {
-       enum htc_endpoint_id epid;
-       struct htc_endpoint *endpoint;
-
-       for (epid = ENDPOINT0; epid < ENDPOINT_MAX; epid++) {
-               endpoint = &target->endpoint[epid];
-               if (endpoint->service_id != 0)
-                       target->hif->stop(target->hif_dev, endpoint->ul_pipeid);
-       }
+       target->hif->stop(target->hif_dev);
 }
 
 void htc_start(struct htc_target *target)
 {
-       enum htc_endpoint_id epid;
-       struct htc_endpoint *endpoint;
-
-       for (epid = ENDPOINT0; epid < ENDPOINT_MAX; epid++) {
-               endpoint = &target->endpoint[epid];
-               if (endpoint->service_id != 0)
-                       target->hif->start(target->hif_dev,
-                                          endpoint->ul_pipeid);
-       }
+       target->hif->start(target->hif_dev);
 }
 
 void ath9k_htc_txcompletion_cb(struct htc_target *htc_handle,
index 064a324..191e3c0 100644 (file)
@@ -33,8 +33,8 @@ struct ath9k_htc_hif {
        u8 control_dl_pipe;
        u8 control_ul_pipe;
 
-       void (*start) (void *hif_handle, u8 pipe);
-       void (*stop) (void *hif_handle, u8 pipe);
+       void (*start) (void *hif_handle);
+       void (*stop) (void *hif_handle);
        int (*send) (void *hif_handle, u8 pipe, struct sk_buff *buf);
 };