mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-30 18:47:06 +00:00
c608f70325
Qualcomm SSDK is driver for Qualcomm Atheros switches and PHY-s. It is quite complicated and used by rest of the Qualcomm SDK stack for anything switch or PHY related. It is required for IPQ807x support as currently, there is no better driver for the built-in switch or UNIPHY. So, lets add the fixed-up version that supports kernel 5.15 for use on ipq807x target until a better driver is available. Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> Signed-off-by: Robert Marko <robimarko@gmail.com>
103 lines
3.7 KiB
Diff
103 lines
3.7 KiB
Diff
From 845a89b05aae807fb837f8e8f27f95c89de6023f Mon Sep 17 00:00:00 2001
|
|
From: Robert Marko <robimarko@gmail.com>
|
|
Date: Wed, 12 May 2021 13:45:45 +0200
|
|
Subject: [PATCH 02/11] SSDK: replace ioremap_nocache with ioremap
|
|
|
|
ioremap_nocache was dropped upstream, simply use the
|
|
generic variety.
|
|
|
|
Signed-off-by: Robert Marko <robimarko@gmail.com>
|
|
---
|
|
src/init/ssdk_clk.c | 10 +++++-----
|
|
src/init/ssdk_init.c | 2 +-
|
|
src/init/ssdk_plat.c | 6 +++---
|
|
3 files changed, 9 insertions(+), 9 deletions(-)
|
|
|
|
--- a/src/init/ssdk_clk.c
|
|
+++ b/src/init/ssdk_clk.c
|
|
@@ -721,7 +721,7 @@ ssdk_mp_tcsr_get(a_uint32_t tcsr_offset,
|
|
{
|
|
void __iomem *tcsr_base = NULL;
|
|
|
|
- tcsr_base = ioremap_nocache(TCSR_ETH_ADDR, TCSR_ETH_SIZE);
|
|
+ tcsr_base = ioremap(TCSR_ETH_ADDR, TCSR_ETH_SIZE);
|
|
if (!tcsr_base)
|
|
{
|
|
SSDK_ERROR("Failed to map tcsr eth address!\n");
|
|
@@ -738,7 +738,7 @@ ssdk_mp_tcsr_set(a_uint32_t tcsr_offset,
|
|
{
|
|
void __iomem *tcsr_base = NULL;
|
|
|
|
- tcsr_base = ioremap_nocache(TCSR_ETH_ADDR, TCSR_ETH_SIZE);
|
|
+ tcsr_base = ioremap(TCSR_ETH_ADDR, TCSR_ETH_SIZE);
|
|
if (!tcsr_base)
|
|
{
|
|
SSDK_ERROR("Failed to map tcsr eth address!\n");
|
|
@@ -786,7 +786,7 @@ ssdk_mp_cmnblk_stable_check(void)
|
|
a_uint32_t reg_val;
|
|
int i, loops = 20;
|
|
|
|
- pll_lock = ioremap_nocache(CMN_PLL_LOCKED_ADDR, CMN_PLL_LOCKED_SIZE);
|
|
+ pll_lock = ioremap(CMN_PLL_LOCKED_ADDR, CMN_PLL_LOCKED_SIZE);
|
|
if (!pll_lock) {
|
|
SSDK_ERROR("Failed to map CMN PLL LOCK register!\n");
|
|
return A_FALSE;
|
|
@@ -843,7 +843,7 @@ static void ssdk_cmnblk_pll_src_set(enum
|
|
void __iomem *cmn_pll_src_base = NULL;
|
|
a_uint32_t reg_val;
|
|
|
|
- cmn_pll_src_base = ioremap_nocache(CMN_BLK_PLL_SRC_ADDR, CMN_BLK_SIZE);
|
|
+ cmn_pll_src_base = ioremap(CMN_BLK_PLL_SRC_ADDR, CMN_BLK_SIZE);
|
|
if (!cmn_pll_src_base) {
|
|
SSDK_ERROR("Failed to map cmn pll source address!\n");
|
|
return;
|
|
@@ -869,7 +869,7 @@ static void ssdk_cmnblk_init(enum cmnblk
|
|
return;
|
|
}
|
|
|
|
- gcc_pll_base = ioremap_nocache(CMN_BLK_ADDR, CMN_BLK_SIZE);
|
|
+ gcc_pll_base = ioremap(CMN_BLK_ADDR, CMN_BLK_SIZE);
|
|
if (!gcc_pll_base) {
|
|
SSDK_ERROR("Failed to map gcc pll address!\n");
|
|
return;
|
|
--- a/src/init/ssdk_init.c
|
|
+++ b/src/init/ssdk_init.c
|
|
@@ -3134,7 +3134,7 @@ static int ssdk_dess_mac_mode_init(a_uin
|
|
(a_uint8_t *)®_value, 4);
|
|
mdelay(10);
|
|
/*softreset psgmii, fixme*/
|
|
- gcc_addr = ioremap_nocache(0x1812000, 0x200);
|
|
+ gcc_addr = ioremap(0x1812000, 0x200);
|
|
if (!gcc_addr) {
|
|
SSDK_ERROR("gcc map fail!\n");
|
|
return 0;
|
|
--- a/src/init/ssdk_plat.c
|
|
+++ b/src/init/ssdk_plat.c
|
|
@@ -1708,7 +1708,7 @@ ssdk_plat_init(ssdk_init_cfg *cfg, a_uin
|
|
reg_mode = ssdk_uniphy_reg_access_mode_get(dev_id);
|
|
if(reg_mode == HSL_REG_LOCAL_BUS) {
|
|
ssdk_uniphy_reg_map_info_get(dev_id, &map);
|
|
- qca_phy_priv_global[dev_id]->uniphy_hw_addr = ioremap_nocache(map.base_addr,
|
|
+ qca_phy_priv_global[dev_id]->uniphy_hw_addr = ioremap(map.base_addr,
|
|
map.size);
|
|
if (!qca_phy_priv_global[dev_id]->uniphy_hw_addr) {
|
|
SSDK_ERROR("%s ioremap fail.", __func__);
|
|
@@ -1723,7 +1723,7 @@ ssdk_plat_init(ssdk_init_cfg *cfg, a_uin
|
|
reg_mode = ssdk_switch_reg_access_mode_get(dev_id);
|
|
if (reg_mode == HSL_REG_LOCAL_BUS) {
|
|
ssdk_switch_reg_map_info_get(dev_id, &map);
|
|
- qca_phy_priv_global[dev_id]->hw_addr = ioremap_nocache(map.base_addr,
|
|
+ qca_phy_priv_global[dev_id]->hw_addr = ioremap(map.base_addr,
|
|
map.size);
|
|
if (!qca_phy_priv_global[dev_id]->hw_addr) {
|
|
SSDK_ERROR("%s ioremap fail.", __func__);
|
|
@@ -1764,7 +1764,7 @@ ssdk_plat_init(ssdk_init_cfg *cfg, a_uin
|
|
return -1;
|
|
}
|
|
|
|
- qca_phy_priv_global[dev_id]->psgmii_hw_addr = ioremap_nocache(map.base_addr,
|
|
+ qca_phy_priv_global[dev_id]->psgmii_hw_addr = ioremap(map.base_addr,
|
|
map.size);
|
|
if (!qca_phy_priv_global[dev_id]->psgmii_hw_addr) {
|
|
SSDK_ERROR("%s ioremap fail.", __func__);
|