From: kernel test robot <lkp@intel.com>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
"Michael Turquette" <mturquette@baylibre.com>,
"Stephen Boyd" <sboyd@kernel.org>,
"Mark Brown" <broonie@kernel.org>
Cc: kbuild-all@lists.01.org, linux-spi@vger.kernel.org,
linux-clk@vger.kernel.org, kernel@pengutronix.de
Subject: Re: [PATCH] spi: davinci: Simplify using devm_clk_get_prepared()
Date: Tue, 30 Mar 2021 12:09:44 +0800 [thread overview]
Message-ID: <202103301259.l0zBEbYv-lkp@intel.com> (raw)
In-Reply-To: <20210324201723.76299-1-u.kleine-koenig@pengutronix.de>
[-- Attachment #1: Type: text/plain, Size: 7634 bytes --]
Hi "Uwe,
I love your patch! Yet something to improve:
[auto build test ERROR on spi/for-next]
[also build test ERROR on v5.12-rc5 next-20210329]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Uwe-Kleine-K-nig/spi-davinci-Simplify-using-devm_clk_get_prepared/20210325-041955
base: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next
config: arm-defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.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/0day-ci/linux/commit/d4207ccf698f3daec6f45ba37439f303cd20196c
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Uwe-Kleine-K-nig/spi-davinci-Simplify-using-devm_clk_get_prepared/20210325-041955
git checkout d4207ccf698f3daec6f45ba37439f303cd20196c
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/spi/spi-davinci.c: In function 'davinci_spi_probe':
>> drivers/spi/spi-davinci.c:939:14: error: implicit declaration of function 'devm_clk_get_prepared' [-Werror=implicit-function-declaration]
939 | dspi->clk = devm_clk_get_prepared(&pdev->dev, NULL);
| ^~~~~~~~~~~~~~~~~~~~~
drivers/spi/spi-davinci.c:939:12: warning: assignment to 'struct clk *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
939 | dspi->clk = devm_clk_get_prepared(&pdev->dev, NULL);
| ^
cc1: some warnings being treated as errors
vim +/devm_clk_get_prepared +939 drivers/spi/spi-davinci.c
856
857 /**
858 * davinci_spi_probe - probe function for SPI Master Controller
859 * @pdev: platform_device structure which contains plateform specific data
860 *
861 * According to Linux Device Model this function will be invoked by Linux
862 * with platform_device struct which contains the device specific info.
863 * This function will map the SPI controller's memory, register IRQ,
864 * Reset SPI controller and setting its registers to default value.
865 * It will invoke spi_bitbang_start to create work queue so that client driver
866 * can register transfer method to work queue.
867 */
868 static int davinci_spi_probe(struct platform_device *pdev)
869 {
870 struct spi_master *master;
871 struct davinci_spi *dspi;
872 struct davinci_spi_platform_data *pdata;
873 struct resource *r;
874 int ret = 0;
875 u32 spipc0;
876
877 master = spi_alloc_master(&pdev->dev, sizeof(struct davinci_spi));
878 if (master == NULL) {
879 ret = -ENOMEM;
880 goto err;
881 }
882
883 platform_set_drvdata(pdev, master);
884
885 dspi = spi_master_get_devdata(master);
886
887 if (dev_get_platdata(&pdev->dev)) {
888 pdata = dev_get_platdata(&pdev->dev);
889 dspi->pdata = *pdata;
890 } else {
891 /* update dspi pdata with that from the DT */
892 ret = spi_davinci_get_pdata(pdev, dspi);
893 if (ret < 0)
894 goto free_master;
895 }
896
897 /* pdata in dspi is now updated and point pdata to that */
898 pdata = &dspi->pdata;
899
900 dspi->bytes_per_word = devm_kcalloc(&pdev->dev,
901 pdata->num_chipselect,
902 sizeof(*dspi->bytes_per_word),
903 GFP_KERNEL);
904 if (dspi->bytes_per_word == NULL) {
905 ret = -ENOMEM;
906 goto free_master;
907 }
908
909 r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
910 if (r == NULL) {
911 ret = -ENOENT;
912 goto free_master;
913 }
914
915 dspi->pbase = r->start;
916
917 dspi->base = devm_ioremap_resource(&pdev->dev, r);
918 if (IS_ERR(dspi->base)) {
919 ret = PTR_ERR(dspi->base);
920 goto free_master;
921 }
922
923 init_completion(&dspi->done);
924
925 ret = platform_get_irq(pdev, 0);
926 if (ret == 0)
927 ret = -EINVAL;
928 if (ret < 0)
929 goto free_master;
930 dspi->irq = ret;
931
932 ret = devm_request_threaded_irq(&pdev->dev, dspi->irq, davinci_spi_irq,
933 dummy_thread_fn, 0, dev_name(&pdev->dev), dspi);
934 if (ret)
935 goto free_master;
936
937 dspi->bitbang.master = master;
938
> 939 dspi->clk = devm_clk_get_prepared(&pdev->dev, NULL);
940 if (IS_ERR(dspi->clk)) {
941 ret = -ENODEV;
942 goto free_master;
943 }
944
945 master->use_gpio_descriptors = true;
946 master->dev.of_node = pdev->dev.of_node;
947 master->bus_num = pdev->id;
948 master->num_chipselect = pdata->num_chipselect;
949 master->bits_per_word_mask = SPI_BPW_RANGE_MASK(2, 16);
950 master->flags = SPI_MASTER_MUST_RX;
951 master->setup = davinci_spi_setup;
952 master->cleanup = davinci_spi_cleanup;
953 master->can_dma = davinci_spi_can_dma;
954
955 dspi->bitbang.chipselect = davinci_spi_chipselect;
956 dspi->bitbang.setup_transfer = davinci_spi_setup_transfer;
957 dspi->prescaler_limit = pdata->prescaler_limit;
958 dspi->version = pdata->version;
959
960 dspi->bitbang.flags = SPI_NO_CS | SPI_LSB_FIRST | SPI_LOOP | SPI_CS_WORD;
961 if (dspi->version == SPI_VERSION_2)
962 dspi->bitbang.flags |= SPI_READY;
963
964 dspi->bitbang.txrx_bufs = davinci_spi_bufs;
965
966 ret = davinci_spi_request_dma(dspi);
967 if (ret == -EPROBE_DEFER) {
968 goto free_master;
969 } else if (ret) {
970 dev_info(&pdev->dev, "DMA is not supported (%d)\n", ret);
971 dspi->dma_rx = NULL;
972 dspi->dma_tx = NULL;
973 }
974
975 dspi->get_rx = davinci_spi_rx_buf_u8;
976 dspi->get_tx = davinci_spi_tx_buf_u8;
977
978 /* Reset In/OUT SPI module */
979 iowrite32(0, dspi->base + SPIGCR0);
980 udelay(100);
981 iowrite32(1, dspi->base + SPIGCR0);
982
983 /* Set up SPIPC0. CS and ENA init is done in davinci_spi_setup */
984 spipc0 = SPIPC0_DIFUN_MASK | SPIPC0_DOFUN_MASK | SPIPC0_CLKFUN_MASK;
985 iowrite32(spipc0, dspi->base + SPIPC0);
986
987 if (pdata->intr_line)
988 iowrite32(SPI_INTLVL_1, dspi->base + SPILVL);
989 else
990 iowrite32(SPI_INTLVL_0, dspi->base + SPILVL);
991
992 iowrite32(CS_DEFAULT, dspi->base + SPIDEF);
993
994 /* master mode default */
995 set_io_bits(dspi->base + SPIGCR1, SPIGCR1_CLKMOD_MASK);
996 set_io_bits(dspi->base + SPIGCR1, SPIGCR1_MASTER_MASK);
997 set_io_bits(dspi->base + SPIGCR1, SPIGCR1_POWERDOWN_MASK);
998
999 ret = spi_bitbang_start(&dspi->bitbang);
1000 if (ret)
1001 goto free_dma;
1002
1003 dev_info(&pdev->dev, "Controller at 0x%p\n", dspi->base);
1004
1005 return ret;
1006
1007 free_dma:
1008 if (dspi->dma_rx) {
1009 dma_release_channel(dspi->dma_rx);
1010 dma_release_channel(dspi->dma_tx);
1011 }
1012 free_master:
1013 spi_master_put(master);
1014 err:
1015 return ret;
1016 }
1017
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 54314 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH] spi: davinci: Simplify using devm_clk_get_prepared()
Date: Tue, 30 Mar 2021 12:09:44 +0800 [thread overview]
Message-ID: <202103301259.l0zBEbYv-lkp@intel.com> (raw)
In-Reply-To: <20210324201723.76299-1-u.kleine-koenig@pengutronix.de>
[-- Attachment #1: Type: text/plain, Size: 7843 bytes --]
Hi "Uwe,
I love your patch! Yet something to improve:
[auto build test ERROR on spi/for-next]
[also build test ERROR on v5.12-rc5 next-20210329]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Uwe-Kleine-K-nig/spi-davinci-Simplify-using-devm_clk_get_prepared/20210325-041955
base: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next
config: arm-defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.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/0day-ci/linux/commit/d4207ccf698f3daec6f45ba37439f303cd20196c
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Uwe-Kleine-K-nig/spi-davinci-Simplify-using-devm_clk_get_prepared/20210325-041955
git checkout d4207ccf698f3daec6f45ba37439f303cd20196c
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/spi/spi-davinci.c: In function 'davinci_spi_probe':
>> drivers/spi/spi-davinci.c:939:14: error: implicit declaration of function 'devm_clk_get_prepared' [-Werror=implicit-function-declaration]
939 | dspi->clk = devm_clk_get_prepared(&pdev->dev, NULL);
| ^~~~~~~~~~~~~~~~~~~~~
drivers/spi/spi-davinci.c:939:12: warning: assignment to 'struct clk *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
939 | dspi->clk = devm_clk_get_prepared(&pdev->dev, NULL);
| ^
cc1: some warnings being treated as errors
vim +/devm_clk_get_prepared +939 drivers/spi/spi-davinci.c
856
857 /**
858 * davinci_spi_probe - probe function for SPI Master Controller
859 * @pdev: platform_device structure which contains plateform specific data
860 *
861 * According to Linux Device Model this function will be invoked by Linux
862 * with platform_device struct which contains the device specific info.
863 * This function will map the SPI controller's memory, register IRQ,
864 * Reset SPI controller and setting its registers to default value.
865 * It will invoke spi_bitbang_start to create work queue so that client driver
866 * can register transfer method to work queue.
867 */
868 static int davinci_spi_probe(struct platform_device *pdev)
869 {
870 struct spi_master *master;
871 struct davinci_spi *dspi;
872 struct davinci_spi_platform_data *pdata;
873 struct resource *r;
874 int ret = 0;
875 u32 spipc0;
876
877 master = spi_alloc_master(&pdev->dev, sizeof(struct davinci_spi));
878 if (master == NULL) {
879 ret = -ENOMEM;
880 goto err;
881 }
882
883 platform_set_drvdata(pdev, master);
884
885 dspi = spi_master_get_devdata(master);
886
887 if (dev_get_platdata(&pdev->dev)) {
888 pdata = dev_get_platdata(&pdev->dev);
889 dspi->pdata = *pdata;
890 } else {
891 /* update dspi pdata with that from the DT */
892 ret = spi_davinci_get_pdata(pdev, dspi);
893 if (ret < 0)
894 goto free_master;
895 }
896
897 /* pdata in dspi is now updated and point pdata to that */
898 pdata = &dspi->pdata;
899
900 dspi->bytes_per_word = devm_kcalloc(&pdev->dev,
901 pdata->num_chipselect,
902 sizeof(*dspi->bytes_per_word),
903 GFP_KERNEL);
904 if (dspi->bytes_per_word == NULL) {
905 ret = -ENOMEM;
906 goto free_master;
907 }
908
909 r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
910 if (r == NULL) {
911 ret = -ENOENT;
912 goto free_master;
913 }
914
915 dspi->pbase = r->start;
916
917 dspi->base = devm_ioremap_resource(&pdev->dev, r);
918 if (IS_ERR(dspi->base)) {
919 ret = PTR_ERR(dspi->base);
920 goto free_master;
921 }
922
923 init_completion(&dspi->done);
924
925 ret = platform_get_irq(pdev, 0);
926 if (ret == 0)
927 ret = -EINVAL;
928 if (ret < 0)
929 goto free_master;
930 dspi->irq = ret;
931
932 ret = devm_request_threaded_irq(&pdev->dev, dspi->irq, davinci_spi_irq,
933 dummy_thread_fn, 0, dev_name(&pdev->dev), dspi);
934 if (ret)
935 goto free_master;
936
937 dspi->bitbang.master = master;
938
> 939 dspi->clk = devm_clk_get_prepared(&pdev->dev, NULL);
940 if (IS_ERR(dspi->clk)) {
941 ret = -ENODEV;
942 goto free_master;
943 }
944
945 master->use_gpio_descriptors = true;
946 master->dev.of_node = pdev->dev.of_node;
947 master->bus_num = pdev->id;
948 master->num_chipselect = pdata->num_chipselect;
949 master->bits_per_word_mask = SPI_BPW_RANGE_MASK(2, 16);
950 master->flags = SPI_MASTER_MUST_RX;
951 master->setup = davinci_spi_setup;
952 master->cleanup = davinci_spi_cleanup;
953 master->can_dma = davinci_spi_can_dma;
954
955 dspi->bitbang.chipselect = davinci_spi_chipselect;
956 dspi->bitbang.setup_transfer = davinci_spi_setup_transfer;
957 dspi->prescaler_limit = pdata->prescaler_limit;
958 dspi->version = pdata->version;
959
960 dspi->bitbang.flags = SPI_NO_CS | SPI_LSB_FIRST | SPI_LOOP | SPI_CS_WORD;
961 if (dspi->version == SPI_VERSION_2)
962 dspi->bitbang.flags |= SPI_READY;
963
964 dspi->bitbang.txrx_bufs = davinci_spi_bufs;
965
966 ret = davinci_spi_request_dma(dspi);
967 if (ret == -EPROBE_DEFER) {
968 goto free_master;
969 } else if (ret) {
970 dev_info(&pdev->dev, "DMA is not supported (%d)\n", ret);
971 dspi->dma_rx = NULL;
972 dspi->dma_tx = NULL;
973 }
974
975 dspi->get_rx = davinci_spi_rx_buf_u8;
976 dspi->get_tx = davinci_spi_tx_buf_u8;
977
978 /* Reset In/OUT SPI module */
979 iowrite32(0, dspi->base + SPIGCR0);
980 udelay(100);
981 iowrite32(1, dspi->base + SPIGCR0);
982
983 /* Set up SPIPC0. CS and ENA init is done in davinci_spi_setup */
984 spipc0 = SPIPC0_DIFUN_MASK | SPIPC0_DOFUN_MASK | SPIPC0_CLKFUN_MASK;
985 iowrite32(spipc0, dspi->base + SPIPC0);
986
987 if (pdata->intr_line)
988 iowrite32(SPI_INTLVL_1, dspi->base + SPILVL);
989 else
990 iowrite32(SPI_INTLVL_0, dspi->base + SPILVL);
991
992 iowrite32(CS_DEFAULT, dspi->base + SPIDEF);
993
994 /* master mode default */
995 set_io_bits(dspi->base + SPIGCR1, SPIGCR1_CLKMOD_MASK);
996 set_io_bits(dspi->base + SPIGCR1, SPIGCR1_MASTER_MASK);
997 set_io_bits(dspi->base + SPIGCR1, SPIGCR1_POWERDOWN_MASK);
998
999 ret = spi_bitbang_start(&dspi->bitbang);
1000 if (ret)
1001 goto free_dma;
1002
1003 dev_info(&pdev->dev, "Controller at 0x%p\n", dspi->base);
1004
1005 return ret;
1006
1007 free_dma:
1008 if (dspi->dma_rx) {
1009 dma_release_channel(dspi->dma_rx);
1010 dma_release_channel(dspi->dma_tx);
1011 }
1012 free_master:
1013 spi_master_put(master);
1014 err:
1015 return ret;
1016 }
1017
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 54314 bytes --]
next prev parent reply other threads:[~2021-03-30 4:12 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-01 13:50 [PATCH v3 0/3] clk: provide new devm helpers for prepared and enabled clocks Uwe Kleine-König
2021-03-01 13:50 ` [PATCH v3 1/3] clk: generalize devm_clk_get() a bit Uwe Kleine-König
2021-03-01 13:50 ` [PATCH v3 2/3] clk: Provide new devm_clk_helpers for prepared and enabled clocks Uwe Kleine-König
2021-03-01 13:50 ` [PATCH v3 3/3] pwm: atmel: Simplify using devm_clk_get_prepared() Uwe Kleine-König
2021-03-22 14:22 ` [PATCH v3 0/3] clk: provide new devm helpers for prepared and enabled clocks Uwe Kleine-König
2021-03-24 20:12 ` [PATCH] i2c: imx: Simplify using devm_clk_get_prepared() Uwe Kleine-König
2021-03-24 20:22 ` Uwe Kleine-König
2021-03-25 4:49 ` Oleksij Rempel
2021-03-26 13:42 ` kernel test robot
2021-03-26 13:42 ` kernel test robot
2021-03-31 3:37 ` kernel test robot
2021-03-31 3:37 ` kernel test robot
2021-03-24 20:17 ` [PATCH] spi: davinci: " Uwe Kleine-König
2021-03-24 20:22 ` Uwe Kleine-König
2021-03-30 17:04 ` Mark Brown
2021-03-30 4:09 ` kernel test robot [this message]
2021-03-30 4:09 ` kernel test robot
2021-03-24 20:27 ` [PATCH] rtc: at91sma9: Simplify using devm_clk_get_enabled() Uwe Kleine-König
2021-03-24 20:27 ` Uwe Kleine-König
2021-03-25 1:11 ` kernel test robot
2021-03-25 1:11 ` kernel test robot
2021-03-25 1:11 ` kernel test robot
2021-03-25 15:15 ` kernel test robot
2021-03-25 15:15 ` kernel test robot
2021-03-25 15:15 ` kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202103301259.l0zBEbYv-lkp@intel.com \
--to=lkp@intel.com \
--cc=broonie@kernel.org \
--cc=kbuild-all@lists.01.org \
--cc=kernel@pengutronix.de \
--cc=linux-clk@vger.kernel.org \
--cc=linux-spi@vger.kernel.org \
--cc=mturquette@baylibre.com \
--cc=sboyd@kernel.org \
--cc=u.kleine-koenig@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.