forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/drivers/net/wireless/ath/ath10k/ahb.c
....@@ -1,18 +1,7 @@
1
+// SPDX-License-Identifier: ISC
12 /*
23 * Copyright (c) 2016-2017 Qualcomm Atheros, Inc. All rights reserved.
34 * Copyright (c) 2015 The Linux Foundation. All rights reserved.
4
- *
5
- * Permission to use, copy, modify, and/or distribute this software for any
6
- * purpose with or without fee is hereby granted, provided that the above
7
- * copyright notice and this permission notice appear in all copies.
8
- *
9
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
165 */
176 #include <linux/module.h>
187 #include <linux/of.h>
....@@ -469,16 +458,16 @@
469458
470459 ar_ahb->mem_len = resource_size(res);
471460
472
- ar_ahb->gcc_mem = ioremap_nocache(ATH10K_GCC_REG_BASE,
473
- ATH10K_GCC_REG_SIZE);
461
+ ar_ahb->gcc_mem = ioremap(ATH10K_GCC_REG_BASE,
462
+ ATH10K_GCC_REG_SIZE);
474463 if (!ar_ahb->gcc_mem) {
475464 ath10k_err(ar, "gcc mem ioremap error\n");
476465 ret = -ENOMEM;
477466 goto err_mem_unmap;
478467 }
479468
480
- ar_ahb->tcsr_mem = ioremap_nocache(ATH10K_TCSR_REG_BASE,
481
- ATH10K_TCSR_REG_SIZE);
469
+ ar_ahb->tcsr_mem = ioremap(ATH10K_TCSR_REG_BASE,
470
+ ATH10K_TCSR_REG_SIZE);
482471 if (!ar_ahb->tcsr_mem) {
483472 ath10k_err(ar, "tcsr mem ioremap error\n");
484473 ret = -ENOMEM;
....@@ -661,7 +650,8 @@
661650 ath10k_pci_flush(ar);
662651 }
663652
664
-static int ath10k_ahb_hif_power_up(struct ath10k *ar)
653
+static int ath10k_ahb_hif_power_up(struct ath10k *ar,
654
+ enum ath10k_firmware_mode fw_mode)
665655 {
666656 int ret;
667657
....@@ -750,7 +740,7 @@
750740 enum ath10k_hw_rev hw_rev;
751741 size_t size;
752742 int ret;
753
- u32 chip_id;
743
+ struct ath10k_bus_params bus_params = {};
754744
755745 of_id = of_match_device(ath10k_ahb_of_match, &pdev->dev);
756746 if (!of_id) {
....@@ -806,14 +796,15 @@
806796
807797 ath10k_pci_ce_deinit(ar);
808798
809
- chip_id = ath10k_ahb_soc_read32(ar, SOC_CHIP_ID_ADDRESS);
810
- if (chip_id == 0xffffffff) {
799
+ bus_params.dev_type = ATH10K_DEV_TYPE_LL;
800
+ bus_params.chip_id = ath10k_ahb_soc_read32(ar, SOC_CHIP_ID_ADDRESS);
801
+ if (bus_params.chip_id == 0xffffffff) {
811802 ath10k_err(ar, "failed to get chip id\n");
812803 ret = -ENODEV;
813804 goto err_halt_device;
814805 }
815806
816
- ret = ath10k_core_register(ar, chip_id);
807
+ ret = ath10k_core_register(ar, &bus_params);
817808 if (ret) {
818809 ath10k_err(ar, "failed to register driver core: %d\n", ret);
819810 goto err_halt_device;
....@@ -829,7 +820,7 @@
829820 ath10k_ahb_release_irq_legacy(ar);
830821
831822 err_free_pipes:
832
- ath10k_pci_free_pipes(ar);
823
+ ath10k_pci_release_resource(ar);
833824
834825 err_resource_deinit:
835826 ath10k_ahb_resource_deinit(ar);