Message ID | 20191119111423.10896-1-juergh@canonical.com |
---|---|
State | New |
Headers | show |
Series | [SRU,Bionic/raspi2] mmc: bcm2835-sdhost: Fix warnings on arm64 | expand |
On Tue, Nov 19, 2019 at 12:14:23PM +0100, Juerg Haefliger wrote: > From: Phil Elwell <phil@raspberrypi.org> > > BugLink: https://bugs.launchpad.net/bugs/1847432 Trivial cherry pick. Acked-by: Paolo Pisati <paolo.pisati@canonical.com>
On 11/19/19 3:14 AM, Juerg Haefliger wrote: > From: Phil Elwell <phil@raspberrypi.org> > > BugLink: https://bugs.launchpad.net/bugs/1847432 > > Signed-off-by: Phil Elwell <phil@raspberrypi.org> > (cherry picked from commit 328c7a754fde7f92f62062982a543ea187d7f452 rpi-4.19.y) > Signed-off-by: Juerg Haefliger <juergh@canonical.com> Acked-by: Connor Kuehl <connor.kuehl@canonical.com>
On 2019-11-19 12:14:23 , Juerg Haefliger wrote: > From: Phil Elwell <phil@raspberrypi.org> > > BugLink: https://bugs.launchpad.net/bugs/1847432 > > Signed-off-by: Phil Elwell <phil@raspberrypi.org> > (cherry picked from commit 328c7a754fde7f92f62062982a543ea187d7f452 rpi-4.19.y) > Signed-off-by: Juerg Haefliger <juergh@canonical.com> > --- > drivers/mmc/host/bcm2835-sdhost.c | 56 +++++++++++++++---------------- > 1 file changed, 28 insertions(+), 28 deletions(-) > > diff --git a/drivers/mmc/host/bcm2835-sdhost.c b/drivers/mmc/host/bcm2835-sdhost.c > index 34ae2be3647f..946cf3567675 100644 > --- 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, u32 bus_to_phys) > 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(void *param) > 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(void *param) > > 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(struct bcm2835_host *host) > 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(struct bcm2835_host *host) > 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(struct bcm2835_host *host, > 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(struct bcm2835_host *host, > 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(struct bcm2835_host *host, > 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(struct bcm2835_host *host, > 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(struct bcm2835_host *host) > 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(struct bcm2835_host *host) > } > 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_complete(struct bcm2835_host *host) > 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_complete(struct bcm2835_host *host) > 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_command(struct bcm2835_host *host, > 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); > @@ -1301,7 +1301,7 @@ static void bcm2835_sdhost_finish_command(struct bcm2835_host *host, > 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) > @@ -1338,7 +1338,7 @@ static void bcm2835_sdhost_timeout(struct timer_list *t) > > 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", > @@ -1391,7 +1391,7 @@ static void bcm2835_sdhost_data_irq(struct bcm2835_host *host, u32 intmask) > 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; > > @@ -1428,7 +1428,7 @@ static void bcm2835_sdhost_data_irq(struct bcm2835_host *host, u32 intmask) > > 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", > @@ -1686,10 +1686,10 @@ static void bcm2835_sdhost_request(struct mmc_host *mmc, struct mmc_request *mrq > 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), > @@ -1721,11 +1721,11 @@ static void bcm2835_sdhost_request(struct mmc_host *mmc, struct mmc_request *mrq > 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); > } > > @@ -1781,7 +1781,7 @@ static void bcm2835_sdhost_cmd_wait_work(struct work_struct *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 > @@ -1796,7 +1796,7 @@ static void bcm2835_sdhost_cmd_wait_work(struct work_struct *work) > > mmiowb(); > > - log_event("CWK>", (u32)host->cmd, 0); > + log_event("CWK>", host->cmd, 0); > > spin_unlock_irqrestore(&host->lock, flags); > } > @@ -1812,7 +1812,7 @@ static void bcm2835_sdhost_tasklet_finish(unsigned long param) > > 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. > @@ -1880,7 +1880,7 @@ static void bcm2835_sdhost_tasklet_finish(unsigned long param) > } > > 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) > -- > 2.20.1 > > > -- > kernel-team mailing list > kernel-team@lists.ubuntu.com > https://lists.ubuntu.com/mailman/listinfo/kernel-team
diff --git a/drivers/mmc/host/bcm2835-sdhost.c b/drivers/mmc/host/bcm2835-sdhost.c index 34ae2be3647f..946cf3567675 100644 --- 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, u32 bus_to_phys) 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(void *param) 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(void *param) 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(struct bcm2835_host *host) 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(struct bcm2835_host *host) 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(struct bcm2835_host *host, 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(struct bcm2835_host *host, 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(struct bcm2835_host *host, 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(struct bcm2835_host *host, 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(struct bcm2835_host *host) 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(struct bcm2835_host *host) } 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_complete(struct bcm2835_host *host) 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_complete(struct bcm2835_host *host) 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_command(struct bcm2835_host *host, 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); @@ -1301,7 +1301,7 @@ static void bcm2835_sdhost_finish_command(struct bcm2835_host *host, 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) @@ -1338,7 +1338,7 @@ static void bcm2835_sdhost_timeout(struct timer_list *t) 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", @@ -1391,7 +1391,7 @@ static void bcm2835_sdhost_data_irq(struct bcm2835_host *host, u32 intmask) 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; @@ -1428,7 +1428,7 @@ static void bcm2835_sdhost_data_irq(struct bcm2835_host *host, u32 intmask) 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", @@ -1686,10 +1686,10 @@ static void bcm2835_sdhost_request(struct mmc_host *mmc, struct mmc_request *mrq 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), @@ -1721,11 +1721,11 @@ static void bcm2835_sdhost_request(struct mmc_host *mmc, struct mmc_request *mrq 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); } @@ -1781,7 +1781,7 @@ static void bcm2835_sdhost_cmd_wait_work(struct work_struct *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 @@ -1796,7 +1796,7 @@ static void bcm2835_sdhost_cmd_wait_work(struct work_struct *work) mmiowb(); - log_event("CWK>", (u32)host->cmd, 0); + log_event("CWK>", host->cmd, 0); spin_unlock_irqrestore(&host->lock, flags); } @@ -1812,7 +1812,7 @@ static void bcm2835_sdhost_tasklet_finish(unsigned long param) 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. @@ -1880,7 +1880,7 @@ static void bcm2835_sdhost_tasklet_finish(unsigned long param) } 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)