Merge "[Feature][T106]version update to T106-W-V2.01.01.02P56U05.AP.14.01_CAP.14.01"
diff --git a/ap/os/linux/linux-3.4.x/drivers/mmc/host/zx29_mmc-pltfm.c b/ap/os/linux/linux-3.4.x/drivers/mmc/host/zx29_mmc-pltfm.c
index 3431bfb..e3c1033 100755
--- a/ap/os/linux/linux-3.4.x/drivers/mmc/host/zx29_mmc-pltfm.c
+++ b/ap/os/linux/linux-3.4.x/drivers/mmc/host/zx29_mmc-pltfm.c
@@ -40,10 +40,7 @@
#endif
#include <mach/iomap.h>
#include <mach/gpio.h>
-//zw.wang The sdio0 pin is configured in gpio mode before and after wifi uninstallation on 20240514 on start
-static struct dw_mci *dw_mci_host_ptr[2];
-volatile u8 mmc0_data1_flag = 0xff;
-//zw.wang The sdio0 pin is configured in gpio mode before and after wifi uninstallation on 20240514 on end
+
static void dw_mci_rockchip_prepare_command(struct dw_mci *host, u32 *cmdr)
{
*cmdr |= SDMMC_CMD_USE_HOLD_REG;
@@ -131,166 +128,7 @@
DEVICE_ATTR(dw_regvalue, S_IRUGO | S_IWUSR, dw_regvalue_show, dw_regvalue_store);
-//zw.wang The sdio0 pin is configured in gpio mode before and after wifi uninstallation on 20240514 on start
-int sd_io_config(u32 sd_index, bool active_flag)
-{
- int rc = 0;
- struct dw_mci_board *brd;
- if(dw_mci_host_ptr[sd_index] == NULL){
- printk("%s mmc%d not used or failed\n",__func__,sd_index);
- return 0;
- }
- brd = dw_mci_host_ptr[sd_index]->pdata;
- if (active_flag)
- {
- if (sd_index == 0)
- {
- if (dw_mci_host_ptr[sd_index]->quirks & DW_MCI_QUIRK_SDIO)
- {
- if (mmc0_data1_flag != 0x1)
- {
- irq_set_irq_wake(brd->data1_irq, 1);
- mmc0_data1_flag = 0x1;
- }
- }
- rc = zx29_gpio_config(ZX29_GPIO_66, GPIO66_EMMC_CLK);
- if (rc)
- printk("%s gpio66 config err !rc = %d\n", __func__, rc);
- zx29_gpio_pd_pu_set(ZX29_GPIO_66, IO_CFG_PULL_DOWN);
- rc = zx29_gpio_config(ZX29_GPIO_67, GPIO67_EMMC_CMD);
- if (rc)
- printk("%s gpio67 config err !rc = %d\n", __func__, rc);
- zx29_gpio_pd_pu_set(ZX29_GPIO_67, IO_CFG_PULL_UP);
- rc = zx29_gpio_config(ZX29_GPIO_68, GPIO68_EMMC_DATA0);
- if (rc)
- printk("%s gpio68 config err !rc = %d\n", __func__, rc);
- zx29_gpio_pd_pu_set(ZX29_GPIO_68, IO_CFG_PULL_UP);
- rc = zx29_gpio_config(ZX29_GPIO_69, GPIO69_EMMC_DATA1);
- if (rc)
- printk("%s gpio69 config err !rc = %d\n", __func__, rc);
- zx29_gpio_pd_pu_set(ZX29_GPIO_69, IO_CFG_PULL_UP);
- rc = zx29_gpio_config(ZX29_GPIO_70, GPIO70_EMMC_DATA2);
- if (rc)
- printk("%s gpio70 config err !rc = %d\n", __func__, rc);
- zx29_gpio_pd_pu_set(ZX29_GPIO_70, IO_CFG_PULL_UP);
- rc = zx29_gpio_config(ZX29_GPIO_71, GPIO71_EMMC_DATA3);
- if (rc)
- printk("%s gpio71 config err !rc = %d\n", __func__, rc);
- zx29_gpio_pd_pu_set(ZX29_GPIO_71, IO_CFG_PULL_UP);
- }
- else if (sd_index == 1)
- {
- rc = zx29_gpio_config(ZX29_GPIO_72, GPIO72_SD1_HOST_SDCLK);
- if (rc)
- printk("%s gpio72 config err !rc = %d\n", __func__, rc);
- zx29_gpio_pd_pu_set(ZX29_GPIO_72, IO_CFG_PULL_DISABLE);
- rc = zx29_gpio_config(ZX29_GPIO_73, GPIO73_SD1_CMD);
- if (rc)
- printk("%s gpio73 config err !rc = %d\n", __func__, rc);
- zx29_gpio_pd_pu_set(ZX29_GPIO_73, IO_CFG_PULL_UP);
- rc = zx29_gpio_config(ZX29_GPIO_74, GPIO74_SD1_DATA0);
- if (rc)
- printk("%s gpio74 config err !rc = %d\n", __func__, rc);
- zx29_gpio_pd_pu_set(ZX29_GPIO_74, IO_CFG_PULL_UP);
- rc = zx29_gpio_config(ZX29_GPIO_75, GPIO75_SD1_DATA1);
- if (rc)
- printk("%s gpio75 config err !rc = %d\n", __func__, rc);
- zx29_gpio_pd_pu_set(ZX29_GPIO_75, IO_CFG_PULL_UP);
- rc = zx29_gpio_config(ZX29_GPIO_76, GPIO76_SD1_DATA2);
- if (rc)
- printk("%s gpio76 config err !rc = %d\n", __func__, rc);
- zx29_gpio_pd_pu_set(ZX29_GPIO_76, IO_CFG_PULL_UP);
- rc = zx29_gpio_config(ZX29_GPIO_77, GPIO77_SD1_DATA3);
- if (rc)
- printk("%s gpio77 config err !rc = %d\n", __func__, rc);
- zx29_gpio_pd_pu_set(ZX29_GPIO_77, IO_CFG_PULL_UP);
- }
- else
- printk("%s index error %d\n", __func__, sd_index);
- }
- else
- {
- if (sd_index == 0)
- {
- if (dw_mci_host_ptr[sd_index]->quirks & DW_MCI_QUIRK_SDIO)
- {
- if (mmc0_data1_flag != 0x0)
- {
- irq_set_irq_wake(brd->data1_irq, 0);
- mmc0_data1_flag = 0x0;
- }
- }
- rc = zx29_gpio_config(ZX29_GPIO_66, GPIO66_GPIO66);
- if (rc)
- printk("%s gpio66 err !rc = %d\n", __func__, rc);
- zx29_gpio_set_direction(ZX29_GPIO_66, GPIO_IN);
- zx29_gpio_pd_pu_set(ZX29_GPIO_66, IO_CFG_PULL_DOWN);
- rc = zx29_gpio_config(ZX29_GPIO_67, GPIO67_GPIO67);
- if (rc)
- printk("%s gpio67 err !rc = %d\n", __func__, rc);
- zx29_gpio_set_direction(ZX29_GPIO_67, GPIO_IN);
- zx29_gpio_pd_pu_set(ZX29_GPIO_67, IO_CFG_PULL_DOWN);
- rc = zx29_gpio_config(ZX29_GPIO_68, GPIO68_GPIO68);
- if (rc)
- printk("%s gpio68 err !rc = %d\n", __func__, rc);
- zx29_gpio_set_direction(ZX29_GPIO_68, GPIO_IN);
- zx29_gpio_pd_pu_set(ZX29_GPIO_68, IO_CFG_PULL_DOWN);
- rc = zx29_gpio_config(ZX29_GPIO_69, GPIO69_GPIO69);
- if (rc)
- printk("%s gpio69 err !rc = %d\n", __func__, rc);
- zx29_gpio_set_direction(ZX29_GPIO_69, GPIO_IN);
- zx29_gpio_pd_pu_set(ZX29_GPIO_69, IO_CFG_PULL_DOWN);
- rc = zx29_gpio_config(ZX29_GPIO_70, GPIO70_GPIO70);
- if (rc)
- printk("%s gpio70 err !rc = %d\n", __func__, rc);
- zx29_gpio_set_direction(ZX29_GPIO_70, GPIO_IN);
- zx29_gpio_pd_pu_set(ZX29_GPIO_70, IO_CFG_PULL_DOWN);
- rc = zx29_gpio_config(ZX29_GPIO_71, GPIO71_GPIO71);
- if (rc)
- printk("%s gpio71 err !rc = %d\n", __func__, rc);
- zx29_gpio_set_direction(ZX29_GPIO_71, GPIO_IN);
- zx29_gpio_pd_pu_set(ZX29_GPIO_71, IO_CFG_PULL_DOWN);
- }
- else if (sd_index == 1)
- {
- rc = zx29_gpio_config(ZX29_GPIO_72, GPIO72_GPIO72);
- if (rc)
- printk("%s gpio72 err !rc = %d\n", __func__, rc);
- zx29_gpio_set_direction(ZX29_GPIO_72, GPIO_IN);
- zx29_gpio_pd_pu_set(ZX29_GPIO_72, IO_CFG_PULL_DOWN);
- rc = zx29_gpio_config(ZX29_GPIO_73, GPIO73_GPIO73);
- if (rc)
- printk("%s gpio73 err !rc = %d\n", __func__, rc);
- zx29_gpio_set_direction(ZX29_GPIO_73, GPIO_IN);
- zx29_gpio_pd_pu_set(ZX29_GPIO_73, IO_CFG_PULL_DOWN);
- rc = zx29_gpio_config(ZX29_GPIO_74, GPIO74_GPIO74);
- if (rc)
- printk("%s gpio74 err !rc = %d\n", __func__, rc);
- zx29_gpio_set_direction(ZX29_GPIO_74, GPIO_IN);
- zx29_gpio_pd_pu_set(ZX29_GPIO_74, IO_CFG_PULL_DOWN);
- rc = zx29_gpio_config(ZX29_GPIO_75, GPIO75_GPIO75);
- if (rc)
- printk("%s gpio75 err !rc = %d\n", __func__, rc);
- zx29_gpio_set_direction(ZX29_GPIO_75, GPIO_IN);
- zx29_gpio_pd_pu_set(ZX29_GPIO_75, IO_CFG_PULL_DOWN);
- rc = zx29_gpio_config(ZX29_GPIO_76, GPIO76_GPIO76);
- if (rc)
- printk("%s gpio76 err !rc = %d\n", __func__, rc);
- zx29_gpio_set_direction(ZX29_GPIO_76, GPIO_IN);
- zx29_gpio_pd_pu_set(ZX29_GPIO_76, IO_CFG_PULL_DOWN);
- rc = zx29_gpio_config(ZX29_GPIO_77, GPIO77_GPIO77);
- if (rc)
- printk("%s gpio77 err !rc = %d\n", __func__, rc);
- zx29_gpio_set_direction(ZX29_GPIO_77, GPIO_IN);
- zx29_gpio_pd_pu_set(ZX29_GPIO_77, IO_CFG_PULL_DOWN);
- }
- else
- printk("%s index error %d\n", __func__, sd_index);
- }
- return rc;
-}
-//zw.wang The sdio0 pin is configured in gpio mode before and after wifi uninstallation on 20240514 on end
-
+static struct dw_mci *dw_mci_host_ptr[2];
int dw_mci_pltfm_register(struct platform_device *pdev,
const struct dw_mci_drv_data *drv_data)
{
@@ -395,35 +233,8 @@
dw_mci_set_host(host, true);
}
#endif
-//zw.wang The sdio0 pin is configured in gpio mode before and after wifi uninstallation on 20240514 on start
- if (host->pdata->quirks & DW_MCI_QUIRK_AUTO_GATE)
- {
- int rv = clk_set_auto_gate(sdmmc_wclk, true);
- if (rv)
- pr_err("%s: Failed to enable auto gate of sdmmc_wclk\n", __func__);
- rv = clk_set_auto_gate(sdmmc_aclk, true);
- if (rv)
- pr_err("%s: Failed to enable auto gate of sdmmc_aclk\n", __func__);
- }
- else
- {
- int rv = clk_set_auto_gate(sdmmc_wclk, false);
- if (rv)
- pr_err("%s: Failed to disable auto gate of sdmmc_wclk\n", __func__);
- rv = clk_set_auto_gate(sdmmc_aclk, false);
- if (rv)
- pr_err("%s: Failed to disable auto gate of sdmmc_aclk\n", __func__);
- }
- platform_set_drvdata(pdev, host);
- pr_info("%s: host%u step 1 finish, reg addr %p\n", __func__, host->host_id, host->regs);
-//zw.wang The sdio0 pin is configured in gpio mode before and after wifi uninstallation on 20240514 on end
#if defined CONFIG_ARCH_ZX297520V3
if(host->host_id == 0) {
-//zw.wang The sdio0 pin is configured in gpio mode before and after wifi uninstallation on 20240514 on start
-#if CONFIG_AIC8800D80L
- sd_io_config(host->host_id,0);
-#else
-//zw.wang The sdio0 pin is configured in gpio mode before and after wifi uninstallation on 20240514 on end
rc=gpio_request(ZX29_GPIO_66,"sd0_clk");
if(rc)
BUG();
@@ -448,7 +259,6 @@
if(rc)
BUG();
zx29_gpio_config(ZX29_GPIO_71, GPIO71_EMMC_DATA3);
-#endif
}
else if(host->host_id == 1) {
rc=gpio_request(ZX29_GPIO_72,"sd1_clk");
@@ -486,6 +296,28 @@
}
#endif
+ if(host->pdata->quirks & DW_MCI_QUIRK_AUTO_GATE) {
+ int rv = clk_set_auto_gate(sdmmc_wclk, true);
+ if (rv)
+ pr_err("%s: Failed to enable auto gate of sdmmc_wclk\n", __func__);
+
+ rv = clk_set_auto_gate(sdmmc_aclk, true);
+ if (rv)
+ pr_err("%s: Failed to enable auto gate of sdmmc_aclk\n", __func__);
+ }else{
+ int rv = clk_set_auto_gate(sdmmc_wclk, false);
+ if (rv)
+ pr_err("%s: Failed to disable auto gate of sdmmc_wclk\n", __func__);
+
+ rv = clk_set_auto_gate(sdmmc_aclk, false);
+ if (rv)
+ pr_err("%s: Failed to disable auto gate of sdmmc_aclk\n", __func__);
+ }
+
+
+ platform_set_drvdata(pdev, host);
+
+ pr_info("%s: host%u step 1 finish, reg addr %p\n", __func__, host->host_id, host->regs);
rc = device_create_file(&pdev->dev, &dev_attr_dw_regoffset);
if (rc)
diff --git a/ap/os/linux/linux-3.4.x/drivers/mmc/host/zx29_mmc.c b/ap/os/linux/linux-3.4.x/drivers/mmc/host/zx29_mmc.c
index 6372cee..7df7603 100755
--- a/ap/os/linux/linux-3.4.x/drivers/mmc/host/zx29_mmc.c
+++ b/ap/os/linux/linux-3.4.x/drivers/mmc/host/zx29_mmc.c
@@ -102,9 +102,7 @@
static struct dw_mci* dw_mmc_host[] = {NULL, NULL, NULL, NULL};
static unsigned int enable_wifi_irq = 0;
-//zw.wang The sdio0 pin is configured in gpio mode before and after wifi uninstallation on 20240514 on start
-extern volatile u8 mmc0_data1_flag;
-//zw.wang The sdio0 pin is configured in gpio mode before and after wifi uninstallation on 20240514 on end
+
//#pragma GCC optimize("O0")
/* Common flag combinations */
@@ -4161,14 +4159,9 @@
#endif
//ret = irq_set_irq_wake(host->irq, 1);
-//zw.wang The sdio0 pin is configured in gpio mode before and after wifi uninstallation on 20240514 on start
- if ((host->quirks & DW_MCI_QUIRK_SDIO)&&(mmc0_data1_flag !=0x0)) {
- if(mmc0_data1_flag != 0x1){
- irq_set_irq_wake(brd->data1_irq, 1);
- mmc0_data1_flag = 0x1;
- }
+ if (host->quirks & DW_MCI_QUIRK_SDIO) {
+ irq_set_irq_wake(brd->data1_irq, 1);
}
-//zw.wang The sdio0 pin is configured in gpio mode before and after wifi uninstallation on 20240514 on end
#if (defined CONFIG_ARCH_ZX297520V2)||(defined CONFIG_ARCH_ZX297520V3)
if (!(host->quirks & DW_MCI_QUIRK_SDIO) && !(host->quirks & DW_MCI_QUIRK_BROKEN_CARD_DETECTION))
{
diff --git a/ap/os/linux/linux-3.4.x/drivers/net/wireless/aic8800d80l/wifi_dev_aic88.c b/ap/os/linux/linux-3.4.x/drivers/net/wireless/aic8800d80l/wifi_dev_aic88.c
index 73d1c73..3e06c1d 100755
--- a/ap/os/linux/linux-3.4.x/drivers/net/wireless/aic8800d80l/wifi_dev_aic88.c
+++ b/ap/os/linux/linux-3.4.x/drivers/net/wireless/aic8800d80l/wifi_dev_aic88.c
@@ -14,9 +14,6 @@
extern int testmode;
extern void aic8800_wifi_disable(int bval);
extern void aic8800_wifi_re_enable(int bval);
-//zw.wang The sdio0 pin is configured in gpio mode before and after wifi uninstallation on 20240514 on start
-extern int sd_io_config(u32 sd_index, bool active_flag);
-//zw.wang The sdio0 pin is configured in gpio mode before and after wifi uninstallation on 20240514 on end
void dw_mci_rescan_card(unsigned id, unsigned insert);
struct wifi_dev {
uint32_t dev_state;
@@ -53,33 +50,14 @@
printk(KERN_INFO "@@@exit Wlan@@@\n");
rwnx_mod_exit();
aic8800_wifi_disable(1);
- //zw.wang The sdio0 pin is configured in gpio mode before and after wifi uninstallation on 20240514 on start
- ret = sd_io_config(0, 0);
- if(ret)
- printk(KERN_ERR "sd_io_config func fail, flag = %d ret = %d\n",0,ret);
- //zw.wang The sdio0 pin is configured in gpio mode before and after wifi uninstallation on 20240514 on end
testmode = 0;
break;
}
case WIFI_IOCTL_START: {
printk(KERN_INFO "@@@initWlan@@@\n");
- //zw.wang The sdio0 pin is configured in gpio mode before and after wifi uninstallation on 20240514 on start
- ret = sd_io_config(0, 1);
- if(ret)
- printk(KERN_ERR "sd_io_config func fail, flag = %d ret = %d\n",1,ret);
- //zw.wang The sdio0 pin is configured in gpio mode before and after wifi uninstallation on 20240514 on end
aic8800_wifi_re_enable(1);
dw_mci_rescan_card(0, 1);
ret = rwnx_mod_init();
- //zw.wang The sdio0 pin is configured in gpio mode before and after wifi uninstallation on 20240514 on start
- if(ret)
- {
- printk(KERN_ERR "qqq rwnx_mod_init fail, ret = %d\n",ret);
- ret = sd_io_config(0, 0);
- if(ret)
- printk(KERN_ERR "sd_io_config func fail, flag = %d ret = %d\n",0,ret);
- }
- //zw.wang The sdio0 pin is configured in gpio mode before and after wifi uninstallation on 20240514 on end
break;
}