Commit 90d95106 authored by Masahiro Yamada's avatar Masahiro Yamada Committed by Ulf Hansson

mmc: tmio, renesas_sdhi: move Renesas-specific DMA data to renesas_sdhi.h

struct tmio_mmc_host has "dma_dataend" and "dma_complete", but in fact,
they are Renesas private data.  Move them to renesas_sdhi.h
Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: default avatarWolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent 058db286
...@@ -39,6 +39,8 @@ struct tmio_mmc_dma { ...@@ -39,6 +39,8 @@ struct tmio_mmc_dma {
enum dma_slave_buswidth dma_buswidth; enum dma_slave_buswidth dma_buswidth;
bool (*filter)(struct dma_chan *chan, void *arg); bool (*filter)(struct dma_chan *chan, void *arg);
void (*enable)(struct tmio_mmc_host *host, bool enable); void (*enable)(struct tmio_mmc_host *host, bool enable);
struct completion dma_dataend;
struct tasklet_struct dma_complete;
}; };
struct renesas_sdhi { struct renesas_sdhi {
......
...@@ -132,7 +132,9 @@ renesas_sdhi_internal_dmac_abort_dma(struct tmio_mmc_host *host) { ...@@ -132,7 +132,9 @@ renesas_sdhi_internal_dmac_abort_dma(struct tmio_mmc_host *host) {
static void static void
renesas_sdhi_internal_dmac_dataend_dma(struct tmio_mmc_host *host) { renesas_sdhi_internal_dmac_dataend_dma(struct tmio_mmc_host *host) {
tasklet_schedule(&host->dma_complete); struct renesas_sdhi *priv = host_to_priv(host);
tasklet_schedule(&priv->dma_priv.dma_complete);
} }
static void static void
...@@ -222,10 +224,12 @@ static void ...@@ -222,10 +224,12 @@ static void
renesas_sdhi_internal_dmac_request_dma(struct tmio_mmc_host *host, renesas_sdhi_internal_dmac_request_dma(struct tmio_mmc_host *host,
struct tmio_mmc_data *pdata) struct tmio_mmc_data *pdata)
{ {
struct renesas_sdhi *priv = host_to_priv(host);
/* Each value is set to non-zero to assume "enabling" each DMA */ /* Each value is set to non-zero to assume "enabling" each DMA */
host->chan_rx = host->chan_tx = (void *)0xdeadbeaf; host->chan_rx = host->chan_tx = (void *)0xdeadbeaf;
tasklet_init(&host->dma_complete, tasklet_init(&priv->dma_priv.dma_complete,
renesas_sdhi_internal_dmac_complete_tasklet_fn, renesas_sdhi_internal_dmac_complete_tasklet_fn,
(unsigned long)host); (unsigned long)host);
tasklet_init(&host->dma_issue, tasklet_init(&host->dma_issue,
......
...@@ -140,12 +140,15 @@ static void renesas_sdhi_sys_dmac_abort_dma(struct tmio_mmc_host *host) ...@@ -140,12 +140,15 @@ static void renesas_sdhi_sys_dmac_abort_dma(struct tmio_mmc_host *host)
static void renesas_sdhi_sys_dmac_dataend_dma(struct tmio_mmc_host *host) static void renesas_sdhi_sys_dmac_dataend_dma(struct tmio_mmc_host *host)
{ {
complete(&host->dma_dataend); struct renesas_sdhi *priv = host_to_priv(host);
complete(&priv->dma_priv.dma_dataend);
} }
static void renesas_sdhi_sys_dmac_dma_callback(void *arg) static void renesas_sdhi_sys_dmac_dma_callback(void *arg)
{ {
struct tmio_mmc_host *host = arg; struct tmio_mmc_host *host = arg;
struct renesas_sdhi *priv = host_to_priv(host);
spin_lock_irq(&host->lock); spin_lock_irq(&host->lock);
...@@ -163,7 +166,7 @@ static void renesas_sdhi_sys_dmac_dma_callback(void *arg) ...@@ -163,7 +166,7 @@ static void renesas_sdhi_sys_dmac_dma_callback(void *arg)
spin_unlock_irq(&host->lock); spin_unlock_irq(&host->lock);
wait_for_completion(&host->dma_dataend); wait_for_completion(&priv->dma_priv.dma_dataend);
spin_lock_irq(&host->lock); spin_lock_irq(&host->lock);
tmio_mmc_do_data_irq(host); tmio_mmc_do_data_irq(host);
...@@ -173,6 +176,7 @@ static void renesas_sdhi_sys_dmac_dma_callback(void *arg) ...@@ -173,6 +176,7 @@ static void renesas_sdhi_sys_dmac_dma_callback(void *arg)
static void renesas_sdhi_sys_dmac_start_dma_rx(struct tmio_mmc_host *host) static void renesas_sdhi_sys_dmac_start_dma_rx(struct tmio_mmc_host *host)
{ {
struct renesas_sdhi *priv = host_to_priv(host);
struct scatterlist *sg = host->sg_ptr, *sg_tmp; struct scatterlist *sg = host->sg_ptr, *sg_tmp;
struct dma_async_tx_descriptor *desc = NULL; struct dma_async_tx_descriptor *desc = NULL;
struct dma_chan *chan = host->chan_rx; struct dma_chan *chan = host->chan_rx;
...@@ -216,7 +220,7 @@ static void renesas_sdhi_sys_dmac_start_dma_rx(struct tmio_mmc_host *host) ...@@ -216,7 +220,7 @@ static void renesas_sdhi_sys_dmac_start_dma_rx(struct tmio_mmc_host *host)
DMA_CTRL_ACK); DMA_CTRL_ACK);
if (desc) { if (desc) {
reinit_completion(&host->dma_dataend); reinit_completion(&priv->dma_priv.dma_dataend);
desc->callback = renesas_sdhi_sys_dmac_dma_callback; desc->callback = renesas_sdhi_sys_dmac_dma_callback;
desc->callback_param = host; desc->callback_param = host;
...@@ -247,6 +251,7 @@ static void renesas_sdhi_sys_dmac_start_dma_rx(struct tmio_mmc_host *host) ...@@ -247,6 +251,7 @@ static void renesas_sdhi_sys_dmac_start_dma_rx(struct tmio_mmc_host *host)
static void renesas_sdhi_sys_dmac_start_dma_tx(struct tmio_mmc_host *host) static void renesas_sdhi_sys_dmac_start_dma_tx(struct tmio_mmc_host *host)
{ {
struct renesas_sdhi *priv = host_to_priv(host);
struct scatterlist *sg = host->sg_ptr, *sg_tmp; struct scatterlist *sg = host->sg_ptr, *sg_tmp;
struct dma_async_tx_descriptor *desc = NULL; struct dma_async_tx_descriptor *desc = NULL;
struct dma_chan *chan = host->chan_tx; struct dma_chan *chan = host->chan_tx;
...@@ -295,7 +300,7 @@ static void renesas_sdhi_sys_dmac_start_dma_tx(struct tmio_mmc_host *host) ...@@ -295,7 +300,7 @@ static void renesas_sdhi_sys_dmac_start_dma_tx(struct tmio_mmc_host *host)
DMA_CTRL_ACK); DMA_CTRL_ACK);
if (desc) { if (desc) {
reinit_completion(&host->dma_dataend); reinit_completion(&priv->dma_priv.dma_dataend);
desc->callback = renesas_sdhi_sys_dmac_dma_callback; desc->callback = renesas_sdhi_sys_dmac_dma_callback;
desc->callback_param = host; desc->callback_param = host;
...@@ -424,7 +429,7 @@ static void renesas_sdhi_sys_dmac_request_dma(struct tmio_mmc_host *host, ...@@ -424,7 +429,7 @@ static void renesas_sdhi_sys_dmac_request_dma(struct tmio_mmc_host *host,
if (!host->bounce_buf) if (!host->bounce_buf)
goto ebouncebuf; goto ebouncebuf;
init_completion(&host->dma_dataend); init_completion(&priv->dma_priv.dma_dataend);
tasklet_init(&host->dma_issue, tasklet_init(&host->dma_issue,
renesas_sdhi_sys_dmac_issue_tasklet_fn, renesas_sdhi_sys_dmac_issue_tasklet_fn,
(unsigned long)host); (unsigned long)host);
......
...@@ -148,8 +148,6 @@ struct tmio_mmc_host { ...@@ -148,8 +148,6 @@ struct tmio_mmc_host {
bool force_pio; bool force_pio;
struct dma_chan *chan_rx; struct dma_chan *chan_rx;
struct dma_chan *chan_tx; struct dma_chan *chan_tx;
struct completion dma_dataend;
struct tasklet_struct dma_complete;
struct tasklet_struct dma_issue; struct tasklet_struct dma_issue;
struct scatterlist bounce_sg; struct scatterlist bounce_sg;
u8 *bounce_buf; u8 *bounce_buf;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment