From bedbef8ad3e75a304af6361af235302bcc61d06b Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Tue, 14 May 2024 06:39:01 +0000 Subject: [PATCH] 修改内核路径 --- kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/bcmsdh_sdmmc.c | 82 +++++++--------------------------------- 1 files changed, 15 insertions(+), 67 deletions(-) diff --git a/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/bcmsdh_sdmmc.c b/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/bcmsdh_sdmmc.c old mode 100644 new mode 100755 index ba31570..2ac448c --- a/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/bcmsdh_sdmmc.c +++ b/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/bcmsdh_sdmmc.c @@ -83,18 +83,8 @@ #endif /* !defined(OOB_INTR_ONLY) */ static int sdioh_sdmmc_get_cisaddr(sdioh_info_t *sd, uint32 regaddr); #if defined(ENABLE_INSMOD_NO_FW_LOAD) && !defined(BUS_POWER_RESTORE) -#if defined(MMC_SW_RESET) && LINUX_VERSION_CODE >= KERNEL_VERSION(4, 18, 0) -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 0) -extern int mmc_sw_reset(struct mmc_card *card); -#else +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 18, 0) && defined(MMC_SW_RESET) extern int mmc_sw_reset(struct mmc_host *host); -#endif -#elif defined(MMC_HW_RESET) && LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) -extern int mmc_hw_reset(struct mmc_card *card); -#else -extern int mmc_hw_reset(struct mmc_host *host); -#endif #else extern int sdio_reset_comm(struct mmc_card *card); #endif @@ -112,8 +102,6 @@ #ifndef CUSTOM_SDIO_F1_BLKSIZE #define CUSTOM_SDIO_F1_BLKSIZE DEFAULT_SDIO_F1_BLKSIZE #endif - -#define COPY_BUF_SIZE (SDPCM_MAXGLOM_SIZE * 1600) #define MAX_IO_RW_EXTENDED_BLK 511 @@ -194,7 +182,7 @@ err_ret = sdio_enable_func(sd->func[1]); sdio_release_host(sd->func[1]); if (err_ret) { - sd_err(("bcmsdh_sdmmc: Failed to enable F1 Err: %d\n", err_ret)); + sd_err(("bcmsdh_sdmmc: Failed to enable F1 Err: 0x%08x\n", err_ret)); } return FALSE; @@ -221,14 +209,6 @@ return NULL; } bzero((char *)sd, sizeof(sdioh_info_t)); -#if defined(BCMSDIOH_TXGLOM) && defined(BCMSDIOH_STATIC_COPY_BUF) - sd->copy_buf = MALLOC(osh, COPY_BUF_SIZE); - if (sd->copy_buf == NULL) { - sd_err(("%s: MALLOC of %d-byte copy_buf failed\n", - __FUNCTION__, COPY_BUF_SIZE)); - goto fail; - } -#endif sd->osh = osh; sd->fake_func0.num = 0; sd->fake_func0.card = func->card; @@ -293,9 +273,6 @@ return sd; fail: -#if defined(BCMSDIOH_TXGLOM) && defined(BCMSDIOH_STATIC_COPY_BUF) - MFREE(sd->osh, sd->copy_buf, COPY_BUF_SIZE); -#endif MFREE(sd->osh, sd, sizeof(sdioh_info_t)); return NULL; } @@ -324,9 +301,6 @@ sd->func[1] = NULL; sd->func[2] = NULL; -#if defined(BCMSDIOH_TXGLOM) && defined(BCMSDIOH_STATIC_COPY_BUF) - MFREE(sd->osh, sd->copy_buf, COPY_BUF_SIZE); -#endif MFREE(sd->osh, sd, sizeof(sdioh_info_t)); } return SDIOH_API_RC_SUCCESS; @@ -1232,7 +1206,7 @@ if (err_ret) #endif /* MMC_SDIO_ABORT */ { - sd_err(("bcmsdh_sdmmc: Failed to %s word F%d:@0x%05x=%02x, Err: %d\n", + sd_err(("bcmsdh_sdmmc: Failed to %s word F%d:@0x%05x=%02x, Err: 0x%08x\n", rw ? "Write" : "Read", func, addr, *word, err_ret)); } } @@ -1382,8 +1356,7 @@ return SDIOH_API_RC_FAIL; } } - } - else if(sd->txglom_mode == SDPCM_TXGLOM_CPY) { + } else if(sd->txglom_mode == SDPCM_TXGLOM_CPY) { for (pnext = pkt; pnext; pnext = PKTNEXT(sd->osh, pnext)) { ttl_len += PKTLEN(sd->osh, pnext); } @@ -1392,20 +1365,16 @@ for (pnext = pkt; pnext; pnext = PKTNEXT(sd->osh, pnext)) { uint8 *buf = (uint8*)PKTDATA(sd->osh, pnext); pkt_len = PKTLEN(sd->osh, pnext); + if (!localbuf) { -#ifdef BCMSDIOH_STATIC_COPY_BUF - if (ttl_len <= COPY_BUF_SIZE) - localbuf = sd->copy_buf; -#else localbuf = (uint8 *)MALLOC(sd->osh, ttl_len); -#endif if (localbuf == NULL) { - sd_err(("%s: %s localbuf malloc FAILED ttl_len=%d\n", - __FUNCTION__, (write) ? "TX" : "RX", ttl_len)); - ttl_len -= pkt_len; + sd_err(("%s: %s TXGLOM: localbuf malloc FAILED\n", + __FUNCTION__, (write) ? "TX" : "RX")); goto txglomfail; } } + bcopy(buf, (localbuf + local_plen), pkt_len); local_plen += pkt_len; if (PKTNEXT(sd->osh, pnext)) @@ -1450,10 +1419,8 @@ return SDIOH_API_RC_FAIL; } -#ifndef BCMSDIOH_STATIC_COPY_BUF if (localbuf) MFREE(sd->osh, localbuf, ttl_len); -#endif #ifndef PKT_STATICS if (sd_msglevel & SDH_COST_VAL) @@ -1782,37 +1749,18 @@ #if defined(ENABLE_INSMOD_NO_FW_LOAD) && !defined(BUS_POWER_RESTORE) static int sdio_sw_reset(sdioh_info_t *sd) { - struct mmc_card *card = sd->func[0]->card; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 18, 0) && defined(MMC_SW_RESET) + struct mmc_host *host = sd->func[0]->card->host; +#endif int err = 0; -#if defined(MMC_SW_RESET) && LINUX_VERSION_CODE >= KERNEL_VERSION(4, 18, 0) - /* MMC_SW_RESET */ - printf("%s: call mmc_sw_reset\n", __FUNCTION__); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 18, 0) && defined(MMC_SW_RESET) + printf("%s: Enter\n", __FUNCTION__); sdio_claim_host(sd->func[0]); -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 19, 0) - err = mmc_sw_reset(card); -#else - err = mmc_sw_reset(card->host); -#endif - sdio_release_host(sd->func[0]); -#elif defined(MMC_HW_RESET) && LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0) - /* MMC_HW_RESET */ - printf("%s: call mmc_hw_reset\n", __FUNCTION__); - sdio_claim_host(sd->func[0]); -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 4, 0) - while (atomic_read(&card->sdio_funcs_probed) > 1) { - atomic_dec(&card->sdio_funcs_probed); - } -#endif -#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0) - err = mmc_hw_reset(card); -#else - err = mmc_hw_reset(card->host); -#endif + err = mmc_sw_reset(host); sdio_release_host(sd->func[0]); #else - /* sdio_reset_comm */ - err = sdio_reset_comm(card); + err = sdio_reset_comm(sd->func[0]->card); #endif if (err) -- Gitblit v1.6.2