From: kernel test robot <lkp@intel.com>
To: Marc Zyngier <maz@kernel.org>
Cc: kbuild-all@lists.01.org, linux-arm-kernel@lists.infradead.org
Subject: [arm-platforms:hack/devm_cast_abuse 3/17] drivers/tty/serial/sccnxp.c:923:9: error: implicit declaration of function 'devm_clk_prepare_enable'; did you mean
Date: Wed, 16 Dec 2020 05:23:45 +0800 [thread overview]
Message-ID: <202012160541.IgF2Pak0-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 6602 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git hack/devm_cast_abuse
head: 542cb40d75bf747a26ac91aa28f1a1ecb19b89e3
commit: 987add0e7cd705f0bf7beaa0543440d7db4a5736 [3/17] serial: sccnxp: Convert to devm_clk_prepare_enable()
config: sparc-randconfig-r022-20201215 (attached as .config)
compiler: sparc64-linux-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://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git/commit/?id=987add0e7cd705f0bf7beaa0543440d7db4a5736
git remote add arm-platforms https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git
git fetch --no-tags arm-platforms hack/devm_cast_abuse
git checkout 987add0e7cd705f0bf7beaa0543440d7db4a5736
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=sparc
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/tty/serial/sccnxp.c: In function 'sccnxp_probe':
>> drivers/tty/serial/sccnxp.c:923:9: error: implicit declaration of function 'devm_clk_prepare_enable'; did you mean 'clk_prepare_enable'? [-Werror=implicit-function-declaration]
923 | ret = devm_clk_prepare_enable(&pdev->dev, clk);
| ^~~~~~~~~~~~~~~~~~~~~~~
| clk_prepare_enable
cc1: some warnings being treated as errors
vim +923 drivers/tty/serial/sccnxp.c
880
881 static int sccnxp_probe(struct platform_device *pdev)
882 {
883 struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
884 struct sccnxp_pdata *pdata = dev_get_platdata(&pdev->dev);
885 int i, ret, uartclk;
886 struct sccnxp_port *s;
887 void __iomem *membase;
888 struct clk *clk;
889
890 membase = devm_ioremap_resource(&pdev->dev, res);
891 if (IS_ERR(membase))
892 return PTR_ERR(membase);
893
894 s = devm_kzalloc(&pdev->dev, sizeof(struct sccnxp_port), GFP_KERNEL);
895 if (!s) {
896 dev_err(&pdev->dev, "Error allocating port structure\n");
897 return -ENOMEM;
898 }
899 platform_set_drvdata(pdev, s);
900
901 spin_lock_init(&s->lock);
902
903 s->chip = (struct sccnxp_chip *)pdev->id_entry->driver_data;
904
905 s->regulator = devm_regulator_get(&pdev->dev, "vcc");
906 if (!IS_ERR(s->regulator)) {
907 ret = regulator_enable(s->regulator);
908 if (ret) {
909 dev_err(&pdev->dev,
910 "Failed to enable regulator: %i\n", ret);
911 return ret;
912 }
913 } else if (PTR_ERR(s->regulator) == -EPROBE_DEFER)
914 return -EPROBE_DEFER;
915
916 clk = devm_clk_get(&pdev->dev, NULL);
917 if (IS_ERR(clk)) {
918 ret = PTR_ERR(clk);
919 if (ret == -EPROBE_DEFER)
920 goto err_out;
921 uartclk = 0;
922 } else {
> 923 ret = devm_clk_prepare_enable(&pdev->dev, clk);
924 if (ret)
925 goto err_out;
926
927 uartclk = clk_get_rate(clk);
928 }
929
930 if (!uartclk) {
931 dev_notice(&pdev->dev, "Using default clock frequency\n");
932 uartclk = s->chip->freq_std;
933 }
934
935 /* Check input frequency */
936 if ((uartclk < s->chip->freq_min) || (uartclk > s->chip->freq_max)) {
937 dev_err(&pdev->dev, "Frequency out of bounds\n");
938 ret = -EINVAL;
939 goto err_out;
940 }
941
942 if (pdata)
943 memcpy(&s->pdata, pdata, sizeof(struct sccnxp_pdata));
944
945 if (s->pdata.poll_time_us) {
946 dev_info(&pdev->dev, "Using poll mode, resolution %u usecs\n",
947 s->pdata.poll_time_us);
948 s->poll = 1;
949 }
950
951 if (!s->poll) {
952 s->irq = platform_get_irq(pdev, 0);
953 if (s->irq < 0) {
954 ret = -ENXIO;
955 goto err_out;
956 }
957 }
958
959 s->uart.owner = THIS_MODULE;
960 s->uart.dev_name = "ttySC";
961 s->uart.major = SCCNXP_MAJOR;
962 s->uart.minor = SCCNXP_MINOR;
963 s->uart.nr = s->chip->nr;
964 #ifdef CONFIG_SERIAL_SCCNXP_CONSOLE
965 s->uart.cons = &s->console;
966 s->uart.cons->device = uart_console_device;
967 s->uart.cons->write = sccnxp_console_write;
968 s->uart.cons->setup = sccnxp_console_setup;
969 s->uart.cons->flags = CON_PRINTBUFFER;
970 s->uart.cons->index = -1;
971 s->uart.cons->data = s;
972 strcpy(s->uart.cons->name, "ttySC");
973 #endif
974 ret = uart_register_driver(&s->uart);
975 if (ret) {
976 dev_err(&pdev->dev, "Registering UART driver failed\n");
977 goto err_out;
978 }
979
980 for (i = 0; i < s->uart.nr; i++) {
981 s->port[i].line = i;
982 s->port[i].dev = &pdev->dev;
983 s->port[i].irq = s->irq;
984 s->port[i].type = PORT_SC26XX;
985 s->port[i].fifosize = s->chip->fifosize;
986 s->port[i].flags = UPF_SKIP_TEST | UPF_FIXED_TYPE;
987 s->port[i].iotype = UPIO_MEM;
988 s->port[i].mapbase = res->start;
989 s->port[i].membase = membase;
990 s->port[i].regshift = s->pdata.reg_shift;
991 s->port[i].uartclk = uartclk;
992 s->port[i].ops = &sccnxp_ops;
993 s->port[i].has_sysrq = IS_ENABLED(CONFIG_SERIAL_SCCNXP_CONSOLE);
994 uart_add_one_port(&s->uart, &s->port[i]);
995 /* Set direction to input */
996 if (s->chip->flags & SCCNXP_HAVE_IO)
997 sccnxp_set_bit(&s->port[i], DIR_OP, 0);
998 }
999
1000 /* Disable interrupts */
1001 s->imr = 0;
1002 sccnxp_write(&s->port[0], SCCNXP_IMR_REG, 0);
1003
1004 if (!s->poll) {
1005 ret = devm_request_threaded_irq(&pdev->dev, s->irq, NULL,
1006 sccnxp_ist,
1007 IRQF_TRIGGER_FALLING |
1008 IRQF_ONESHOT,
1009 dev_name(&pdev->dev), s);
1010 if (!ret)
1011 return 0;
1012
1013 dev_err(&pdev->dev, "Unable to reguest IRQ %i\n", s->irq);
1014 } else {
1015 timer_setup(&s->timer, sccnxp_timer, 0);
1016 mod_timer(&s->timer, jiffies +
1017 usecs_to_jiffies(s->pdata.poll_time_us));
1018 return 0;
1019 }
1020
1021 uart_unregister_driver(&s->uart);
1022 err_out:
1023 if (!IS_ERR(s->regulator))
1024 regulator_disable(s->regulator);
1025
1026 return ret;
1027 }
1028
---
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: 33822 bytes --]
[-- Attachment #3: Type: text/plain, Size: 176 bytes --]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [arm-platforms:hack/devm_cast_abuse 3/17] drivers/tty/serial/sccnxp.c:923:9: error: implicit declaration of function 'devm_clk_prepare_enable'; did you mean
Date: Wed, 16 Dec 2020 05:23:45 +0800 [thread overview]
Message-ID: <202012160541.IgF2Pak0-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 6786 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git hack/devm_cast_abuse
head: 542cb40d75bf747a26ac91aa28f1a1ecb19b89e3
commit: 987add0e7cd705f0bf7beaa0543440d7db4a5736 [3/17] serial: sccnxp: Convert to devm_clk_prepare_enable()
config: sparc-randconfig-r022-20201215 (attached as .config)
compiler: sparc64-linux-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://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git/commit/?id=987add0e7cd705f0bf7beaa0543440d7db4a5736
git remote add arm-platforms https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git
git fetch --no-tags arm-platforms hack/devm_cast_abuse
git checkout 987add0e7cd705f0bf7beaa0543440d7db4a5736
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=sparc
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/tty/serial/sccnxp.c: In function 'sccnxp_probe':
>> drivers/tty/serial/sccnxp.c:923:9: error: implicit declaration of function 'devm_clk_prepare_enable'; did you mean 'clk_prepare_enable'? [-Werror=implicit-function-declaration]
923 | ret = devm_clk_prepare_enable(&pdev->dev, clk);
| ^~~~~~~~~~~~~~~~~~~~~~~
| clk_prepare_enable
cc1: some warnings being treated as errors
vim +923 drivers/tty/serial/sccnxp.c
880
881 static int sccnxp_probe(struct platform_device *pdev)
882 {
883 struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
884 struct sccnxp_pdata *pdata = dev_get_platdata(&pdev->dev);
885 int i, ret, uartclk;
886 struct sccnxp_port *s;
887 void __iomem *membase;
888 struct clk *clk;
889
890 membase = devm_ioremap_resource(&pdev->dev, res);
891 if (IS_ERR(membase))
892 return PTR_ERR(membase);
893
894 s = devm_kzalloc(&pdev->dev, sizeof(struct sccnxp_port), GFP_KERNEL);
895 if (!s) {
896 dev_err(&pdev->dev, "Error allocating port structure\n");
897 return -ENOMEM;
898 }
899 platform_set_drvdata(pdev, s);
900
901 spin_lock_init(&s->lock);
902
903 s->chip = (struct sccnxp_chip *)pdev->id_entry->driver_data;
904
905 s->regulator = devm_regulator_get(&pdev->dev, "vcc");
906 if (!IS_ERR(s->regulator)) {
907 ret = regulator_enable(s->regulator);
908 if (ret) {
909 dev_err(&pdev->dev,
910 "Failed to enable regulator: %i\n", ret);
911 return ret;
912 }
913 } else if (PTR_ERR(s->regulator) == -EPROBE_DEFER)
914 return -EPROBE_DEFER;
915
916 clk = devm_clk_get(&pdev->dev, NULL);
917 if (IS_ERR(clk)) {
918 ret = PTR_ERR(clk);
919 if (ret == -EPROBE_DEFER)
920 goto err_out;
921 uartclk = 0;
922 } else {
> 923 ret = devm_clk_prepare_enable(&pdev->dev, clk);
924 if (ret)
925 goto err_out;
926
927 uartclk = clk_get_rate(clk);
928 }
929
930 if (!uartclk) {
931 dev_notice(&pdev->dev, "Using default clock frequency\n");
932 uartclk = s->chip->freq_std;
933 }
934
935 /* Check input frequency */
936 if ((uartclk < s->chip->freq_min) || (uartclk > s->chip->freq_max)) {
937 dev_err(&pdev->dev, "Frequency out of bounds\n");
938 ret = -EINVAL;
939 goto err_out;
940 }
941
942 if (pdata)
943 memcpy(&s->pdata, pdata, sizeof(struct sccnxp_pdata));
944
945 if (s->pdata.poll_time_us) {
946 dev_info(&pdev->dev, "Using poll mode, resolution %u usecs\n",
947 s->pdata.poll_time_us);
948 s->poll = 1;
949 }
950
951 if (!s->poll) {
952 s->irq = platform_get_irq(pdev, 0);
953 if (s->irq < 0) {
954 ret = -ENXIO;
955 goto err_out;
956 }
957 }
958
959 s->uart.owner = THIS_MODULE;
960 s->uart.dev_name = "ttySC";
961 s->uart.major = SCCNXP_MAJOR;
962 s->uart.minor = SCCNXP_MINOR;
963 s->uart.nr = s->chip->nr;
964 #ifdef CONFIG_SERIAL_SCCNXP_CONSOLE
965 s->uart.cons = &s->console;
966 s->uart.cons->device = uart_console_device;
967 s->uart.cons->write = sccnxp_console_write;
968 s->uart.cons->setup = sccnxp_console_setup;
969 s->uart.cons->flags = CON_PRINTBUFFER;
970 s->uart.cons->index = -1;
971 s->uart.cons->data = s;
972 strcpy(s->uart.cons->name, "ttySC");
973 #endif
974 ret = uart_register_driver(&s->uart);
975 if (ret) {
976 dev_err(&pdev->dev, "Registering UART driver failed\n");
977 goto err_out;
978 }
979
980 for (i = 0; i < s->uart.nr; i++) {
981 s->port[i].line = i;
982 s->port[i].dev = &pdev->dev;
983 s->port[i].irq = s->irq;
984 s->port[i].type = PORT_SC26XX;
985 s->port[i].fifosize = s->chip->fifosize;
986 s->port[i].flags = UPF_SKIP_TEST | UPF_FIXED_TYPE;
987 s->port[i].iotype = UPIO_MEM;
988 s->port[i].mapbase = res->start;
989 s->port[i].membase = membase;
990 s->port[i].regshift = s->pdata.reg_shift;
991 s->port[i].uartclk = uartclk;
992 s->port[i].ops = &sccnxp_ops;
993 s->port[i].has_sysrq = IS_ENABLED(CONFIG_SERIAL_SCCNXP_CONSOLE);
994 uart_add_one_port(&s->uart, &s->port[i]);
995 /* Set direction to input */
996 if (s->chip->flags & SCCNXP_HAVE_IO)
997 sccnxp_set_bit(&s->port[i], DIR_OP, 0);
998 }
999
1000 /* Disable interrupts */
1001 s->imr = 0;
1002 sccnxp_write(&s->port[0], SCCNXP_IMR_REG, 0);
1003
1004 if (!s->poll) {
1005 ret = devm_request_threaded_irq(&pdev->dev, s->irq, NULL,
1006 sccnxp_ist,
1007 IRQF_TRIGGER_FALLING |
1008 IRQF_ONESHOT,
1009 dev_name(&pdev->dev), s);
1010 if (!ret)
1011 return 0;
1012
1013 dev_err(&pdev->dev, "Unable to reguest IRQ %i\n", s->irq);
1014 } else {
1015 timer_setup(&s->timer, sccnxp_timer, 0);
1016 mod_timer(&s->timer, jiffies +
1017 usecs_to_jiffies(s->pdata.poll_time_us));
1018 return 0;
1019 }
1020
1021 uart_unregister_driver(&s->uart);
1022 err_out:
1023 if (!IS_ERR(s->regulator))
1024 regulator_disable(s->regulator);
1025
1026 return ret;
1027 }
1028
---
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: 33822 bytes --]
next reply other threads:[~2020-12-15 21:26 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-15 21:23 kernel test robot [this message]
2020-12-15 21:23 ` [arm-platforms:hack/devm_cast_abuse 3/17] drivers/tty/serial/sccnxp.c:923:9: error: implicit declaration of function 'devm_clk_prepare_enable'; did you mean 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=202012160541.IgF2Pak0-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=maz@kernel.org \
/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.