On Sun, Apr 29 2018, Christian Lütke-Stetzkamp wrote: > The function msdc_set_blknum consists of one (real) line of code and > is only called once, so inline it makes the code shorter and more > readable. > > Signed-off-by: Christian Lütke-Stetzkamp <christian@xxxxxxxx> > --- > drivers/staging/mt7621-mmc/sd.c | 10 +--------- > 1 file changed, 1 insertion(+), 9 deletions(-) > > diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c > index c9f0180f3220..00c862b02419 100644 > --- a/drivers/staging/mt7621-mmc/sd.c > +++ b/drivers/staging/mt7621-mmc/sd.c > @@ -1182,14 +1182,6 @@ static void msdc_dma_setup(struct msdc_host *host, struct msdc_dma *dma, > msdc_dma_config(host, dma); > } > > -/* set block number before send command */ > -static void msdc_set_blknum(struct msdc_host *host, u32 blknum) > -{ > - void __iomem *base = host->base; > - > - sdr_write32(SDC_BLK_NUM, blknum); > -} > - This change is correct, but the reason isn't obvious. In mt6575_sd.h are: #define SDC_BLK_NUM REG_ADDR(SDC_BLK_NUM) #define REG_ADDR(x) (base + OFFSET_##x) So the above becomes sdr_write32((base + OFFSET_SDC_BLK_NUM), blknum); so the base is important. msdc_do_request() starts with void __iomem *base = host->base; and never changes host. So that "base" that is used in the new code is the same as the "base" used in the old code. Ugh.. what a horrible way to write code! Thanks, NeilBrown > static int msdc_do_request(struct mmc_host *mmc, struct mmc_request *mrq) > __must_hold(&host->lock) > { > @@ -1239,7 +1231,7 @@ static int msdc_do_request(struct mmc_host *mmc, struct mmc_request *mrq) > } > } > > - msdc_set_blknum(host, data->blocks); > + sdr_write32(SDC_BLK_NUM, data->blocks); > //msdc_clr_fifo(); /* no need */ > > msdc_dma_on(); /* enable DMA mode first!! */ > -- > 2.16.1
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel