]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
ath10k: add device type enum to ath10k_bus_params
authorErik Stromdahl <erik.stromdahl@gmail.com>
Tue, 4 Sep 2018 12:03:44 +0000 (15:03 +0300)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 6 Sep 2018 16:13:58 +0000 (19:13 +0300)
Add dev_type parameter to struct ath10k_bus_params.

The dev type specifies if the device is a high latency device (usb and
sdio) or low latency device (pci, ahb and snoc)

The setup of high latency chips is sometimes different than
for chips using low latency interfaces.

Signed-off-by: Erik Stromdahl <erik.stromdahl@gmail.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/ath/ath10k/ahb.c
drivers/net/wireless/ath/ath10k/core.c
drivers/net/wireless/ath/ath10k/core.h
drivers/net/wireless/ath/ath10k/pci.c
drivers/net/wireless/ath/ath10k/sdio.c
drivers/net/wireless/ath/ath10k/snoc.c
drivers/net/wireless/ath/ath10k/usb.c

index cfe45529d508fc011787dfad50631e54decc3083..4cd69aca75e2029a5d70fd38c1c69b1d62c6fb28 100644 (file)
@@ -806,6 +806,7 @@ static int ath10k_ahb_probe(struct platform_device *pdev)
 
        ath10k_pci_ce_deinit(ar);
 
+       bus_params.dev_type = ATH10K_DEV_TYPE_LL;
        bus_params.chip_id = ath10k_ahb_soc_read32(ar, SOC_CHIP_ID_ADDRESS);
        if (bus_params.chip_id == 0xffffffff) {
                ath10k_err(ar, "failed to get chip id\n");
index df8e7f7a8d2b37f174b0fd1636f93cbef5342d1f..93f5a21de9c706208f6b8d21369d6c4d5ba0896d 100644 (file)
@@ -2928,6 +2928,7 @@ int ath10k_core_register(struct ath10k *ar,
                         const struct ath10k_bus_params *bus_params)
 {
        ar->chip_id = bus_params->chip_id;
+       ar->dev_type = bus_params->dev_type;
        queue_work(ar->workqueue, &ar->register_work);
 
        return 0;
index 5505ead32206562a9e59ca408a9e1bed46493845..61631ab30f65222466e975c66bb4e94b5f9e65c6 100644 (file)
@@ -915,8 +915,14 @@ struct ath10k_per_peer_tx_stats {
        u32     reserved2;
 };
 
+enum ath10k_dev_type {
+       ATH10K_DEV_TYPE_LL,
+       ATH10K_DEV_TYPE_HL,
+};
+
 struct ath10k_bus_params {
        u32 chip_id;
+       enum ath10k_dev_type dev_type;
 };
 
 struct ath10k {
@@ -929,6 +935,7 @@ struct ath10k {
        enum ath10k_hw_rev hw_rev;
        u16 dev_id;
        u32 chip_id;
+       enum ath10k_dev_type dev_type;
        u32 target_version;
        u8 fw_version_major;
        u32 fw_version_minor;
index c337a8b6d166ee85798a7d678896aef1c7f23586..873dbb65439f5208833a8b8ea028d9ac695ec1c9 100644 (file)
@@ -3637,6 +3637,7 @@ static int ath10k_pci_probe(struct pci_dev *pdev,
                goto err_free_irq;
        }
 
+       bus_params.dev_type = ATH10K_DEV_TYPE_LL;
        bus_params.chip_id = ath10k_pci_soc_read32(ar, SOC_CHIP_ID_ADDRESS);
        if (bus_params.chip_id == 0xffffffff) {
                ath10k_err(ar, "failed to get chip id\n");
index 1d4fd23f0134568a7d415dd1a7ce5da78b3c536c..983ecfef1d281743044a4638eaf538a8b19e69c4 100644 (file)
@@ -2036,6 +2036,7 @@ static int ath10k_sdio_probe(struct sdio_func *func,
                goto err_free_wq;
        }
 
+       bus_params.dev_type = ATH10K_DEV_TYPE_HL;
        /* TODO: don't know yet how to get chip_id with SDIO */
        bus_params.chip_id = 0;
        ret = ath10k_core_register(ar, &bus_params);
index 21b525a8ace3ef21032464217bbc2ba887419639..b83edb9144c392229824f19fcb96e83ceecc39a3 100644 (file)
@@ -1351,6 +1351,7 @@ static int ath10k_snoc_probe(struct platform_device *pdev)
                goto err_free_irq;
        }
 
+       bus_params.dev_type = ATH10K_DEV_TYPE_LL;
        bus_params.chip_id = drv_data->hw_rev;
        ret = ath10k_core_register(ar, &bus_params);
        if (ret) {
index 275e00bafcb18958e2314f516cbdf80f5ae3907a..f731d35ee76d2be60ae839ed53996535bd0c6949 100644 (file)
@@ -1016,6 +1016,7 @@ static int ath10k_usb_probe(struct usb_interface *interface,
        ar->id.vendor = vendor_id;
        ar->id.device = product_id;
 
+       bus_params.dev_type = ATH10K_DEV_TYPE_HL;
        /* TODO: don't know yet how to get chip_id with USB */
        bus_params.chip_id = 0;
        ret = ath10k_core_register(ar, &bus_params);