[PATCH 24/30] staging: mt7621-mmc: Inline function msdc_set_blknum

NeilBrown neil at brown.name
Sun Apr 29 22:51:45 UTC 2018


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 at lkamp.de>
> ---
>  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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <http://driverdev.linuxdriverproject.org/pipermail/driverdev-devel/attachments/20180430/5f72f040/attachment.asc>


More information about the devel mailing list