Re: [PATCH 2/2] mmc: mmci: Add and implement a ->dma_setup() callback for qcom dml

[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 ulf.hansson-mmc/next]
[also build test ERROR on v4.18-rc4 next-20180713]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Ulf-Hansson/mmc-mmci-Initial-support-to-manage-variant-specific-callbacks/20180714-110602
base:   git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc.git next
config: arm-allmodconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 7.2.0-11) 7.2.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=7.2.0 make.cross ARCH=arm 

All errors (new ones prefixed by >>):

   drivers/mmc/host/mmci_qcom_dml.c: In function 'qcom_dma_setup':
>> drivers/mmc/host/mmci_qcom_dml.c:133:3: error: 'variant' undeclared (first use in this function); did you mean 'vprintk'?
      variant->qcom_dml = false;
      ^~~~~~~
      vprintk
   drivers/mmc/host/mmci_qcom_dml.c:133:3: note: each undeclared identifier is reported only once for each function it appears in
   drivers/mmc/host/mmci_qcom_dml.c: At top level:
>> drivers/mmc/host/mmci_qcom_dml.c:181:3: error: 'const struct mmci_host_ops' has no member named 'dma_setup'
     .dma_setup = qcom_dma_setup,
      ^~~~~~~~~
   drivers/mmc/host/mmci_qcom_dml.c: In function 'qcom_variant_init':
>> drivers/mmc/host/mmci_qcom_dml.c:186:12: error: incompatible types when assigning to type 'struct mmci_host_ops *' from type 'const struct mmci_host_ops'
     host->ops = qcom_variant_ops;
               ^

vim +133 drivers/mmc/host/mmci_qcom_dml.c

   120	
   121	/* Initialize the dml hardware connected to SD Card controller */
   122	static void qcom_dma_setup(struct mmci_host *host)
   123	{
   124		u32 config;
   125		void __iomem *base;
   126		int consumer_id, producer_id;
   127		struct device_node *np = host->mmc->parent->of_node;
   128	
   129		consumer_id = of_get_dml_pipe_index(np, "tx");
   130		producer_id = of_get_dml_pipe_index(np, "rx");
   131	
   132		if (producer_id < 0 || consumer_id < 0) {
 > 133			variant->qcom_dml = false;
   134			return;
   135		}
   136	
   137		base = host->base + DML_OFFSET;
   138	
   139		/* Reset the DML block */
   140		writel_relaxed(1, base + DML_SW_RESET);
   141	
   142		/* Disable the producer and consumer CRCI */
   143		config = (PRODUCER_CRCI_DISABLE | CONSUMER_CRCI_DISABLE);
   144		/*
   145		 * Disable the bypass mode. Bypass mode will only be used
   146		 * if data transfer is to happen in PIO mode and don't
   147		 * want the BAM interface to connect with SDCC-DML.
   148		 */
   149		config &= ~BYPASS;
   150		/*
   151		 * Disable direct mode as we don't DML to MASTER the AHB bus.
   152		 * BAM connected with DML should MASTER the AHB bus.
   153		 */
   154		config &= ~DIRECT_MODE;
   155		/*
   156		 * Disable infinite mode transfer as we won't be doing any
   157		 * infinite size data transfers. All data transfer will be
   158		 * of finite data size.
   159		 */
   160		config &= ~INFINITE_CONS_TRANS;
   161		writel_relaxed(config, base + DML_CONFIG);
   162	
   163		/*
   164		 * Initialize the logical BAM pipe size for producer
   165		 * and consumer.
   166		 */
   167		writel_relaxed(PRODUCER_PIPE_LOGICAL_SIZE,
   168			       base + DML_PRODUCER_PIPE_LOGICAL_SIZE);
   169		writel_relaxed(CONSUMER_PIPE_LOGICAL_SIZE,
   170			       base + DML_CONSUMER_PIPE_LOGICAL_SIZE);
   171	
   172		/* Initialize Producer/consumer pipe id */
   173		writel_relaxed(producer_id | (consumer_id << CONSUMER_PIPE_ID_SHFT),
   174			       base + DML_PIPE_ID);
   175	
   176		/* Make sure dml initialization is finished */
   177		mb();
   178	}
   179	
   180	static const struct mmci_host_ops qcom_variant_ops = {
 > 181		.dma_setup = qcom_dma_setup,
   182	};
   183	
   184	void qcom_variant_init(struct mmci_host *host)
   185	{
 > 186		host->ops = qcom_variant_ops;

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux