提交 c9aa7a91 编写于 作者: A Arend Van Spriel 提交者: Kalle Valo

brcmfmac: Remove array of functions

Replace the array of functions with a pair of pointers to the
relevant functions.
Signed-off-by: NIan Molton <ian@mnementh.co.uk>
Acked-by: NArend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: NArend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
上级 a08e61d2
...@@ -118,7 +118,7 @@ int brcmf_sdiod_intr_register(struct brcmf_sdio_dev *sdiodev) ...@@ -118,7 +118,7 @@ int brcmf_sdiod_intr_register(struct brcmf_sdio_dev *sdiodev)
ret = request_irq(pdata->oob_irq_nr, brcmf_sdiod_oob_irqhandler, ret = request_irq(pdata->oob_irq_nr, brcmf_sdiod_oob_irqhandler,
pdata->oob_irq_flags, "brcmf_oob_intr", pdata->oob_irq_flags, "brcmf_oob_intr",
&sdiodev->func[1]->dev); &sdiodev->func1->dev);
if (ret != 0) { if (ret != 0) {
brcmf_err("request_irq failed %d\n", ret); brcmf_err("request_irq failed %d\n", ret);
return ret; return ret;
...@@ -132,7 +132,7 @@ int brcmf_sdiod_intr_register(struct brcmf_sdio_dev *sdiodev) ...@@ -132,7 +132,7 @@ int brcmf_sdiod_intr_register(struct brcmf_sdio_dev *sdiodev)
} }
sdiodev->irq_wake = true; sdiodev->irq_wake = true;
sdio_claim_host(sdiodev->func[1]); sdio_claim_host(sdiodev->func1);
if (sdiodev->bus_if->chip == BRCM_CC_43362_CHIP_ID) { if (sdiodev->bus_if->chip == BRCM_CC_43362_CHIP_ID) {
/* assign GPIO to SDIO core */ /* assign GPIO to SDIO core */
...@@ -159,13 +159,13 @@ int brcmf_sdiod_intr_register(struct brcmf_sdio_dev *sdiodev) ...@@ -159,13 +159,13 @@ int brcmf_sdiod_intr_register(struct brcmf_sdio_dev *sdiodev)
data |= SDIO_CCCR_BRCM_SEPINT_ACT_HI; data |= SDIO_CCCR_BRCM_SEPINT_ACT_HI;
brcmf_sdiod_func0_wb(sdiodev, SDIO_CCCR_BRCM_SEPINT, brcmf_sdiod_func0_wb(sdiodev, SDIO_CCCR_BRCM_SEPINT,
data, &ret); data, &ret);
sdio_release_host(sdiodev->func[1]); sdio_release_host(sdiodev->func1);
} else { } else {
brcmf_dbg(SDIO, "Entering\n"); brcmf_dbg(SDIO, "Entering\n");
sdio_claim_host(sdiodev->func[1]); sdio_claim_host(sdiodev->func1);
sdio_claim_irq(sdiodev->func[1], brcmf_sdiod_ib_irqhandler); sdio_claim_irq(sdiodev->func1, brcmf_sdiod_ib_irqhandler);
sdio_claim_irq(sdiodev->func[2], brcmf_sdiod_dummy_irqhandler); sdio_claim_irq(sdiodev->func2, brcmf_sdiod_dummy_irqhandler);
sdio_release_host(sdiodev->func[1]); sdio_release_host(sdiodev->func1);
sdiodev->sd_irq_requested = true; sdiodev->sd_irq_requested = true;
} }
...@@ -183,26 +183,26 @@ void brcmf_sdiod_intr_unregister(struct brcmf_sdio_dev *sdiodev) ...@@ -183,26 +183,26 @@ void brcmf_sdiod_intr_unregister(struct brcmf_sdio_dev *sdiodev)
struct brcmfmac_sdio_pd *pdata; struct brcmfmac_sdio_pd *pdata;
pdata = &sdiodev->settings->bus.sdio; pdata = &sdiodev->settings->bus.sdio;
sdio_claim_host(sdiodev->func[1]); sdio_claim_host(sdiodev->func1);
brcmf_sdiod_func0_wb(sdiodev, SDIO_CCCR_BRCM_SEPINT, 0, NULL); brcmf_sdiod_func0_wb(sdiodev, SDIO_CCCR_BRCM_SEPINT, 0, NULL);
brcmf_sdiod_func0_wb(sdiodev, SDIO_CCCR_IENx, 0, NULL); brcmf_sdiod_func0_wb(sdiodev, SDIO_CCCR_IENx, 0, NULL);
sdio_release_host(sdiodev->func[1]); sdio_release_host(sdiodev->func1);
sdiodev->oob_irq_requested = false; sdiodev->oob_irq_requested = false;
if (sdiodev->irq_wake) { if (sdiodev->irq_wake) {
disable_irq_wake(pdata->oob_irq_nr); disable_irq_wake(pdata->oob_irq_nr);
sdiodev->irq_wake = false; sdiodev->irq_wake = false;
} }
free_irq(pdata->oob_irq_nr, &sdiodev->func[1]->dev); free_irq(pdata->oob_irq_nr, &sdiodev->func1->dev);
sdiodev->irq_en = false; sdiodev->irq_en = false;
sdiodev->oob_irq_requested = false; sdiodev->oob_irq_requested = false;
} }
if (sdiodev->sd_irq_requested) { if (sdiodev->sd_irq_requested) {
sdio_claim_host(sdiodev->func[1]); sdio_claim_host(sdiodev->func1);
sdio_release_irq(sdiodev->func[2]); sdio_release_irq(sdiodev->func2);
sdio_release_irq(sdiodev->func[1]); sdio_release_irq(sdiodev->func1);
sdio_release_host(sdiodev->func[1]); sdio_release_host(sdiodev->func1);
sdiodev->sd_irq_requested = false; sdiodev->sd_irq_requested = false;
} }
} }
...@@ -264,7 +264,7 @@ u32 brcmf_sdiod_readl(struct brcmf_sdio_dev *sdiodev, u32 addr, int *ret) ...@@ -264,7 +264,7 @@ u32 brcmf_sdiod_readl(struct brcmf_sdio_dev *sdiodev, u32 addr, int *ret)
addr &= SBSDIO_SB_OFT_ADDR_MASK; addr &= SBSDIO_SB_OFT_ADDR_MASK;
addr |= SBSDIO_SB_ACCESS_2_4B_FLAG; addr |= SBSDIO_SB_ACCESS_2_4B_FLAG;
data = sdio_readl(sdiodev->func[1], addr, &retval); data = sdio_readl(sdiodev->func1, addr, &retval);
out: out:
if (ret) if (ret)
...@@ -285,7 +285,7 @@ void brcmf_sdiod_writel(struct brcmf_sdio_dev *sdiodev, u32 addr, ...@@ -285,7 +285,7 @@ void brcmf_sdiod_writel(struct brcmf_sdio_dev *sdiodev, u32 addr,
addr &= SBSDIO_SB_OFT_ADDR_MASK; addr &= SBSDIO_SB_OFT_ADDR_MASK;
addr |= SBSDIO_SB_ACCESS_2_4B_FLAG; addr |= SBSDIO_SB_ACCESS_2_4B_FLAG;
sdio_writel(sdiodev->func[1], data, addr, &retval); sdio_writel(sdiodev->func1, data, addr, &retval);
out: out:
if (ret) if (ret)
...@@ -550,7 +550,7 @@ int brcmf_sdiod_recv_pkt(struct brcmf_sdio_dev *sdiodev, struct sk_buff *pkt) ...@@ -550,7 +550,7 @@ int brcmf_sdiod_recv_pkt(struct brcmf_sdio_dev *sdiodev, struct sk_buff *pkt)
addr &= SBSDIO_SB_OFT_ADDR_MASK; addr &= SBSDIO_SB_OFT_ADDR_MASK;
addr |= SBSDIO_SB_ACCESS_2_4B_FLAG; addr |= SBSDIO_SB_ACCESS_2_4B_FLAG;
err = brcmf_sdiod_buff_read(sdiodev, sdiodev->func[2], addr, pkt); err = brcmf_sdiod_buff_read(sdiodev, sdiodev->func2, addr, pkt);
done: done:
return err; return err;
...@@ -575,13 +575,13 @@ int brcmf_sdiod_recv_chain(struct brcmf_sdio_dev *sdiodev, ...@@ -575,13 +575,13 @@ int brcmf_sdiod_recv_chain(struct brcmf_sdio_dev *sdiodev,
addr |= SBSDIO_SB_ACCESS_2_4B_FLAG; addr |= SBSDIO_SB_ACCESS_2_4B_FLAG;
if (pktq->qlen == 1) if (pktq->qlen == 1)
err = brcmf_sdiod_buff_read(sdiodev, sdiodev->func[2], addr, err = brcmf_sdiod_buff_read(sdiodev, sdiodev->func2, addr,
pktq->next); pktq->next);
else if (!sdiodev->sg_support) { else if (!sdiodev->sg_support) {
glom_skb = brcmu_pkt_buf_get_skb(totlen); glom_skb = brcmu_pkt_buf_get_skb(totlen);
if (!glom_skb) if (!glom_skb)
return -ENOMEM; return -ENOMEM;
err = brcmf_sdiod_buff_read(sdiodev, sdiodev->func[2], addr, err = brcmf_sdiod_buff_read(sdiodev, sdiodev->func2, addr,
glom_skb); glom_skb);
if (err) if (err)
goto done; goto done;
...@@ -591,7 +591,7 @@ int brcmf_sdiod_recv_chain(struct brcmf_sdio_dev *sdiodev, ...@@ -591,7 +591,7 @@ int brcmf_sdiod_recv_chain(struct brcmf_sdio_dev *sdiodev,
skb_pull(glom_skb, skb->len); skb_pull(glom_skb, skb->len);
} }
} else } else
err = brcmf_sdiod_sglist_rw(sdiodev, sdiodev->func[2], false, err = brcmf_sdiod_sglist_rw(sdiodev, sdiodev->func2, false,
addr, pktq); addr, pktq);
done: done:
...@@ -623,7 +623,7 @@ int brcmf_sdiod_send_buf(struct brcmf_sdio_dev *sdiodev, u8 *buf, uint nbytes) ...@@ -623,7 +623,7 @@ int brcmf_sdiod_send_buf(struct brcmf_sdio_dev *sdiodev, u8 *buf, uint nbytes)
addr |= SBSDIO_SB_ACCESS_2_4B_FLAG; addr |= SBSDIO_SB_ACCESS_2_4B_FLAG;
if (!err) if (!err)
err = brcmf_sdiod_buff_write(sdiodev, sdiodev->func[2], addr, err = brcmf_sdiod_buff_write(sdiodev, sdiodev->func2, addr,
mypkt); mypkt);
brcmu_pkt_buf_free_skb(mypkt); brcmu_pkt_buf_free_skb(mypkt);
...@@ -649,13 +649,13 @@ int brcmf_sdiod_send_pkt(struct brcmf_sdio_dev *sdiodev, ...@@ -649,13 +649,13 @@ int brcmf_sdiod_send_pkt(struct brcmf_sdio_dev *sdiodev,
if (pktq->qlen == 1 || !sdiodev->sg_support) { if (pktq->qlen == 1 || !sdiodev->sg_support) {
skb_queue_walk(pktq, skb) { skb_queue_walk(pktq, skb) {
err = brcmf_sdiod_buff_write(sdiodev, sdiodev->func[2], err = brcmf_sdiod_buff_write(sdiodev, sdiodev->func2,
addr, skb); addr, skb);
if (err) if (err)
break; break;
} }
} else { } else {
err = brcmf_sdiod_sglist_rw(sdiodev, sdiodev->func[2], true, err = brcmf_sdiod_sglist_rw(sdiodev, sdiodev->func2, true,
addr, pktq); addr, pktq);
} }
...@@ -686,7 +686,7 @@ brcmf_sdiod_ramrw(struct brcmf_sdio_dev *sdiodev, bool write, u32 address, ...@@ -686,7 +686,7 @@ brcmf_sdiod_ramrw(struct brcmf_sdio_dev *sdiodev, bool write, u32 address,
else else
dsize = size; dsize = size;
sdio_claim_host(sdiodev->func[1]); sdio_claim_host(sdiodev->func1);
/* Do the transfer(s) */ /* Do the transfer(s) */
while (size) { while (size) {
...@@ -706,10 +706,10 @@ brcmf_sdiod_ramrw(struct brcmf_sdio_dev *sdiodev, bool write, u32 address, ...@@ -706,10 +706,10 @@ brcmf_sdiod_ramrw(struct brcmf_sdio_dev *sdiodev, bool write, u32 address,
if (write) { if (write) {
memcpy(pkt->data, data, dsize); memcpy(pkt->data, data, dsize);
err = brcmf_sdiod_buff_write(sdiodev, sdiodev->func[1], err = brcmf_sdiod_buff_write(sdiodev, sdiodev->func1,
sdaddr, pkt); sdaddr, pkt);
} else { } else {
err = brcmf_sdiod_buff_read(sdiodev, sdiodev->func[1], err = brcmf_sdiod_buff_read(sdiodev, sdiodev->func1,
sdaddr, pkt); sdaddr, pkt);
} }
...@@ -733,7 +733,7 @@ brcmf_sdiod_ramrw(struct brcmf_sdio_dev *sdiodev, bool write, u32 address, ...@@ -733,7 +733,7 @@ brcmf_sdiod_ramrw(struct brcmf_sdio_dev *sdiodev, bool write, u32 address,
dev_kfree_skb(pkt); dev_kfree_skb(pkt);
sdio_release_host(sdiodev->func[1]); sdio_release_host(sdiodev->func1);
return err; return err;
} }
...@@ -757,7 +757,7 @@ void brcmf_sdiod_sgtable_alloc(struct brcmf_sdio_dev *sdiodev) ...@@ -757,7 +757,7 @@ void brcmf_sdiod_sgtable_alloc(struct brcmf_sdio_dev *sdiodev)
uint nents; uint nents;
int err; int err;
func = sdiodev->func[2]; func = sdiodev->func2;
host = func->card->host; host = func->card->host;
sdiodev->sg_support = host->max_segs > 1; sdiodev->sg_support = host->max_segs > 1;
max_blocks = min_t(uint, host->max_blk_count, 511u); max_blocks = min_t(uint, host->max_blk_count, 511u);
...@@ -818,17 +818,17 @@ static int brcmf_sdiod_freezer_on(struct brcmf_sdio_dev *sdiodev) ...@@ -818,17 +818,17 @@ static int brcmf_sdiod_freezer_on(struct brcmf_sdio_dev *sdiodev)
brcmf_sdio_trigger_dpc(sdiodev->bus); brcmf_sdio_trigger_dpc(sdiodev->bus);
wait_event(sdiodev->freezer->thread_freeze, wait_event(sdiodev->freezer->thread_freeze,
atomic_read(expect) == sdiodev->freezer->frozen_count); atomic_read(expect) == sdiodev->freezer->frozen_count);
sdio_claim_host(sdiodev->func[1]); sdio_claim_host(sdiodev->func1);
res = brcmf_sdio_sleep(sdiodev->bus, true); res = brcmf_sdio_sleep(sdiodev->bus, true);
sdio_release_host(sdiodev->func[1]); sdio_release_host(sdiodev->func1);
return res; return res;
} }
static void brcmf_sdiod_freezer_off(struct brcmf_sdio_dev *sdiodev) static void brcmf_sdiod_freezer_off(struct brcmf_sdio_dev *sdiodev)
{ {
sdio_claim_host(sdiodev->func[1]); sdio_claim_host(sdiodev->func1);
brcmf_sdio_sleep(sdiodev->bus, false); brcmf_sdio_sleep(sdiodev->bus, false);
sdio_release_host(sdiodev->func[1]); sdio_release_host(sdiodev->func1);
atomic_set(&sdiodev->freezer->freezing, 0); atomic_set(&sdiodev->freezer->freezing, 0);
complete_all(&sdiodev->freezer->resumed); complete_all(&sdiodev->freezer->resumed);
} }
...@@ -878,19 +878,19 @@ static int brcmf_sdiod_remove(struct brcmf_sdio_dev *sdiodev) ...@@ -878,19 +878,19 @@ static int brcmf_sdiod_remove(struct brcmf_sdio_dev *sdiodev)
brcmf_sdiod_freezer_detach(sdiodev); brcmf_sdiod_freezer_detach(sdiodev);
/* Disable Function 2 */ /* Disable Function 2 */
sdio_claim_host(sdiodev->func[2]); sdio_claim_host(sdiodev->func2);
sdio_disable_func(sdiodev->func[2]); sdio_disable_func(sdiodev->func2);
sdio_release_host(sdiodev->func[2]); sdio_release_host(sdiodev->func2);
/* Disable Function 1 */ /* Disable Function 1 */
sdio_claim_host(sdiodev->func[1]); sdio_claim_host(sdiodev->func1);
sdio_disable_func(sdiodev->func[1]); sdio_disable_func(sdiodev->func1);
sdio_release_host(sdiodev->func[1]); sdio_release_host(sdiodev->func1);
sg_free_table(&sdiodev->sgtable); sg_free_table(&sdiodev->sgtable);
sdiodev->sbwad = 0; sdiodev->sbwad = 0;
pm_runtime_allow(sdiodev->func[1]->card->host->parent); pm_runtime_allow(sdiodev->func1->card->host->parent);
return 0; return 0;
} }
...@@ -906,29 +906,27 @@ static int brcmf_sdiod_probe(struct brcmf_sdio_dev *sdiodev) ...@@ -906,29 +906,27 @@ static int brcmf_sdiod_probe(struct brcmf_sdio_dev *sdiodev)
{ {
int ret = 0; int ret = 0;
sdiodev->num_funcs = 2; sdio_claim_host(sdiodev->func1);
sdio_claim_host(sdiodev->func[1]); ret = sdio_set_block_size(sdiodev->func1, SDIO_FUNC1_BLOCKSIZE);
ret = sdio_set_block_size(sdiodev->func[1], SDIO_FUNC1_BLOCKSIZE);
if (ret) { if (ret) {
brcmf_err("Failed to set F1 blocksize\n"); brcmf_err("Failed to set F1 blocksize\n");
sdio_release_host(sdiodev->func[1]); sdio_release_host(sdiodev->func1);
goto out; goto out;
} }
ret = sdio_set_block_size(sdiodev->func[2], SDIO_FUNC2_BLOCKSIZE); ret = sdio_set_block_size(sdiodev->func2, SDIO_FUNC2_BLOCKSIZE);
if (ret) { if (ret) {
brcmf_err("Failed to set F2 blocksize\n"); brcmf_err("Failed to set F2 blocksize\n");
sdio_release_host(sdiodev->func[1]); sdio_release_host(sdiodev->func1);
goto out; goto out;
} }
/* increase F2 timeout */ /* increase F2 timeout */
sdiodev->func[2]->enable_timeout = SDIO_WAIT_F2RDY; sdiodev->func2->enable_timeout = SDIO_WAIT_F2RDY;
/* Enable Function 1 */ /* Enable Function 1 */
ret = sdio_enable_func(sdiodev->func[1]); ret = sdio_enable_func(sdiodev->func1);
sdio_release_host(sdiodev->func[1]); sdio_release_host(sdiodev->func1);
if (ret) { if (ret) {
brcmf_err("Failed to enable F1: err=%d\n", ret); brcmf_err("Failed to enable F1: err=%d\n", ret);
goto out; goto out;
...@@ -944,7 +942,7 @@ static int brcmf_sdiod_probe(struct brcmf_sdio_dev *sdiodev) ...@@ -944,7 +942,7 @@ static int brcmf_sdiod_probe(struct brcmf_sdio_dev *sdiodev)
ret = -ENODEV; ret = -ENODEV;
goto out; goto out;
} }
brcmf_sdiod_host_fixup(sdiodev->func[2]->card->host); brcmf_sdiod_host_fixup(sdiodev->func2->card->host);
out: out:
if (ret) if (ret)
brcmf_sdiod_remove(sdiodev); brcmf_sdiod_remove(sdiodev);
...@@ -1032,16 +1030,15 @@ static int brcmf_ops_sdio_probe(struct sdio_func *func, ...@@ -1032,16 +1030,15 @@ static int brcmf_ops_sdio_probe(struct sdio_func *func,
/* store refs to functions used. mmc_card does /* store refs to functions used. mmc_card does
* not hold the F0 function pointer. * not hold the F0 function pointer.
*/ */
sdiodev->func[0] = NULL; sdiodev->func1 = func->card->sdio_func[0];
sdiodev->func[1] = func->card->sdio_func[0]; sdiodev->func2 = func;
sdiodev->func[2] = func;
sdiodev->bus_if = bus_if; sdiodev->bus_if = bus_if;
bus_if->bus_priv.sdio = sdiodev; bus_if->bus_priv.sdio = sdiodev;
bus_if->proto_type = BRCMF_PROTO_BCDC; bus_if->proto_type = BRCMF_PROTO_BCDC;
dev_set_drvdata(&func->dev, bus_if); dev_set_drvdata(&func->dev, bus_if);
dev_set_drvdata(&sdiodev->func[1]->dev, bus_if); dev_set_drvdata(&sdiodev->func1->dev, bus_if);
sdiodev->dev = &sdiodev->func[1]->dev; sdiodev->dev = &sdiodev->func1->dev;
brcmf_sdiod_change_state(sdiodev, BRCMF_SDIOD_DOWN); brcmf_sdiod_change_state(sdiodev, BRCMF_SDIOD_DOWN);
...@@ -1057,7 +1054,7 @@ static int brcmf_ops_sdio_probe(struct sdio_func *func, ...@@ -1057,7 +1054,7 @@ static int brcmf_ops_sdio_probe(struct sdio_func *func,
fail: fail:
dev_set_drvdata(&func->dev, NULL); dev_set_drvdata(&func->dev, NULL);
dev_set_drvdata(&sdiodev->func[1]->dev, NULL); dev_set_drvdata(&sdiodev->func1->dev, NULL);
kfree(sdiodev); kfree(sdiodev);
kfree(bus_if); kfree(bus_if);
return err; return err;
...@@ -1086,8 +1083,8 @@ static void brcmf_ops_sdio_remove(struct sdio_func *func) ...@@ -1086,8 +1083,8 @@ static void brcmf_ops_sdio_remove(struct sdio_func *func)
/* only proceed with rest of cleanup if func 1 */ /* only proceed with rest of cleanup if func 1 */
brcmf_sdiod_remove(sdiodev); brcmf_sdiod_remove(sdiodev);
dev_set_drvdata(&sdiodev->func[1]->dev, NULL); dev_set_drvdata(&sdiodev->func1->dev, NULL);
dev_set_drvdata(&sdiodev->func[2]->dev, NULL); dev_set_drvdata(&sdiodev->func2->dev, NULL);
kfree(bus_if); kfree(bus_if);
kfree(sdiodev); kfree(sdiodev);
...@@ -1132,7 +1129,7 @@ static int brcmf_ops_sdio_suspend(struct device *dev) ...@@ -1132,7 +1129,7 @@ static int brcmf_ops_sdio_suspend(struct device *dev)
else else
sdio_flags |= MMC_PM_WAKE_SDIO_IRQ; sdio_flags |= MMC_PM_WAKE_SDIO_IRQ;
} }
if (sdio_set_host_pm_flags(sdiodev->func[1], sdio_flags)) if (sdio_set_host_pm_flags(sdiodev->func1, sdio_flags))
brcmf_err("Failed to set pm_flags %x\n", sdio_flags); brcmf_err("Failed to set pm_flags %x\n", sdio_flags);
return 0; return 0;
} }
......
...@@ -21,9 +21,6 @@ ...@@ -21,9 +21,6 @@
#include <linux/firmware.h> #include <linux/firmware.h>
#include "firmware.h" #include "firmware.h"
/* Maximum number of I/O funcs */
#define NUM_SDIO_FUNCS 3
#define SDIOD_FBR_SIZE 0x100 #define SDIOD_FBR_SIZE 0x100
/* io_en */ /* io_en */
...@@ -173,8 +170,8 @@ struct brcmf_sdio; ...@@ -173,8 +170,8 @@ struct brcmf_sdio;
struct brcmf_sdiod_freezer; struct brcmf_sdiod_freezer;
struct brcmf_sdio_dev { struct brcmf_sdio_dev {
struct sdio_func *func[NUM_SDIO_FUNCS]; struct sdio_func *func1;
u8 num_funcs; /* Supported funcs on client */ struct sdio_func *func2;
u32 sbwad; /* Save backplane window address */ u32 sbwad; /* Save backplane window address */
struct brcmf_core *cc_core; /* chipcommon core info struct */ struct brcmf_core *cc_core; /* chipcommon core info struct */
struct brcmf_sdio *bus; struct brcmf_sdio *bus;
...@@ -295,17 +292,17 @@ void brcmf_sdiod_intr_unregister(struct brcmf_sdio_dev *sdiodev); ...@@ -295,17 +292,17 @@ void brcmf_sdiod_intr_unregister(struct brcmf_sdio_dev *sdiodev);
/* SDIO device register access interface */ /* SDIO device register access interface */
/* Accessors for SDIO Function 0 */ /* Accessors for SDIO Function 0 */
#define brcmf_sdiod_func0_rb(sdiodev, addr, r) \ #define brcmf_sdiod_func0_rb(sdiodev, addr, r) \
sdio_f0_readb((sdiodev)->func[1], (addr), (r)) sdio_f0_readb((sdiodev)->func1, (addr), (r))
#define brcmf_sdiod_func0_wb(sdiodev, addr, v, ret) \ #define brcmf_sdiod_func0_wb(sdiodev, addr, v, ret) \
sdio_f0_writeb((sdiodev)->func[1], (v), (addr), (ret)) sdio_f0_writeb((sdiodev)->func1, (v), (addr), (ret))
/* Accessors for SDIO Function 1 */ /* Accessors for SDIO Function 1 */
#define brcmf_sdiod_readb(sdiodev, addr, r) \ #define brcmf_sdiod_readb(sdiodev, addr, r) \
sdio_readb((sdiodev)->func[1], (addr), (r)) sdio_readb((sdiodev)->func1, (addr), (r))
#define brcmf_sdiod_writeb(sdiodev, addr, v, ret) \ #define brcmf_sdiod_writeb(sdiodev, addr, v, ret) \
sdio_writeb((sdiodev)->func[1], (v), (addr), (ret)) sdio_writeb((sdiodev)->func1, (v), (addr), (ret))
u32 brcmf_sdiod_readl(struct brcmf_sdio_dev *sdiodev, u32 addr, int *ret); u32 brcmf_sdiod_readl(struct brcmf_sdio_dev *sdiodev, u32 addr, int *ret);
void brcmf_sdiod_writel(struct brcmf_sdio_dev *sdiodev, u32 addr, u32 data, void brcmf_sdiod_writel(struct brcmf_sdio_dev *sdiodev, u32 addr, u32 data,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册