[l1k:smsc95xx_5.17 62/888] drivers/mmc/host/bcm2835-mmc.c:655:6: warning: no previous prototype for 'bcm2835_mmc_send_command'
From: kernel test robot
Date: Fri Apr 08 2022 - 17:12:14 EST
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@xxxxxxxxx/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@xxxxxxxxx>
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