mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [l1k:smsc95xx_5.17 62/888] drivers/mmc/host/bcm2835-mmc.c:655:6: warning: no previous prototype for 'bcm2835_mmc_send_command'
@ 2022-04-08 21:11 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-04-08 21:11 UTC (permalink / raw)
  To: gellert
  Cc: kbuild-all, linux-kernel, Dom Cobley, Noralf Trønnes,
	Phil Elwell, Lukas Wunner, Yaroslav Rosomakho, Maxime Ripard,
	Juerg Haefliger

tree:   https://github.com/l1k/linux smsc95xx_5.17
head:   240f56c27361c195cd502d95aba51c6b8e5b808c
commit: 07021b7ee2fdb60a60c3289c983cc1c1d1494c71 [62/888] MMC: added alternative MMC driver
config: arm-allyesconfig (https://download.01.org/0day-ci/archive/20220409/202204090513.DJZRq10M-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/l1k/linux/commit/07021b7ee2fdb60a60c3289c983cc1c1d1494c71
        git remote add l1k https://github.com/l1k/linux
        git fetch --no-tags l1k smsc95xx_5.17
        git checkout 07021b7ee2fdb60a60c3289c983cc1c1d1494c71
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm SHELL=/bin/bash arch/arm/lib/ drivers/char/ drivers/gpio/ drivers/mmc/host/ drivers/perf/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

>> drivers/mmc/host/bcm2835-mmc.c:655:6: warning: no previous prototype for 'bcm2835_mmc_send_command' [-Wmissing-prototypes]
     655 | void bcm2835_mmc_send_command(struct bcm2835_host *host, struct mmc_command *cmd)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/mmc/host/bcm2835-mmc.c:1063:6: warning: no previous prototype for 'bcm2835_mmc_set_clock' [-Wmissing-prototypes]
    1063 | void bcm2835_mmc_set_clock(struct bcm2835_host *host, unsigned int clock)
         |      ^~~~~~~~~~~~~~~~~~~~~


vim +/bcm2835_mmc_send_command +655 drivers/mmc/host/bcm2835-mmc.c

   654	
 > 655	void bcm2835_mmc_send_command(struct bcm2835_host *host, struct mmc_command *cmd)
   656	{
   657		int flags;
   658		u32 mask;
   659		unsigned long timeout;
   660	
   661		WARN_ON(host->cmd);
   662	
   663		/* Wait max 10 ms */
   664		timeout = 1000;
   665	
   666		mask = SDHCI_CMD_INHIBIT;
   667		if ((cmd->data != NULL) || (cmd->flags & MMC_RSP_BUSY))
   668			mask |= SDHCI_DATA_INHIBIT;
   669	
   670		/* We shouldn't wait for data inihibit for stop commands, even
   671		   though they might use busy signaling */
   672		if (host->mrq->data && (cmd == host->mrq->data->stop))
   673			mask &= ~SDHCI_DATA_INHIBIT;
   674	
   675		while (bcm2835_mmc_readl(host, SDHCI_PRESENT_STATE) & mask) {
   676			if (timeout == 0) {
   677				pr_err("%s: Controller never released inhibit bit(s).\n",
   678					mmc_hostname(host->mmc));
   679				bcm2835_mmc_dumpregs(host);
   680				cmd->error = -EIO;
   681				tasklet_schedule(&host->finish_tasklet);
   682				return;
   683			}
   684			timeout--;
   685			udelay(10);
   686		}
   687	
   688		if ((1000-timeout)/100 > 1 && (1000-timeout)/100 > host->max_delay) {
   689			host->max_delay = (1000-timeout)/100;
   690			pr_warn("Warning: MMC controller hung for %d ms\n", host->max_delay);
   691		}
   692	
   693		timeout = jiffies;
   694		if (!cmd->data && cmd->busy_timeout > 9000)
   695			timeout += DIV_ROUND_UP(cmd->busy_timeout, 1000) * HZ + HZ;
   696		else
   697			timeout += 10 * HZ;
   698		mod_timer(&host->timer, timeout);
   699	
   700		host->cmd = cmd;
   701		host->use_dma = false;
   702	
   703		bcm2835_mmc_prepare_data(host, cmd);
   704	
   705		bcm2835_mmc_writel(host, cmd->arg, SDHCI_ARGUMENT, 6);
   706	
   707		bcm2835_mmc_set_transfer_mode(host, cmd);
   708	
   709		if ((cmd->flags & MMC_RSP_136) && (cmd->flags & MMC_RSP_BUSY)) {
   710			pr_err("%s: Unsupported response type!\n",
   711				mmc_hostname(host->mmc));
   712			cmd->error = -EINVAL;
   713			tasklet_schedule(&host->finish_tasklet);
   714			return;
   715		}
   716	
   717		if (!(cmd->flags & MMC_RSP_PRESENT))
   718			flags = SDHCI_CMD_RESP_NONE;
   719		else if (cmd->flags & MMC_RSP_136)
   720			flags = SDHCI_CMD_RESP_LONG;
   721		else if (cmd->flags & MMC_RSP_BUSY)
   722			flags = SDHCI_CMD_RESP_SHORT_BUSY;
   723		else
   724			flags = SDHCI_CMD_RESP_SHORT;
   725	
   726		if (cmd->flags & MMC_RSP_CRC)
   727			flags |= SDHCI_CMD_CRC;
   728		if (cmd->flags & MMC_RSP_OPCODE)
   729			flags |= SDHCI_CMD_INDEX;
   730	
   731		if (cmd->data)
   732			flags |= SDHCI_CMD_DATA;
   733	
   734		bcm2835_mmc_writew(host, SDHCI_MAKE_CMD(cmd->opcode, flags), SDHCI_COMMAND);
   735	}
   736	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-04-08 21:12 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-08 21:11 [l1k:smsc95xx_5.17 62/888] drivers/mmc/host/bcm2835-mmc.c:655:6: warning: no previous prototype for 'bcm2835_mmc_send_command' kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®