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