diff options
Diffstat (limited to 'target/linux/brcm2708/patches-4.19/950-0167-mmc-bcm2835-sdhost-Fix-warnings-on-arm64.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.19/950-0167-mmc-bcm2835-sdhost-Fix-warnings-on-arm64.patch | 252 |
1 files changed, 252 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.19/950-0167-mmc-bcm2835-sdhost-Fix-warnings-on-arm64.patch b/target/linux/brcm2708/patches-4.19/950-0167-mmc-bcm2835-sdhost-Fix-warnings-on-arm64.patch new file mode 100644 index 0000000000..12e1289734 --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0167-mmc-bcm2835-sdhost-Fix-warnings-on-arm64.patch @@ -0,0 +1,252 @@ +From c961f0534bdf659108eaf3352989683411767611 Mon Sep 17 00:00:00 2001 +From: Phil Elwell <phil@raspberrypi.org> +Date: Mon, 12 Nov 2018 22:54:40 +0000 +Subject: [PATCH] mmc: bcm2835-sdhost: Fix warnings on arm64 + +Signed-off-by: Phil Elwell <phil@raspberrypi.org> +--- + drivers/mmc/host/bcm2835-sdhost.c | 56 +++++++++++++++---------------- + 1 file changed, 28 insertions(+), 28 deletions(-) + +--- a/drivers/mmc/host/bcm2835-sdhost.c ++++ b/drivers/mmc/host/bcm2835-sdhost.c +@@ -247,7 +247,7 @@ static void log_init(struct device *dev, + GFP_KERNEL); + if (sdhost_log_buf) { + pr_info("sdhost: log_buf @ %p (%x)\n", +- sdhost_log_buf, sdhost_log_addr); ++ sdhost_log_buf, (u32)sdhost_log_addr); + timer_base = ioremap_nocache(bus_to_phys + 0x7e003000, SZ_4K); + if (!timer_base) + pr_err("sdhost: failed to remap timer\n"); +@@ -301,7 +301,7 @@ static void log_dump(void) + } + } + +-#define log_event(event, param1, param2) log_event_impl(event, param1, param2) ++#define log_event(event, param1, param2) log_event_impl(event, (u32)(uintptr_t)param1, (u32)(uintptr_t)param2) + + #else + +@@ -527,7 +527,7 @@ static void bcm2835_sdhost_dma_complete( + unsigned long flags; + + spin_lock_irqsave(&host->lock, flags); +- log_event("DMA<", (u32)host->data, bcm2835_sdhost_read(host, SDHSTS)); ++ log_event("DMA<", host->data, bcm2835_sdhost_read(host, SDHSTS)); + log_event("DMA ", bcm2835_sdhost_read(host, SDCMD), + bcm2835_sdhost_read(host, SDEDM)); + +@@ -559,7 +559,7 @@ static void bcm2835_sdhost_dma_complete( + + bcm2835_sdhost_finish_data(host); + +- log_event("DMA>", (u32)host->data, 0); ++ log_event("DMA>", host->data, 0); + spin_unlock_irqrestore(&host->lock, flags); + } + +@@ -748,7 +748,7 @@ static void bcm2835_sdhost_transfer_pio( + u32 sdhsts; + bool is_read; + BUG_ON(!host->data); +- log_event("XFP<", (u32)host->data, host->blocks); ++ log_event("XFP<", host->data, host->blocks); + + is_read = (host->data->flags & MMC_DATA_READ) != 0; + if (is_read) +@@ -773,7 +773,7 @@ static void bcm2835_sdhost_transfer_pio( + sdhsts); + host->data->error = -ETIMEDOUT; + } +- log_event("XFP>", (u32)host->data, host->blocks); ++ log_event("XFP>", host->data, host->blocks); + } + + static void bcm2835_sdhost_prepare_dma(struct bcm2835_host *host, +@@ -783,7 +783,7 @@ static void bcm2835_sdhost_prepare_dma(s + struct dma_async_tx_descriptor *desc = NULL; + struct dma_chan *dma_chan; + +- log_event("PRD<", (u32)data, 0); ++ log_event("PRD<", data, 0); + pr_debug("bcm2835_sdhost_prepare_dma()\n"); + + dma_chan = host->dma_chan_rxtx; +@@ -794,7 +794,7 @@ static void bcm2835_sdhost_prepare_dma(s + dir_data = DMA_TO_DEVICE; + dir_slave = DMA_MEM_TO_DEV; + } +- log_event("PRD1", (u32)dma_chan, 0); ++ log_event("PRD1", dma_chan, 0); + + BUG_ON(!dma_chan->device); + BUG_ON(!dma_chan->device->dev); +@@ -841,7 +841,7 @@ static void bcm2835_sdhost_prepare_dma(s + desc = dmaengine_prep_slave_sg(dma_chan, data->sg, + len, dir_slave, + DMA_PREP_INTERRUPT | DMA_CTRL_ACK); +- log_event("PRD3", (u32)desc, 0); ++ log_event("PRD3", desc, 0); + + if (desc) { + desc->callback = bcm2835_sdhost_dma_complete; +@@ -850,12 +850,12 @@ static void bcm2835_sdhost_prepare_dma(s + host->dma_chan = dma_chan; + host->dma_dir = dir_data; + } +- log_event("PDM>", (u32)data, 0); ++ log_event("PDM>", data, 0); + } + + static void bcm2835_sdhost_start_dma(struct bcm2835_host *host) + { +- log_event("SDMA", (u32)host->data, (u32)host->dma_chan); ++ log_event("SDMA", host->data, host->dma_chan); + dmaengine_submit(host->dma_desc); + dma_async_issue_pending(host->dma_chan); + } +@@ -1079,7 +1079,7 @@ static void bcm2835_sdhost_finish_data(s + data = host->data; + BUG_ON(!data); + +- log_event("FDA<", (u32)host->mrq, (u32)host->cmd); ++ log_event("FDA<", host->mrq, host->cmd); + pr_debug("finish_data(error %d, stop %d, sbc %d)\n", + data->error, data->stop ? 1 : 0, + host->mrq->sbc ? 1 : 0); +@@ -1102,7 +1102,7 @@ static void bcm2835_sdhost_finish_data(s + } + else + bcm2835_sdhost_transfer_complete(host); +- log_event("FDA>", (u32)host->mrq, (u32)host->cmd); ++ log_event("FDA>", host->mrq, host->cmd); + } + + static void bcm2835_sdhost_transfer_complete(struct bcm2835_host *host) +@@ -1116,7 +1116,7 @@ static void bcm2835_sdhost_transfer_comp + data = host->data; + host->data = NULL; + +- log_event("TCM<", (u32)data, data->error); ++ log_event("TCM<", data, data->error); + pr_debug("transfer_complete(error %d, stop %d)\n", + data->error, data->stop ? 1 : 0); + +@@ -1138,7 +1138,7 @@ static void bcm2835_sdhost_transfer_comp + bcm2835_sdhost_wait_transfer_complete(host); + tasklet_schedule(&host->finish_tasklet); + } +- log_event("TCM>", (u32)data, 0); ++ log_event("TCM>", data, 0); + } + + /* If irq_flags is valid, the caller is in a thread context and is allowed +@@ -1153,7 +1153,7 @@ static void bcm2835_sdhost_finish_comman + int timediff = 0; + #endif + +- log_event("FCM<", (u32)host->mrq, (u32)host->cmd); ++ log_event("FCM<", host->mrq, host->cmd); + pr_debug("finish_command(%x)\n", bcm2835_sdhost_read(host, SDCMD)); + + BUG_ON(!host->cmd || !host->mrq); +@@ -1310,7 +1310,7 @@ static void bcm2835_sdhost_finish_comman + else if (host->data_complete) + bcm2835_sdhost_transfer_complete(host); + } +- log_event("FCM>", (u32)host->mrq, (u32)host->cmd); ++ log_event("FCM>", host->mrq, host->cmd); + } + + static void bcm2835_sdhost_timeout(struct timer_list *t) +@@ -1347,7 +1347,7 @@ static void bcm2835_sdhost_timeout(struc + + static void bcm2835_sdhost_busy_irq(struct bcm2835_host *host, u32 intmask) + { +- log_event("IRQB", (u32)host->cmd, intmask); ++ log_event("IRQB", host->cmd, intmask); + if (!host->cmd) { + pr_err("%s: got command busy interrupt 0x%08x even " + "though no command operation was in progress.\n", +@@ -1400,7 +1400,7 @@ static void bcm2835_sdhost_data_irq(stru + data/space available FIFO status bits. It is therefore not + an error to get here when there is no data transfer in + progress. */ +- log_event("IRQD", (u32)host->data, intmask); ++ log_event("IRQD", host->data, intmask); + if (!host->data) + return; + +@@ -1437,7 +1437,7 @@ static void bcm2835_sdhost_data_irq(stru + + static void bcm2835_sdhost_block_irq(struct bcm2835_host *host, u32 intmask) + { +- log_event("IRQK", (u32)host->data, intmask); ++ log_event("IRQK", host->data, intmask); + if (!host->data) { + pr_err("%s: got block interrupt 0x%08x even " + "though no data operation was in progress.\n", +@@ -1695,10 +1695,10 @@ static void bcm2835_sdhost_request(struc + edm = bcm2835_sdhost_read(host, SDEDM); + fsm = edm & SDEDM_FSM_MASK; + +- log_event("REQ<", (u32)mrq, edm); ++ log_event("REQ<", mrq, edm); + if ((fsm != SDEDM_FSM_IDENTMODE) && + (fsm != SDEDM_FSM_DATAMODE)) { +- log_event("REQ!", (u32)mrq, edm); ++ log_event("REQ!", mrq, edm); + if (host->debug) { + pr_warn("%s: previous command (%d) not complete (EDM %x)\n", + mmc_hostname(host->mmc), +@@ -1730,11 +1730,11 @@ static void bcm2835_sdhost_request(struc + bcm2835_sdhost_finish_command(host, &flags); + } + +- log_event("CMD ", (u32)mrq->cmd->opcode, ++ log_event("CMD ", mrq->cmd->opcode, + mrq->data ? (u32)mrq->data->blksz : 0); + mmiowb(); + +- log_event("REQ>", (u32)mrq, 0); ++ log_event("REQ>", mrq, 0); + spin_unlock_irqrestore(&host->lock, flags); + } + +@@ -1790,7 +1790,7 @@ static void bcm2835_sdhost_cmd_wait_work + + spin_lock_irqsave(&host->lock, flags); + +- log_event("CWK<", (u32)host->cmd, (u32)host->mrq); ++ log_event("CWK<", host->cmd, host->mrq); + + /* + * If this tasklet gets rescheduled while running, it will +@@ -1805,7 +1805,7 @@ static void bcm2835_sdhost_cmd_wait_work + + mmiowb(); + +- log_event("CWK>", (u32)host->cmd, 0); ++ log_event("CWK>", host->cmd, 0); + + spin_unlock_irqrestore(&host->lock, flags); + } +@@ -1821,7 +1821,7 @@ static void bcm2835_sdhost_tasklet_finis + + spin_lock_irqsave(&host->lock, flags); + +- log_event("TSK<", (u32)host->mrq, 0); ++ log_event("TSK<", host->mrq, 0); + /* + * If this tasklet gets rescheduled while running, it will + * be run again afterwards but without any active request. +@@ -1889,7 +1889,7 @@ static void bcm2835_sdhost_tasklet_finis + } + + mmc_request_done(host->mmc, mrq); +- log_event("TSK>", (u32)mrq, 0); ++ log_event("TSK>", mrq, 0); + } + + int bcm2835_sdhost_add_host(struct bcm2835_host *host) |