Re: [PATCH] mmc: core: Respect MMC_CAP_NEED_RSP_BUSY for eMMC sleep command

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Ulf,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v5.6-rc5 next-20200311]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Ulf-Hansson/mmc-core-Respect-MMC_CAP_NEED_RSP_BUSY-for-eMMC-sleep-command/20200312-034807
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git e3a36eb6dfaeea8175c05d5915dcf0b939be6dab
config: mips-vocore2_defconfig (attached as .config)
compiler: mipsel-linux-gcc (GCC) 5.5.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=5.5.0 make.cross ARCH=mips 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

   drivers/mmc/core/mmc.c: In function 'mmc_sleep':
>> drivers/mmc/core/mmc.c:1917:21: error: 'MMC_CAP_NEED_RSP_BUSY' undeclared (first use in this function)
     if (!(host->caps & MMC_CAP_NEED_RSP_BUSY) && host->max_busy_timeout &&
                        ^
   drivers/mmc/core/mmc.c:1917:21: note: each undeclared identifier is reported only once for each function it appears in

vim +/MMC_CAP_NEED_RSP_BUSY +1917 drivers/mmc/core/mmc.c

  1890	
  1891	static int mmc_sleep(struct mmc_host *host)
  1892	{
  1893		struct mmc_command cmd = {};
  1894		struct mmc_card *card = host->card;
  1895		unsigned int timeout_ms = DIV_ROUND_UP(card->ext_csd.sa_timeout, 10000);
  1896		int err;
  1897	
  1898		/* Re-tuning can't be done once the card is deselected */
  1899		mmc_retune_hold(host);
  1900	
  1901		err = mmc_deselect_cards(host);
  1902		if (err)
  1903			goto out_release;
  1904	
  1905		cmd.opcode = MMC_SLEEP_AWAKE;
  1906		cmd.arg = card->rca << 16;
  1907		cmd.arg |= 1 << 15;
  1908	
  1909		/*
  1910		 * If the max_busy_timeout of the host is specified, validate it against
  1911		 * the sleep cmd timeout. A failure means we need to prevent the host
  1912		 * from doing hw busy detection, which is done by converting to a R1
  1913		 * response instead of a R1B. Note, some hosts requires R1B, which also
  1914		 * means they are on their own when it comes to deal with the busy
  1915		 * timeout.
  1916		 */
> 1917		if (!(host->caps & MMC_CAP_NEED_RSP_BUSY) && host->max_busy_timeout &&
  1918		    (timeout_ms > host->max_busy_timeout)) {
  1919			cmd.flags = MMC_RSP_R1 | MMC_CMD_AC;
  1920		} else {
  1921			cmd.flags = MMC_RSP_R1B | MMC_CMD_AC;
  1922			cmd.busy_timeout = timeout_ms;
  1923		}
  1924	
  1925		err = mmc_wait_for_cmd(host, &cmd, 0);
  1926		if (err)
  1927			goto out_release;
  1928	
  1929		/*
  1930		 * If the host does not wait while the card signals busy, then we will
  1931		 * will have to wait the sleep/awake timeout.  Note, we cannot use the
  1932		 * SEND_STATUS command to poll the status because that command (and most
  1933		 * others) is invalid while the card sleeps.
  1934		 */
  1935		if (!cmd.busy_timeout || !(host->caps & MMC_CAP_WAIT_WHILE_BUSY))
  1936			mmc_delay(timeout_ms);
  1937	
  1938	out_release:
  1939		mmc_retune_release(host);
  1940		return err;
  1941	}
  1942	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux