ath10k: htc: simplified credit distribution
authorErik Stromdahl <erik.stromdahl@gmail.com>
Wed, 11 Jan 2017 14:32:10 +0000 (16:32 +0200)
committerKalle Valo <kvalo@qca.qualcomm.com>
Thu, 12 Jan 2017 10:51:29 +0000 (12:51 +0200)
Simplified transmit credit distribution code somewhat.
Since the WMI control service will get assigned all credits
there is no need for having a credit_allocation array in
struct ath10k_htc.

Signed-off-by: Erik Stromdahl <erik.stromdahl@gmail.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath10k/htc.c
drivers/net/wireless/ath/ath10k/htc.h

index f2e065958c879983e3c8969f40cee5e6c6448fdb..9f6a915f91bfe842a1672b81a8b6046c7f9d4f1b 100644 (file)
@@ -474,33 +474,16 @@ static void ath10k_htc_reset_endpoint_states(struct ath10k_htc *htc)
        }
 }
 
-static void ath10k_htc_setup_target_buffer_assignments(struct ath10k_htc *htc)
-{
-       struct ath10k_htc_svc_tx_credits *entry;
-
-       entry = &htc->service_tx_alloc[0];
-
-       /*
-        * for PCIE allocate all credists/HTC buffers to WMI.
-        * no buffers are used/required for data. data always
-        * remains on host.
-        */
-       entry++;
-       entry->service_id = ATH10K_HTC_SVC_ID_WMI_CONTROL;
-       entry->credit_allocation = htc->total_transmit_credits;
-}
-
 static u8 ath10k_htc_get_credit_allocation(struct ath10k_htc *htc,
                                           u16 service_id)
 {
        u8 allocation = 0;
-       int i;
 
-       for (i = 0; i < ATH10K_HTC_EP_COUNT; i++) {
-               if (htc->service_tx_alloc[i].service_id == service_id)
-                       allocation =
-                           htc->service_tx_alloc[i].credit_allocation;
-       }
+       /* The WMI control service is the only service with flow control.
+        * Let it have all transmit credits.
+        */
+       if (service_id == ATH10K_HTC_SVC_ID_WMI_CONTROL)
+               allocation = htc->total_transmit_credits;
 
        return allocation;
 }
@@ -574,8 +557,6 @@ int ath10k_htc_wait_target(struct ath10k_htc *htc)
                return -ECOMM;
        }
 
-       ath10k_htc_setup_target_buffer_assignments(htc);
-
        /* setup our pseudo HTC control endpoint connection */
        memset(&conn_req, 0, sizeof(conn_req));
        memset(&conn_resp, 0, sizeof(conn_resp));
index ca150c91f181ac71766f96fc27e5256d90ed083e..6ababa345e2b94c169817f72cde649e235f1efc5 100644 (file)
@@ -337,7 +337,6 @@ struct ath10k_htc {
        struct completion ctl_resp;
 
        int total_transmit_credits;
-       struct ath10k_htc_svc_tx_credits service_tx_alloc[ATH10K_HTC_EP_COUNT];
        int target_credit_size;
 };