mmc: remove the MMC_DATA_STREAM flag
Subsystems (7)
Jaehoon Chung
maintainerRFC PATCH 1/1 mmc: remove the MMC_DATA_STREAM flag
It's not set to MMC_DATA_STREAM anywhere.
It seems that it had used with CMD11/20. But now CMD11/20 didn't also use.
I didn't know what is exactly, so i sent the patch as just RFC.
If i get some comments for this, i will resend the patch after separate to each host controller.
If MMC_DATA_STREAM can be removed, then flags of data should be then one of MMC_DATA_READ and MMC_DATA_WRITE.
--- drivers/mmc/card/block.c | 6 +++--- drivers/mmc/host/atmel-mci.c | 9 ++------- drivers/mmc/host/bfin_sdh.c | 3 --- drivers/mmc/host/davinci_mmc.c | 15 +++------------ drivers/mmc/host/dw_mmc.c | 2 -- drivers/mmc/host/jz4740_mmc.c | 2 -- drivers/mmc/host/mxcmmc.c | 3 --- drivers/mmc/host/pxamci.c | 6 ------ drivers/mmc/host/s3cmci.c | 3 +-- drivers/mmc/host/sunxi-mmc.c | 5 ----- include/linux/mmc/core.h | 1 - 11 files changed, 9 insertions(+), 46 deletions(-)
drivers/mmc/card/block.c +3 -3
@@ -1525,13 +1525,13 @@ static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq, }if (rq_data_dir (req) ==READ ) { brq->cmd.opcode = readcmd; - brq->data.flags |=MMC_DATA_READ ; + brq->data.flags =MMC_DATA_READ ;if (brq->mrq.stop) brq->stop.flags =MMC_RSP_SPI_R1 |MMC_RSP_R1 |MMC_CMD_AC ; }else { brq->cmd.opcode = writecmd; - brq->data.flags |=MMC_DATA_WRITE ; + brq->data.flags =MMC_DATA_WRITE ;if (brq->mrq.stop) brq->stop.flags =MMC_RSP_SPI_R1B |MMC_RSP_R1B |MMC_CMD_AC ;
@@ -1800,7 +1800,7 @@ static void mmc_blk_packed_hdr_wrq_prep(struct mmc_queue_req *mqrq, brq->data.blksz =512 ; brq->data.blocks = packed->blocks + hdr_blocks; - brq->data.flags |=MMC_DATA_WRITE ; + brq->data.flags =MMC_DATA_WRITE ; brq->stop.opcode =MMC_STOP_TRANSMISSION ; brq->stop.arg =0 ;
drivers/mmc/host/atmel-mci.c +2 -7
@@ -849,9 +849,7 @@ static u32 atmci_prepare_command(struct mmc_host *mmc,if (cmd->opcode ==SD_IO_RW_EXTENDED ) { cmdr |=ATMCI_CMDR_SDIO_BLOCK ; }else { -if (data->flags &MMC_DATA_STREAM ) - cmdr |=ATMCI_CMDR_STREAM ; -else if (data->blocks >1 ) +if (data->blocks >1 ) cmdr |=ATMCI_CMDR_MULTI_BLOCK ;else cmdr |=ATMCI_CMDR_BLOCK ;
@@ -1372,10 +1370,7 @@ static void atmci_start_request(struct atmel_mci *host, host->stop_cmdr |=ATMCI_CMDR_STOP_XFER ;if (!(data->flags &MMC_DATA_WRITE )) host->stop_cmdr |=ATMCI_CMDR_TRDIR_READ ; -if (data->flags &MMC_DATA_STREAM ) - host->stop_cmdr |=ATMCI_CMDR_STREAM ; -else - host->stop_cmdr |=ATMCI_CMDR_MULTI_BLOCK ; + host->stop_cmdr |=ATMCI_CMDR_MULTI_BLOCK ; }/*
drivers/mmc/host/bfin_sdh.c +0 -3
@@ -126,9 +126,6 @@ static int sdh_setup_data(struct sdh_host *host, struct mmc_data *data) length = data->blksz * data->blocks;bfin_write_SDH_DATA_LGTH (length); -if (data->flags &MMC_DATA_STREAM ) - data_ctl |=DTX_MODE ; -if (data->flags &MMC_DATA_READ ) data_ctl |=DTX_DIR ;/* Only supports power-of-2 block size */
drivers/mmc/host/davinci_mmc.c +3 -12
@@ -346,10 +346,6 @@ static void mmc_davinci_start_command(struct mmc_davinci_host *host,if (cmd->data) cmd_reg |=MMCCMD_WDATX ; -/* Setting whether stream or block transfer */ -if (cmd->flags &MMC_DATA_STREAM ) - cmd_reg |=MMCCMD_STRMTP ; -/* Setting whether data read or write */ if (host->data_dir ==DAVINCI_MMC_DATADIR_WRITE ) cmd_reg |=MMCCMD_DTRW ;
@@ -568,8 +564,7 @@ mmc_davinci_prepare_data(struct mmc_davinci_host *host, struct mmc_request *req)return ; } -dev_dbg (mmc_dev (host->mmc),"%s %s, %d blocks of %d bytes\n" , - (data->flags &MMC_DATA_STREAM ) ?"stream" :"block" , +dev_dbg (mmc_dev (host->mmc),"%s, %d blocks of %d bytes\n" , (data->flags &MMC_DATA_WRITE ) ?"write" :"read" , data->blocks, data->blksz); dev_dbg(mmc_dev(host->mmc), " DTO %d cycles + %d ns\n",
@@ -584,22 +579,18 @@ mmc_davinci_prepare_data(struct mmc_davinci_host *host, struct mmc_request *req)writel (data->blksz, host->base +DAVINCI_MMCBLEN );/* Configure the FIFO */ -switch (data->flags &MMC_DATA_WRITE ) { -case MMC_DATA_WRITE : +if (data->flags &MMC_DATA_WRITE ) { host->data_dir =DAVINCI_MMC_DATADIR_WRITE ;writel (fifo_lev |MMCFIFOCTL_FIFODIR_WR |MMCFIFOCTL_FIFORST , host->base +DAVINCI_MMCFIFOCTL );writel (fifo_lev |MMCFIFOCTL_FIFODIR_WR , host->base +DAVINCI_MMCFIFOCTL ); -break ; - -default : + }else { host->data_dir =DAVINCI_MMC_DATADIR_READ ;writel (fifo_lev |MMCFIFOCTL_FIFODIR_RD |MMCFIFOCTL_FIFORST , host->base +DAVINCI_MMCFIFOCTL );writel (fifo_lev |MMCFIFOCTL_FIFODIR_RD , host->base +DAVINCI_MMCFIFOCTL ); -break ; } host->buffer =NULL ;
drivers/mmc/host/dw_mmc.c +0 -2
@@ -290,8 +290,6 @@ static u32 dw_mci_prepare_command(struct mmc_host *mmc, struct mmc_command *cmd) data = cmd->data;if (data) { cmdr |=SDMMC_CMD_DAT_EXP ; -if (data->flags &MMC_DATA_STREAM ) - cmdr |=SDMMC_CMD_STRM_MODE ;if (data->flags &MMC_DATA_WRITE ) cmdr |=SDMMC_CMD_DAT_WR ; }
drivers/mmc/host/jz4740_mmc.c +0 -2
@@ -660,8 +660,6 @@ static void jz4740_mmc_send_command(struct jz4740_mmc_host *host, cmdat |=JZ_MMC_CMDAT_DATA_EN ;if (cmd->data->flags &MMC_DATA_WRITE ) cmdat |=JZ_MMC_CMDAT_WRITE ; -if (cmd->data->flags &MMC_DATA_STREAM ) - cmdat |=JZ_MMC_CMDAT_STREAM ;if (host->use_dma) cmdat |=JZ_MMC_CMDAT_DMA_EN ;
drivers/mmc/host/mxcmmc.c +0 -3
@@ -307,9 +307,6 @@ static int mxcmci_setup_data(struct mxcmci_host *host, struct mmc_data *data)enum dma_transfer_direction slave_dirn;int i, nents; -if (data->flags &MMC_DATA_STREAM ) - nob =0xffff ; - host->data = data; data->bytes_xfered =0 ;
drivers/mmc/host/pxamci.c +0 -6
@@ -191,9 +191,6 @@ static void pxamci_setup_data(struct pxamci_host *host, struct mmc_data *data) host->data = data; -if (data->flags &MMC_DATA_STREAM ) - nob =0xffff ; -writel (nob, host->base +MMC_NOB );writel (data->blksz, host->base +MMC_BLKLEN );
@@ -443,9 +440,6 @@ static void pxamci_request(struct mmc_host *mmc, struct mmc_request *mrq) cmdat |=CMDAT_DATAEN |CMDAT_DMAEN ;if (mrq->data->flags &MMC_DATA_WRITE ) cmdat |=CMDAT_WRITE ; - -if (mrq->data->flags &MMC_DATA_STREAM ) - cmdat |=CMDAT_STREAM ; }pxamci_start_cmd (host, mrq->cmd, cmdat);
drivers/mmc/host/s3cmci.c +1 -2
@@ -1014,8 +1014,7 @@ static int s3cmci_setup_data(struct s3cmci_host *host, struct mmc_data *data)if (host->bus_width ==MMC_BUS_WIDTH_4 ) dcon |=S3C2410_SDIDCON_WIDEBUS ; -if (!(data->flags &MMC_DATA_STREAM )) - dcon |=S3C2410_SDIDCON_BLOCKMODE ; + dcon |=S3C2410_SDIDCON_BLOCKMODE ;if (data->flags &MMC_DATA_WRITE ) { dcon |=S3C2410_SDIDCON_TXAFTERRESP ;
drivers/mmc/host/sunxi-mmc.c +0 -5
@@ -815,11 +815,6 @@ static void sunxi_mmc_request(struct mmc_host *mmc, struct mmc_request *mrq)if ((cmd->flags &MMC_CMD_MASK ) ==MMC_CMD_ADTC ) { cmd_val |=SDXC_DATA_EXPIRE |SDXC_WAIT_PRE_OVER ; -if (cmd->data->flags &MMC_DATA_STREAM ) { - imask |=SDXC_AUTO_COMMAND_DONE ; - cmd_val |=SDXC_SEQUENCE_MODE | -SDXC_SEND_AUTO_STOP ; - }if (cmd->data->stop) { imask |=SDXC_AUTO_COMMAND_DONE ;
include/linux/mmc/core.h +0 -1
@@ -113,7 +113,6 @@ struct mmc_data {#define MMC_DATA_WRITE (1 << 8)#define MMC_DATA_READ (1 << 9) -#define MMC_DATA_STREAM (1 << 10)unsigned int bytes_xfered;
Signature · 1 line
1.9.1
Quoted 11 lines · Jaehoon Chung
It's not set to
MMC_DATA_STREAManywhere.
It seems that it had used with CMD11/20. But now CMD11/20 didn't also use.
I didn't know what is exactly, so i sent the patch as just RFC.
If i get some comments for this, i will resend the patch after separate to each host controller.If
MMC_DATA_STREAMcan be removed, then flags of data should be then one ofMMC_DATA_READandMMC_DATA_WRITE.Signed-off-by Jaehoon Chung <[email protected]>--- drivers/mmc/card/block.c | 6 +++--- drivers/mmc/host/atmel-mci.c | 9 ++-------
Hi,
Since I don't have use case in mind of data stream instead of blocks and it became dead code, you can add my
for atmel-mci.c.
Regards
Ludovic
Quoted 239 lines
drivers/mmc/host/bfin_sdh.c | 3 --- drivers/mmc/host/davinci_mmc.c | 15 +++------------ drivers/mmc/host/dw_mmc.c | 2 -- drivers/mmc/host/jz4740_mmc.c | 2 -- drivers/mmc/host/mxcmmc.c | 3 --- drivers/mmc/host/pxamci.c | 6 ------ drivers/mmc/host/s3cmci.c | 3 +-- drivers/mmc/host/sunxi-mmc.c | 5 ----- include/linux/mmc/core.h | 1 - 11 files changed, 9 insertions(+), 46 deletions(-)drivers/mmc/card/block.c +3
-3@@ -1525,13 +1525,13 @@ static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq, }if (rq_data_dir (req) ==READ ) { brq->cmd.opcode = readcmd; - brq->data.flags |=MMC_DATA_READ ; + brq->data.flags =MMC_DATA_READ ;if (brq->mrq.stop) brq->stop.flags =MMC_RSP_SPI_R1 |MMC_RSP_R1 |MMC_CMD_AC ; }else { brq->cmd.opcode = writecmd; - brq->data.flags |=MMC_DATA_WRITE ; + brq->data.flags =MMC_DATA_WRITE ;if (brq->mrq.stop) brq->stop.flags =MMC_RSP_SPI_R1B |MMC_RSP_R1B |MMC_CMD_AC ;@@ -1800,7 +1800,7 @@ static void mmc_blk_packed_hdr_wrq_prep(struct mmc_queue_req *mqrq, brq->data.blksz =512 ; brq->data.blocks = packed->blocks + hdr_blocks; - brq->data.flags |=MMC_DATA_WRITE ; + brq->data.flags =MMC_DATA_WRITE ; brq->stop.opcode =MMC_STOP_TRANSMISSION ; brq->stop.arg =0 ;drivers/mmc/host/atmel-mci.c +2
-7@@ -849,9 +849,7 @@ static u32 atmci_prepare_command(struct mmc_host *mmc,if (cmd->opcode ==SD_IO_RW_EXTENDED ) { cmdr |=ATMCI_CMDR_SDIO_BLOCK ; }else { -if (data->flags &MMC_DATA_STREAM ) - cmdr |=ATMCI_CMDR_STREAM ; -else if (data->blocks >1 ) +if (data->blocks >1 ) cmdr |=ATMCI_CMDR_MULTI_BLOCK ;else cmdr |=ATMCI_CMDR_BLOCK ;@@ -1372,10 +1370,7 @@ static void atmci_start_request(struct atmel_mci *host, host->stop_cmdr |=ATMCI_CMDR_STOP_XFER ;if (!(data->flags &MMC_DATA_WRITE )) host->stop_cmdr |=ATMCI_CMDR_TRDIR_READ ; -if (data->flags &MMC_DATA_STREAM ) - host->stop_cmdr |=ATMCI_CMDR_STREAM ; -else - host->stop_cmdr |=ATMCI_CMDR_MULTI_BLOCK ; + host->stop_cmdr |=ATMCI_CMDR_MULTI_BLOCK ; }/* drivers/mmc/host/bfin_sdh.c +0
-3@@ -126,9 +126,6 @@ static int sdh_setup_data(struct sdh_host *host, struct mmc_data *data) length = data->blksz * data->blocks;bfin_write_SDH_DATA_LGTH (length); -if (data->flags &MMC_DATA_STREAM ) - data_ctl |=DTX_MODE ; -if (data->flags &MMC_DATA_READ ) data_ctl |=DTX_DIR ;/* Only supports power-of-2 block size */ drivers/mmc/host/davinci_mmc.c +3
-12@@ -346,10 +346,6 @@ static void mmc_davinci_start_command(struct mmc_davinci_host *host,if (cmd->data) cmd_reg |=MMCCMD_WDATX ; -/* Setting whether stream or block transfer */ -if (cmd->flags &MMC_DATA_STREAM ) - cmd_reg |=MMCCMD_STRMTP ; -/* Setting whether data read or write */ if (host->data_dir ==DAVINCI_MMC_DATADIR_WRITE ) cmd_reg |=MMCCMD_DTRW ;@@ -568,8 +564,7 @@ mmc_davinci_prepare_data(struct mmc_davinci_host *host, struct mmc_request *req)return ; } -dev_dbg (mmc_dev (host->mmc),"%s %s, %d blocks of %d bytes\n" , - (data->flags &MMC_DATA_STREAM ) ?"stream" :"block" , +dev_dbg (mmc_dev (host->mmc),"%s, %d blocks of %d bytes\n" , (data->flags &MMC_DATA_WRITE ) ?"write" :"read" , data->blocks, data->blksz); dev_dbg(mmc_dev(host->mmc), " DTO %d cycles + %d ns\n",@@ -584,22 +579,18 @@ mmc_davinci_prepare_data(struct mmc_davinci_host *host, struct mmc_request *req)writel (data->blksz, host->base +DAVINCI_MMCBLEN );/* Configure the FIFO */ -switch (data->flags &MMC_DATA_WRITE ) { -case MMC_DATA_WRITE : +if (data->flags &MMC_DATA_WRITE ) { host->data_dir =DAVINCI_MMC_DATADIR_WRITE ;writel (fifo_lev |MMCFIFOCTL_FIFODIR_WR |MMCFIFOCTL_FIFORST , host->base +DAVINCI_MMCFIFOCTL );writel (fifo_lev |MMCFIFOCTL_FIFODIR_WR , host->base +DAVINCI_MMCFIFOCTL ); -break ; - -default : + }else { host->data_dir =DAVINCI_MMC_DATADIR_READ ;writel (fifo_lev |MMCFIFOCTL_FIFODIR_RD |MMCFIFOCTL_FIFORST , host->base +DAVINCI_MMCFIFOCTL );writel (fifo_lev |MMCFIFOCTL_FIFODIR_RD , host->base +DAVINCI_MMCFIFOCTL ); -break ; } host->buffer =NULL ;drivers/mmc/host/dw_mmc.c +0
-2@@ -290,8 +290,6 @@ static u32 dw_mci_prepare_command(struct mmc_host *mmc, struct mmc_command *cmd) data = cmd->data;if (data) { cmdr |=SDMMC_CMD_DAT_EXP ; -if (data->flags &MMC_DATA_STREAM ) - cmdr |=SDMMC_CMD_STRM_MODE ;if (data->flags &MMC_DATA_WRITE ) cmdr |=SDMMC_CMD_DAT_WR ; }drivers/mmc/host/jz4740_mmc.c +0
-2@@ -660,8 +660,6 @@ static void jz4740_mmc_send_command(struct jz4740_mmc_host *host, cmdat |=JZ_MMC_CMDAT_DATA_EN ;if (cmd->data->flags &MMC_DATA_WRITE ) cmdat |=JZ_MMC_CMDAT_WRITE ; -if (cmd->data->flags &MMC_DATA_STREAM ) - cmdat |=JZ_MMC_CMDAT_STREAM ;if (host->use_dma) cmdat |=JZ_MMC_CMDAT_DMA_EN ;drivers/mmc/host/mxcmmc.c +0
-3@@ -307,9 +307,6 @@ static int mxcmci_setup_data(struct mxcmci_host *host, struct mmc_data *data)enum dma_transfer_direction slave_dirn;int i, nents; -if (data->flags &MMC_DATA_STREAM ) - nob =0xffff ; - host->data = data; data->bytes_xfered =0 ;drivers/mmc/host/pxamci.c +0
-6@@ -191,9 +191,6 @@ static void pxamci_setup_data(struct pxamci_host *host, struct mmc_data *data) host->data = data; -if (data->flags &MMC_DATA_STREAM ) - nob =0xffff ; -writel (nob, host->base +MMC_NOB );writel (data->blksz, host->base +MMC_BLKLEN );@@ -443,9 +440,6 @@ static void pxamci_request(struct mmc_host *mmc, struct mmc_request *mrq) cmdat |=CMDAT_DATAEN |CMDAT_DMAEN ;if (mrq->data->flags &MMC_DATA_WRITE ) cmdat |=CMDAT_WRITE ; - -if (mrq->data->flags &MMC_DATA_STREAM ) - cmdat |=CMDAT_STREAM ; }pxamci_start_cmd (host, mrq->cmd, cmdat);drivers/mmc/host/s3cmci.c +1
-2@@ -1014,8 +1014,7 @@ static int s3cmci_setup_data(struct s3cmci_host *host, struct mmc_data *data)if (host->bus_width ==MMC_BUS_WIDTH_4 ) dcon |=S3C2410_SDIDCON_WIDEBUS ; -if (!(data->flags &MMC_DATA_STREAM )) - dcon |=S3C2410_SDIDCON_BLOCKMODE ; + dcon |=S3C2410_SDIDCON_BLOCKMODE ;if (data->flags &MMC_DATA_WRITE ) { dcon |=S3C2410_SDIDCON_TXAFTERRESP ;drivers/mmc/host/sunxi-mmc.c +0
-5@@ -815,11 +815,6 @@ static void sunxi_mmc_request(struct mmc_host *mmc, struct mmc_request *mrq)if ((cmd->flags &MMC_CMD_MASK ) ==MMC_CMD_ADTC ) { cmd_val |=SDXC_DATA_EXPIRE |SDXC_WAIT_PRE_OVER ; -if (cmd->data->flags &MMC_DATA_STREAM ) { - imask |=SDXC_AUTO_COMMAND_DONE ; - cmd_val |=SDXC_SEQUENCE_MODE | -SDXC_SEND_AUTO_STOP ; - }if (cmd->data->stop) { imask |=SDXC_AUTO_COMMAND_DONE ;include/linux/mmc/core.h +0
-1@@ -113,7 +113,6 @@ struct mmc_data {#define MMC_DATA_WRITE (1 << 8)#define MMC_DATA_READ (1 << 9) -#define MMC_DATA_STREAM (1 << 10)unsigned int bytes_xfered;Signature · 1 line
1.9.1
Jaehoon Chung
maintainerHi,
Quoted 13 lines · Ludovic Desroches
Quoted 11 lines · Jaehoon Chung
It's not set to
MMC_DATA_STREAManywhere.
It seems that it had used with CMD11/20. But now CMD11/20 didn't also use.
I didn't know what is exactly, so i sent the patch as just RFC.
If i get some comments for this, i will resend the patch after separate to each host controller.If
MMC_DATA_STREAMcan be removed, then flags of data should be then one ofMMC_DATA_READandMMC_DATA_WRITE.Signed-off-by Jaehoon Chung <[email protected]>--- drivers/mmc/card/block.c | 6 +++--- drivers/mmc/host/atmel-mci.c | 9 ++-------
Quoted 5 lines
Hi,
Since I don't have use case in mind of data stream instead of blocks and it became dead code, you can add my
Ludovic, Thanks for reviewing this.
Do other guys have any comment? If give me the comment, it's helpful to me.
Best Regards,
Jaehoon Chung
Quoted 248 lines
for
atmel-mci.c.Regards
Ludovic
Quoted 239 lines
drivers/mmc/host/bfin_sdh.c | 3 --- drivers/mmc/host/davinci_mmc.c | 15 +++------------ drivers/mmc/host/dw_mmc.c | 2 -- drivers/mmc/host/jz4740_mmc.c | 2 -- drivers/mmc/host/mxcmmc.c | 3 --- drivers/mmc/host/pxamci.c | 6 ------ drivers/mmc/host/s3cmci.c | 3 +-- drivers/mmc/host/sunxi-mmc.c | 5 ----- include/linux/mmc/core.h | 1 - 11 files changed, 9 insertions(+), 46 deletions(-)drivers/mmc/card/block.c +3
-3@@ -1525,13 +1525,13 @@ static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq, }if (rq_data_dir (req) ==READ ) { brq->cmd.opcode = readcmd; - brq->data.flags |=MMC_DATA_READ ; + brq->data.flags =MMC_DATA_READ ;if (brq->mrq.stop) brq->stop.flags =MMC_RSP_SPI_R1 |MMC_RSP_R1 |MMC_CMD_AC ; }else { brq->cmd.opcode = writecmd; - brq->data.flags |=MMC_DATA_WRITE ; + brq->data.flags =MMC_DATA_WRITE ;if (brq->mrq.stop) brq->stop.flags =MMC_RSP_SPI_R1B |MMC_RSP_R1B |MMC_CMD_AC ;@@ -1800,7 +1800,7 @@ static void mmc_blk_packed_hdr_wrq_prep(struct mmc_queue_req *mqrq, brq->data.blksz =512 ; brq->data.blocks = packed->blocks + hdr_blocks; - brq->data.flags |=MMC_DATA_WRITE ; + brq->data.flags =MMC_DATA_WRITE ; brq->stop.opcode =MMC_STOP_TRANSMISSION ; brq->stop.arg =0 ;drivers/mmc/host/atmel-mci.c +2
-7@@ -849,9 +849,7 @@ static u32 atmci_prepare_command(struct mmc_host *mmc,if (cmd->opcode ==SD_IO_RW_EXTENDED ) { cmdr |=ATMCI_CMDR_SDIO_BLOCK ; }else { -if (data->flags &MMC_DATA_STREAM ) - cmdr |=ATMCI_CMDR_STREAM ; -else if (data->blocks >1 ) +if (data->blocks >1 ) cmdr |=ATMCI_CMDR_MULTI_BLOCK ;else cmdr |=ATMCI_CMDR_BLOCK ;@@ -1372,10 +1370,7 @@ static void atmci_start_request(struct atmel_mci *host, host->stop_cmdr |=ATMCI_CMDR_STOP_XFER ;if (!(data->flags &MMC_DATA_WRITE )) host->stop_cmdr |=ATMCI_CMDR_TRDIR_READ ; -if (data->flags &MMC_DATA_STREAM ) - host->stop_cmdr |=ATMCI_CMDR_STREAM ; -else - host->stop_cmdr |=ATMCI_CMDR_MULTI_BLOCK ; + host->stop_cmdr |=ATMCI_CMDR_MULTI_BLOCK ; }/* drivers/mmc/host/bfin_sdh.c +0
-3@@ -126,9 +126,6 @@ static int sdh_setup_data(struct sdh_host *host, struct mmc_data *data) length = data->blksz * data->blocks;bfin_write_SDH_DATA_LGTH (length); -if (data->flags &MMC_DATA_STREAM ) - data_ctl |=DTX_MODE ; -if (data->flags &MMC_DATA_READ ) data_ctl |=DTX_DIR ;/* Only supports power-of-2 block size */ drivers/mmc/host/davinci_mmc.c +3
-12@@ -346,10 +346,6 @@ static void mmc_davinci_start_command(struct mmc_davinci_host *host,if (cmd->data) cmd_reg |=MMCCMD_WDATX ; -/* Setting whether stream or block transfer */ -if (cmd->flags &MMC_DATA_STREAM ) - cmd_reg |=MMCCMD_STRMTP ; -/* Setting whether data read or write */ if (host->data_dir ==DAVINCI_MMC_DATADIR_WRITE ) cmd_reg |=MMCCMD_DTRW ;@@ -568,8 +564,7 @@ mmc_davinci_prepare_data(struct mmc_davinci_host *host, struct mmc_request *req)return ; } -dev_dbg (mmc_dev (host->mmc),"%s %s, %d blocks of %d bytes\n" , - (data->flags &MMC_DATA_STREAM ) ?"stream" :"block" , +dev_dbg (mmc_dev (host->mmc),"%s, %d blocks of %d bytes\n" , (data->flags &MMC_DATA_WRITE ) ?"write" :"read" , data->blocks, data->blksz); dev_dbg(mmc_dev(host->mmc), " DTO %d cycles + %d ns\n",@@ -584,22 +579,18 @@ mmc_davinci_prepare_data(struct mmc_davinci_host *host, struct mmc_request *req)writel (data->blksz, host->base +DAVINCI_MMCBLEN );/* Configure the FIFO */ -switch (data->flags &MMC_DATA_WRITE ) { -case MMC_DATA_WRITE : +if (data->flags &MMC_DATA_WRITE ) { host->data_dir =DAVINCI_MMC_DATADIR_WRITE ;writel (fifo_lev |MMCFIFOCTL_FIFODIR_WR |MMCFIFOCTL_FIFORST , host->base +DAVINCI_MMCFIFOCTL );writel (fifo_lev |MMCFIFOCTL_FIFODIR_WR , host->base +DAVINCI_MMCFIFOCTL ); -break ; - -default : + }else { host->data_dir =DAVINCI_MMC_DATADIR_READ ;writel (fifo_lev |MMCFIFOCTL_FIFODIR_RD |MMCFIFOCTL_FIFORST , host->base +DAVINCI_MMCFIFOCTL );writel (fifo_lev |MMCFIFOCTL_FIFODIR_RD , host->base +DAVINCI_MMCFIFOCTL ); -break ; } host->buffer =NULL ;drivers/mmc/host/dw_mmc.c +0
-2@@ -290,8 +290,6 @@ static u32 dw_mci_prepare_command(struct mmc_host *mmc, struct mmc_command *cmd) data = cmd->data;if (data) { cmdr |=SDMMC_CMD_DAT_EXP ; -if (data->flags &MMC_DATA_STREAM ) - cmdr |=SDMMC_CMD_STRM_MODE ;if (data->flags &MMC_DATA_WRITE ) cmdr |=SDMMC_CMD_DAT_WR ; }drivers/mmc/host/jz4740_mmc.c +0
-2@@ -660,8 +660,6 @@ static void jz4740_mmc_send_command(struct jz4740_mmc_host *host, cmdat |=JZ_MMC_CMDAT_DATA_EN ;if (cmd->data->flags &MMC_DATA_WRITE ) cmdat |=JZ_MMC_CMDAT_WRITE ; -if (cmd->data->flags &MMC_DATA_STREAM ) - cmdat |=JZ_MMC_CMDAT_STREAM ;if (host->use_dma) cmdat |=JZ_MMC_CMDAT_DMA_EN ;drivers/mmc/host/mxcmmc.c +0
-3@@ -307,9 +307,6 @@ static int mxcmci_setup_data(struct mxcmci_host *host, struct mmc_data *data)enum dma_transfer_direction slave_dirn;int i, nents; -if (data->flags &MMC_DATA_STREAM ) - nob =0xffff ; - host->data = data; data->bytes_xfered =0 ;drivers/mmc/host/pxamci.c +0
-6@@ -191,9 +191,6 @@ static void pxamci_setup_data(struct pxamci_host *host, struct mmc_data *data) host->data = data; -if (data->flags &MMC_DATA_STREAM ) - nob =0xffff ; -writel (nob, host->base +MMC_NOB );writel (data->blksz, host->base +MMC_BLKLEN );@@ -443,9 +440,6 @@ static void pxamci_request(struct mmc_host *mmc, struct mmc_request *mrq) cmdat |=CMDAT_DATAEN |CMDAT_DMAEN ;if (mrq->data->flags &MMC_DATA_WRITE ) cmdat |=CMDAT_WRITE ; - -if (mrq->data->flags &MMC_DATA_STREAM ) - cmdat |=CMDAT_STREAM ; }pxamci_start_cmd (host, mrq->cmd, cmdat);drivers/mmc/host/s3cmci.c +1
-2@@ -1014,8 +1014,7 @@ static int s3cmci_setup_data(struct s3cmci_host *host, struct mmc_data *data)if (host->bus_width ==MMC_BUS_WIDTH_4 ) dcon |=S3C2410_SDIDCON_WIDEBUS ; -if (!(data->flags &MMC_DATA_STREAM )) - dcon |=S3C2410_SDIDCON_BLOCKMODE ; + dcon |=S3C2410_SDIDCON_BLOCKMODE ;if (data->flags &MMC_DATA_WRITE ) { dcon |=S3C2410_SDIDCON_TXAFTERRESP ;drivers/mmc/host/sunxi-mmc.c +0
-5@@ -815,11 +815,6 @@ static void sunxi_mmc_request(struct mmc_host *mmc, struct mmc_request *mrq)if ((cmd->flags &MMC_CMD_MASK ) ==MMC_CMD_ADTC ) { cmd_val |=SDXC_DATA_EXPIRE |SDXC_WAIT_PRE_OVER ; -if (cmd->data->flags &MMC_DATA_STREAM ) { - imask |=SDXC_AUTO_COMMAND_DONE ; - cmd_val |=SDXC_SEQUENCE_MODE | -SDXC_SEND_AUTO_STOP ; - }if (cmd->data->stop) { imask |=SDXC_AUTO_COMMAND_DONE ;include/linux/mmc/core.h +0
-1@@ -113,7 +113,6 @@ struct mmc_data {#define MMC_DATA_WRITE (1 << 8)#define MMC_DATA_READ (1 << 9) -#define MMC_DATA_STREAM (1 << 10)unsigned int bytes_xfered;Signature · 1 line
1.9.1
Quoted 7 lines · Jaehoon Chung
It's not set to
MMC_DATA_STREAManywhere.
It seems that it had used with CMD11/20. But now CMD11/20 didn't also use.
I didn't know what is exactly, so i sent the patch as just RFC.
If i get some comments for this, i will resend the patch after separate to each host controller.If
MMC_DATA_STREAMcan be removed, then flags of data should be then one ofMMC_DATA_READandMMC_DATA_WRITE.
The commit message won't pass checkpatch, will it ?
drivers/mmc/card/block.c static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq, · line 1528
Quoted 8 lines
drivers/mmc/card/block.c +1
-1@@ -1525,13 +1525,13 @@ static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq, }if (rq_data_dir (req) ==READ ) { brq->cmd.opcode = readcmd; - brq->data.flags |=MMC_DATA_READ ; + brq->data.flags =MMC_DATA_READ ;
Why this chunk ? If the caller had already set some flags of its own, why overwrite them ? That has no connection to MMC_DATA_STREAM I can see.
...
drivers/mmc/card/block.c static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq, · line 1529
Quoted 2 lines
drivers/mmc/card/block.c +1
-1- brq->data.flags |=MMC_DATA_WRITE ; + brq->data.flags =MMC_DATA_WRITE ;
Ditto.
drivers/mmc/card/block.c static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq, · line 1530
Quoted 2 lines
drivers/mmc/card/block.c +1
-1- brq->data.flags |=MMC_DATA_WRITE ; + brq->data.flags =MMC_DATA_WRITE ;
Ditto.
... drivers not within my area zapped ...
drivers/mmc/host/pxamci.c
Quoted 4 lines
drivers/mmc/host/pxamci.c +0
-0
Works for me.
Cheers.
Signature · 1 line
Robert
Jaehoon Chung
maintainerHi, Robert.
Quoted 10 lines · Robert Jarzmik
Quoted 7 lines · Jaehoon Chung
It's not set to
MMC_DATA_STREAManywhere.
It seems that it had used with CMD11/20. But now CMD11/20 didn't also use.
I didn't know what is exactly, so i sent the patch as just RFC.
If i get some comments for this, i will resend the patch after separate to each host controller.If
MMC_DATA_STREAMcan be removed, then flags of data should be then one ofMMC_DATA_READandMMC_DATA_WRITE.The commit message won't pass checkpatch, will it ?
As you know, I mentioned if i get other comments, i will resend the patch. This patch is RFC patch.
Quoted 11 lines
drivers/mmc/card/block.c static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq, · line 1528
Quoted 9 lines
drivers/mmc/card/block.c +1
-1@@ -1525,13 +1525,13 @@ static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq, }if (rq_data_dir (req) ==READ ) { brq->cmd.opcode = readcmd; - brq->data.flags |=MMC_DATA_READ ; + brq->data.flags =MMC_DATA_READ ;Why this chunk ? If the caller had already set some flags of its own, why overwrite them ? That has no connection to
MMC_DATA_STREAMI can see.
If MMC_DATA_STREAM is removed, there are only two flags MMC_DATA_READ and MMC_DATA_WRITE. Are there other flags, except MMC_DATA_READ, MMC_DATA_WRITE?
READ and WRITE can not use together.
If i missed other flags, let me know, plz.
Best Regards,
Jaehoon Chung
Quoted 18 lines
...
drivers/mmc/card/block.c
Quoted 2 lines
drivers/mmc/card/block.c +1
-1- brq->data.flags |=MMC_DATA_WRITE ; + brq->data.flags =MMC_DATA_WRITE ;Ditto.
drivers/mmc/card/block.c
Quoted 2 lines
drivers/mmc/card/block.c +1
-1- brq->data.flags |=MMC_DATA_WRITE ; + brq->data.flags =MMC_DATA_WRITE ;Ditto.
... drivers not within my area zapped ...
drivers/mmc/host/pxamci.c
Quoted 4 lines
drivers/mmc/host/pxamci.c +0
-0Works for me.
Cheers.
Quoted 8 lines · Jaehoon Chung
It's not set to
MMC_DATA_STREAManywhere.
It seems that it had used with CMD11/20. But now CMD11/20 didn't also use.
I didn't know what is exactly, so i sent the patch as just RFC.
If i get some comments for this, i will resend the patch after separate to each host controller.If
MMC_DATA_STREAMcan be removed, then flags of data should be then one ofMMC_DATA_READandMMC_DATA_WRITE.Signed-off-by Jaehoon Chung <[email protected]>
This looks good to me. Please go ahead and send a non-RFC version that I can pick up.
Whether you want to split it into several patches per host or not, I don't have any strong preferences. Both ways works for me.
Kind regards
Uffe
Quoted 242 lines
--- drivers/mmc/card/block.c | 6 +++--- drivers/mmc/host/atmel-mci.c | 9 ++------- drivers/mmc/host/bfin_sdh.c | 3 --- drivers/mmc/host/davinci_mmc.c | 15 +++------------ drivers/mmc/host/dw_mmc.c | 2 -- drivers/mmc/host/jz4740_mmc.c | 2 -- drivers/mmc/host/mxcmmc.c | 3 --- drivers/mmc/host/pxamci.c | 6 ------ drivers/mmc/host/s3cmci.c | 3 +-- drivers/mmc/host/sunxi-mmc.c | 5 ----- include/linux/mmc/core.h | 1 - 11 files changed, 9 insertions(+), 46 deletions(-)drivers/mmc/card/block.c +3
-3@@ -1525,13 +1525,13 @@ static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq, }if (rq_data_dir (req) ==READ ) { brq->cmd.opcode = readcmd; - brq->data.flags |=MMC_DATA_READ ; + brq->data.flags =MMC_DATA_READ ;if (brq->mrq.stop) brq->stop.flags =MMC_RSP_SPI_R1 |MMC_RSP_R1 |MMC_CMD_AC ; }else { brq->cmd.opcode = writecmd; - brq->data.flags |=MMC_DATA_WRITE ; + brq->data.flags =MMC_DATA_WRITE ;if (brq->mrq.stop) brq->stop.flags =MMC_RSP_SPI_R1B |MMC_RSP_R1B |MMC_CMD_AC ;@@ -1800,7 +1800,7 @@ static void mmc_blk_packed_hdr_wrq_prep(struct mmc_queue_req *mqrq, brq->data.blksz =512 ; brq->data.blocks = packed->blocks + hdr_blocks; - brq->data.flags |=MMC_DATA_WRITE ; + brq->data.flags =MMC_DATA_WRITE ; brq->stop.opcode =MMC_STOP_TRANSMISSION ; brq->stop.arg =0 ;drivers/mmc/host/atmel-mci.c +2
-7@@ -849,9 +849,7 @@ static u32 atmci_prepare_command(struct mmc_host *mmc,if (cmd->opcode ==SD_IO_RW_EXTENDED ) { cmdr |=ATMCI_CMDR_SDIO_BLOCK ; }else { -if (data->flags &MMC_DATA_STREAM ) - cmdr |=ATMCI_CMDR_STREAM ; -else if (data->blocks >1 ) +if (data->blocks >1 ) cmdr |=ATMCI_CMDR_MULTI_BLOCK ;else cmdr |=ATMCI_CMDR_BLOCK ;@@ -1372,10 +1370,7 @@ static void atmci_start_request(struct atmel_mci *host, host->stop_cmdr |=ATMCI_CMDR_STOP_XFER ;if (!(data->flags &MMC_DATA_WRITE )) host->stop_cmdr |=ATMCI_CMDR_TRDIR_READ ; -if (data->flags &MMC_DATA_STREAM ) - host->stop_cmdr |=ATMCI_CMDR_STREAM ; -else - host->stop_cmdr |=ATMCI_CMDR_MULTI_BLOCK ; + host->stop_cmdr |=ATMCI_CMDR_MULTI_BLOCK ; }/* drivers/mmc/host/bfin_sdh.c +0
-3@@ -126,9 +126,6 @@ static int sdh_setup_data(struct sdh_host *host, struct mmc_data *data) length = data->blksz * data->blocks;bfin_write_SDH_DATA_LGTH (length); -if (data->flags &MMC_DATA_STREAM ) - data_ctl |=DTX_MODE ; -if (data->flags &MMC_DATA_READ ) data_ctl |=DTX_DIR ;/* Only supports power-of-2 block size */ drivers/mmc/host/davinci_mmc.c +3
-12@@ -346,10 +346,6 @@ static void mmc_davinci_start_command(struct mmc_davinci_host *host,if (cmd->data) cmd_reg |=MMCCMD_WDATX ; -/* Setting whether stream or block transfer */ -if (cmd->flags &MMC_DATA_STREAM ) - cmd_reg |=MMCCMD_STRMTP ; -/* Setting whether data read or write */ if (host->data_dir ==DAVINCI_MMC_DATADIR_WRITE ) cmd_reg |=MMCCMD_DTRW ;@@ -568,8 +564,7 @@ mmc_davinci_prepare_data(struct mmc_davinci_host *host, struct mmc_request *req)return ; } -dev_dbg (mmc_dev (host->mmc),"%s %s, %d blocks of %d bytes\n" , - (data->flags &MMC_DATA_STREAM ) ?"stream" :"block" , +dev_dbg (mmc_dev (host->mmc),"%s, %d blocks of %d bytes\n" , (data->flags &MMC_DATA_WRITE ) ?"write" :"read" , data->blocks, data->blksz); dev_dbg(mmc_dev(host->mmc), " DTO %d cycles + %d ns\n",@@ -584,22 +579,18 @@ mmc_davinci_prepare_data(struct mmc_davinci_host *host, struct mmc_request *req)writel (data->blksz, host->base +DAVINCI_MMCBLEN );/* Configure the FIFO */ -switch (data->flags &MMC_DATA_WRITE ) { -case MMC_DATA_WRITE : +if (data->flags &MMC_DATA_WRITE ) { host->data_dir =DAVINCI_MMC_DATADIR_WRITE ;writel (fifo_lev |MMCFIFOCTL_FIFODIR_WR |MMCFIFOCTL_FIFORST , host->base +DAVINCI_MMCFIFOCTL );writel (fifo_lev |MMCFIFOCTL_FIFODIR_WR , host->base +DAVINCI_MMCFIFOCTL ); -break ; - -default : + }else { host->data_dir =DAVINCI_MMC_DATADIR_READ ;writel (fifo_lev |MMCFIFOCTL_FIFODIR_RD |MMCFIFOCTL_FIFORST , host->base +DAVINCI_MMCFIFOCTL );writel (fifo_lev |MMCFIFOCTL_FIFODIR_RD , host->base +DAVINCI_MMCFIFOCTL ); -break ; } host->buffer =NULL ;drivers/mmc/host/dw_mmc.c +0
-2@@ -290,8 +290,6 @@ static u32 dw_mci_prepare_command(struct mmc_host *mmc, struct mmc_command *cmd) data = cmd->data;if (data) { cmdr |=SDMMC_CMD_DAT_EXP ; -if (data->flags &MMC_DATA_STREAM ) - cmdr |=SDMMC_CMD_STRM_MODE ;if (data->flags &MMC_DATA_WRITE ) cmdr |=SDMMC_CMD_DAT_WR ; }drivers/mmc/host/jz4740_mmc.c +0
-2@@ -660,8 +660,6 @@ static void jz4740_mmc_send_command(struct jz4740_mmc_host *host, cmdat |=JZ_MMC_CMDAT_DATA_EN ;if (cmd->data->flags &MMC_DATA_WRITE ) cmdat |=JZ_MMC_CMDAT_WRITE ; -if (cmd->data->flags &MMC_DATA_STREAM ) - cmdat |=JZ_MMC_CMDAT_STREAM ;if (host->use_dma) cmdat |=JZ_MMC_CMDAT_DMA_EN ;drivers/mmc/host/mxcmmc.c +0
-3@@ -307,9 +307,6 @@ static int mxcmci_setup_data(struct mxcmci_host *host, struct mmc_data *data)enum dma_transfer_direction slave_dirn;int i, nents; -if (data->flags &MMC_DATA_STREAM ) - nob =0xffff ; - host->data = data; data->bytes_xfered =0 ;drivers/mmc/host/pxamci.c +0
-6@@ -191,9 +191,6 @@ static void pxamci_setup_data(struct pxamci_host *host, struct mmc_data *data) host->data = data; -if (data->flags &MMC_DATA_STREAM ) - nob =0xffff ; -writel (nob, host->base +MMC_NOB );writel (data->blksz, host->base +MMC_BLKLEN );@@ -443,9 +440,6 @@ static void pxamci_request(struct mmc_host *mmc, struct mmc_request *mrq) cmdat |=CMDAT_DATAEN |CMDAT_DMAEN ;if (mrq->data->flags &MMC_DATA_WRITE ) cmdat |=CMDAT_WRITE ; - -if (mrq->data->flags &MMC_DATA_STREAM ) - cmdat |=CMDAT_STREAM ; }pxamci_start_cmd (host, mrq->cmd, cmdat);drivers/mmc/host/s3cmci.c +1
-2@@ -1014,8 +1014,7 @@ static int s3cmci_setup_data(struct s3cmci_host *host, struct mmc_data *data)if (host->bus_width ==MMC_BUS_WIDTH_4 ) dcon |=S3C2410_SDIDCON_WIDEBUS ; -if (!(data->flags &MMC_DATA_STREAM )) - dcon |=S3C2410_SDIDCON_BLOCKMODE ; + dcon |=S3C2410_SDIDCON_BLOCKMODE ;if (data->flags &MMC_DATA_WRITE ) { dcon |=S3C2410_SDIDCON_TXAFTERRESP ;drivers/mmc/host/sunxi-mmc.c +0
-5@@ -815,11 +815,6 @@ static void sunxi_mmc_request(struct mmc_host *mmc, struct mmc_request *mrq)if ((cmd->flags &MMC_CMD_MASK ) ==MMC_CMD_ADTC ) { cmd_val |=SDXC_DATA_EXPIRE |SDXC_WAIT_PRE_OVER ; -if (cmd->data->flags &MMC_DATA_STREAM ) { - imask |=SDXC_AUTO_COMMAND_DONE ; - cmd_val |=SDXC_SEQUENCE_MODE | -SDXC_SEND_AUTO_STOP ; - }if (cmd->data->stop) { imask |=SDXC_AUTO_COMMAND_DONE ;include/linux/mmc/core.h +0
-2@@ -113,7 +113,6 @@ struct mmc_data {#define MMC_DATA_WRITE (1 << 8)#define MMC_DATA_READ (1 << 9) -#define MMC_DATA_STREAM (1 << 10)unsigned int bytes_xfered; --1.9.1