.. | .. |
---|
| 1 | +// SPDX-License-Identifier: ISC |
---|
1 | 2 | /* |
---|
2 | 3 | * Copyright (c) 2016-2017 Qualcomm Atheros, Inc. All rights reserved. |
---|
3 | 4 | * 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. |
---|
16 | 5 | */ |
---|
17 | 6 | #include <linux/module.h> |
---|
18 | 7 | #include <linux/of.h> |
---|
.. | .. |
---|
469 | 458 | |
---|
470 | 459 | ar_ahb->mem_len = resource_size(res); |
---|
471 | 460 | |
---|
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); |
---|
474 | 463 | if (!ar_ahb->gcc_mem) { |
---|
475 | 464 | ath10k_err(ar, "gcc mem ioremap error\n"); |
---|
476 | 465 | ret = -ENOMEM; |
---|
477 | 466 | goto err_mem_unmap; |
---|
478 | 467 | } |
---|
479 | 468 | |
---|
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); |
---|
482 | 471 | if (!ar_ahb->tcsr_mem) { |
---|
483 | 472 | ath10k_err(ar, "tcsr mem ioremap error\n"); |
---|
484 | 473 | ret = -ENOMEM; |
---|
.. | .. |
---|
661 | 650 | ath10k_pci_flush(ar); |
---|
662 | 651 | } |
---|
663 | 652 | |
---|
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) |
---|
665 | 655 | { |
---|
666 | 656 | int ret; |
---|
667 | 657 | |
---|
.. | .. |
---|
750 | 740 | enum ath10k_hw_rev hw_rev; |
---|
751 | 741 | size_t size; |
---|
752 | 742 | int ret; |
---|
753 | | - u32 chip_id; |
---|
| 743 | + struct ath10k_bus_params bus_params = {}; |
---|
754 | 744 | |
---|
755 | 745 | of_id = of_match_device(ath10k_ahb_of_match, &pdev->dev); |
---|
756 | 746 | if (!of_id) { |
---|
.. | .. |
---|
806 | 796 | |
---|
807 | 797 | ath10k_pci_ce_deinit(ar); |
---|
808 | 798 | |
---|
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) { |
---|
811 | 802 | ath10k_err(ar, "failed to get chip id\n"); |
---|
812 | 803 | ret = -ENODEV; |
---|
813 | 804 | goto err_halt_device; |
---|
814 | 805 | } |
---|
815 | 806 | |
---|
816 | | - ret = ath10k_core_register(ar, chip_id); |
---|
| 807 | + ret = ath10k_core_register(ar, &bus_params); |
---|
817 | 808 | if (ret) { |
---|
818 | 809 | ath10k_err(ar, "failed to register driver core: %d\n", ret); |
---|
819 | 810 | goto err_halt_device; |
---|
.. | .. |
---|
829 | 820 | ath10k_ahb_release_irq_legacy(ar); |
---|
830 | 821 | |
---|
831 | 822 | err_free_pipes: |
---|
832 | | - ath10k_pci_free_pipes(ar); |
---|
| 823 | + ath10k_pci_release_resource(ar); |
---|
833 | 824 | |
---|
834 | 825 | err_resource_deinit: |
---|
835 | 826 | ath10k_ahb_resource_deinit(ar); |
---|