[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <201812150659.AnjBgOGJ%fengguang.wu@intel.com>
Date: Sat, 15 Dec 2018 06:48:59 +0800
From: kbuild test robot <lkp@...el.com>
To: cezary.gapinski@...il.com
Cc: kbuild-all@...org, Mark Brown <broonie@...nel.org>,
linux-spi@...r.kernel.org,
linux-stm32@...md-mailman.stormreply.com,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
Rob Herring <robh+dt@...nel.org>, devicetree@...r.kernel.org,
Maxime Coquelin <mcoquelin.stm32@...il.com>,
Alexandre Torgue <alexandre.torgue@...com>,
Amelie Delaunay <amelie.delaunay@...com>,
Mark Rutland <mark.rutland@....com>,
Cezary Gapinski <cezary.gapinski@...il.com>
Subject: Re: [PATCH 5/5] spi: stm32: add description about STM32F4 bindings
Hi Cezary,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on spi/for-next]
[also build test WARNING on v4.20-rc6 next-20181214]
[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/cezary-gapinski-gmail-com/spi-stm32-rename-STM32-SPI-registers-and-functions-to-STM32H7/20181210-075839
base: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next
config: x86_64-allmodconfig (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64
All warnings (new ones prefixed by >>):
>> drivers/spi/spi-stm32h7.c:1134:45: warning: Using plain integer as NULL pointer
vim +1134 drivers/spi/spi-stm32h7.c
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1091
52721092 drivers/spi/spi-stm32.c Cezary Gapinski 2018-12-09 1092 static int stm32h7_spi_probe(struct platform_device *pdev)
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1093 {
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1094 struct spi_master *master;
52721092 drivers/spi/spi-stm32.c Cezary Gapinski 2018-12-09 1095 struct stm32h7_spi *spi;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1096 struct resource *res;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1097 int i, ret;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1098
52721092 drivers/spi/spi-stm32.c Cezary Gapinski 2018-12-09 1099 master = spi_alloc_master(&pdev->dev, sizeof(struct stm32h7_spi));
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1100 if (!master) {
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1101 dev_err(&pdev->dev, "spi master allocation failed\n");
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1102 return -ENOMEM;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1103 }
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1104 platform_set_drvdata(pdev, master);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1105
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1106 spi = spi_master_get_devdata(master);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1107 spi->dev = &pdev->dev;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1108 spi->master = master;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1109 spin_lock_init(&spi->lock);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1110
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1111 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1112 spi->base = devm_ioremap_resource(&pdev->dev, res);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1113 if (IS_ERR(spi->base)) {
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1114 ret = PTR_ERR(spi->base);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1115 goto err_master_put;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1116 }
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1117 spi->phys_addr = (dma_addr_t)res->start;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1118
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1119 spi->irq = platform_get_irq(pdev, 0);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1120 if (spi->irq <= 0) {
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1121 dev_err(&pdev->dev, "no irq: %d\n", spi->irq);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1122 ret = -ENOENT;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1123 goto err_master_put;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1124 }
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1125 ret = devm_request_threaded_irq(&pdev->dev, spi->irq, NULL,
52721092 drivers/spi/spi-stm32.c Cezary Gapinski 2018-12-09 1126 stm32h7_spi_irq, IRQF_ONESHOT,
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1127 pdev->name, master);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1128 if (ret) {
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1129 dev_err(&pdev->dev, "irq%d request failed: %d\n", spi->irq,
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1130 ret);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1131 goto err_master_put;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1132 }
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1133
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 @1134 spi->clk = devm_clk_get(&pdev->dev, 0);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1135 if (IS_ERR(spi->clk)) {
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1136 ret = PTR_ERR(spi->clk);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1137 dev_err(&pdev->dev, "clk get failed: %d\n", ret);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1138 goto err_master_put;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1139 }
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1140
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1141 ret = clk_prepare_enable(spi->clk);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1142 if (ret) {
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1143 dev_err(&pdev->dev, "clk enable failed: %d\n", ret);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1144 goto err_master_put;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1145 }
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1146 spi->clk_rate = clk_get_rate(spi->clk);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1147 if (!spi->clk_rate) {
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1148 dev_err(&pdev->dev, "clk rate = 0\n");
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1149 ret = -EINVAL;
3dbb3eef drivers/spi/spi-stm32.c Alexey Khoroshilov 2018-03-30 1150 goto err_clk_disable;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1151 }
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1152
d5e9a4a4 drivers/spi/spi-stm32.c Philipp Zabel 2017-07-19 1153 spi->rst = devm_reset_control_get_exclusive(&pdev->dev, NULL);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1154 if (!IS_ERR(spi->rst)) {
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1155 reset_control_assert(spi->rst);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1156 udelay(2);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1157 reset_control_deassert(spi->rst);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1158 }
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1159
52721092 drivers/spi/spi-stm32.c Cezary Gapinski 2018-12-09 1160 spi->fifo_size = stm32h7_spi_get_fifo_size(spi);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1161
52721092 drivers/spi/spi-stm32.c Cezary Gapinski 2018-12-09 1162 ret = stm32h7_spi_config(spi);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1163 if (ret) {
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1164 dev_err(&pdev->dev, "controller configuration failed: %d\n",
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1165 ret);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1166 goto err_clk_disable;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1167 }
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1168
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1169 master->dev.of_node = pdev->dev.of_node;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1170 master->auto_runtime_pm = true;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1171 master->bus_num = pdev->id;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1172 master->mode_bits = SPI_MODE_3 | SPI_CS_HIGH | SPI_LSB_FIRST |
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1173 SPI_3WIRE | SPI_LOOP;
52721092 drivers/spi/spi-stm32.c Cezary Gapinski 2018-12-09 1174 master->bits_per_word_mask = stm32h7_spi_get_bpw_mask(spi);
52721092 drivers/spi/spi-stm32.c Cezary Gapinski 2018-12-09 1175 master->max_speed_hz = spi->clk_rate / STM32H7_SPI_MBR_DIV_MIN;
52721092 drivers/spi/spi-stm32.c Cezary Gapinski 2018-12-09 1176 master->min_speed_hz = spi->clk_rate / STM32H7_SPI_MBR_DIV_MAX;
52721092 drivers/spi/spi-stm32.c Cezary Gapinski 2018-12-09 1177 master->setup = stm32h7_spi_setup;
52721092 drivers/spi/spi-stm32.c Cezary Gapinski 2018-12-09 1178 master->prepare_message = stm32h7_spi_prepare_msg;
52721092 drivers/spi/spi-stm32.c Cezary Gapinski 2018-12-09 1179 master->transfer_one = stm32h7_spi_transfer_one;
52721092 drivers/spi/spi-stm32.c Cezary Gapinski 2018-12-09 1180 master->unprepare_message = stm32h7_spi_unprepare_msg;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1181
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1182 spi->dma_tx = dma_request_slave_channel(spi->dev, "tx");
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1183 if (!spi->dma_tx)
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1184 dev_warn(&pdev->dev, "failed to request tx dma channel\n");
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1185 else
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1186 master->dma_tx = spi->dma_tx;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1187
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1188 spi->dma_rx = dma_request_slave_channel(spi->dev, "rx");
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1189 if (!spi->dma_rx)
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1190 dev_warn(&pdev->dev, "failed to request rx dma channel\n");
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1191 else
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1192 master->dma_rx = spi->dma_rx;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1193
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1194 if (spi->dma_tx || spi->dma_rx)
52721092 drivers/spi/spi-stm32.c Cezary Gapinski 2018-12-09 1195 master->can_dma = stm32h7_spi_can_dma;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1196
038ac869 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-27 1197 pm_runtime_set_active(&pdev->dev);
038ac869 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-27 1198 pm_runtime_enable(&pdev->dev);
038ac869 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-27 1199
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1200 ret = devm_spi_register_master(&pdev->dev, master);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1201 if (ret) {
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1202 dev_err(&pdev->dev, "spi master registration failed: %d\n",
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1203 ret);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1204 goto err_dma_release;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1205 }
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1206
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1207 if (!master->cs_gpios) {
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1208 dev_err(&pdev->dev, "no CS gpios available\n");
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1209 ret = -EINVAL;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1210 goto err_dma_release;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1211 }
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1212
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1213 for (i = 0; i < master->num_chipselect; i++) {
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1214 if (!gpio_is_valid(master->cs_gpios[i])) {
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1215 dev_err(&pdev->dev, "%i is not a valid gpio\n",
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1216 master->cs_gpios[i]);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1217 ret = -EINVAL;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1218 goto err_dma_release;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1219 }
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1220
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1221 ret = devm_gpio_request(&pdev->dev, master->cs_gpios[i],
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1222 DRIVER_NAME);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1223 if (ret) {
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1224 dev_err(&pdev->dev, "can't get CS gpio %i\n",
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1225 master->cs_gpios[i]);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1226 goto err_dma_release;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1227 }
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1228 }
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1229
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1230 dev_info(&pdev->dev, "driver initialized\n");
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1231
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1232 return 0;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1233
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1234 err_dma_release:
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1235 if (spi->dma_tx)
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1236 dma_release_channel(spi->dma_tx);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1237 if (spi->dma_rx)
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1238 dma_release_channel(spi->dma_rx);
038ac869 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-27 1239
038ac869 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-27 1240 pm_runtime_disable(&pdev->dev);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1241 err_clk_disable:
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1242 clk_disable_unprepare(spi->clk);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1243 err_master_put:
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1244 spi_master_put(master);
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1245
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1246 return ret;
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1247 }
dcbe0d84 drivers/spi/spi-stm32.c Amelie Delaunay 2017-06-21 1248
:::::: The code at line 1134 was first introduced by commit
:::::: dcbe0d84dfa5a3e72b8e6ce622cd5ac78abbcab8 spi: add driver for STM32 SPI controller
:::::: TO: Amelie Delaunay <amelie.delaunay@...com>
:::::: CC: Mark Brown <broonie@...nel.org>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
Download attachment ".config.gz" of type "application/gzip" (66659 bytes)
Powered by blists - more mailing lists