* [tty:tty-testing 30/42] drivers/tty/serial/meson_uart.c:832 meson_uart_probe() warn: 'pclk' not released on lines: 779, 785, 790, 794, 799.
@ 2022-02-28 7:17 ` Dan Carpenter
0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2022-02-26 20:16 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 8616 bytes --]
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-serial(a)vger.kernel.org
TO: Yu Tu <yu.tu@amlogic.com>
CC: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git tty-testing
head: 71404f653cf7858fdbb81dd5419a8a4ac4ffa20c
commit: 44023b8e1f14bc72bb773dd84dc3563fc912d210 [30/42] tty: serial: meson: Describes the calculation of the UART baud rate clock using a clock frame
:::::: branch date: 11 hours ago
:::::: commit date: 11 hours ago
config: arc-randconfig-m031-20220226 (https://download.01.org/0day-ci/archive/20220227/202202270400.rQqj5xav-lkp(a)intel.com/config)
compiler: arceb-elf-gcc (GCC) 11.2.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/tty/serial/meson_uart.c:832 meson_uart_probe() warn: 'pclk' not released on lines: 779,785,790,794,799.
vim +/pclk +832 drivers/tty/serial/meson_uart.c
9f60e0e7aea66e Helmut Klein 2017-06-14 736
ff7693d079e58f Carlo Caione 2014-08-17 737 static int meson_uart_probe(struct platform_device *pdev)
ff7693d079e58f Carlo Caione 2014-08-17 738 {
44023b8e1f14bc Yu Tu 2022-02-25 739 struct meson_uart_data *private_data;
5b680619834714 Lad Prabhakar 2021-12-24 740 struct resource *res_mem;
ff7693d079e58f Carlo Caione 2014-08-17 741 struct uart_port *port;
44023b8e1f14bc Yu Tu 2022-02-25 742 struct clk *pclk;
27d44e05d7b85d Neil Armstrong 2021-05-18 743 u32 fifosize = 64; /* Default is 64, 128 for EE UART_0 */
ff7693d079e58f Carlo Caione 2014-08-17 744 int ret = 0;
5b680619834714 Lad Prabhakar 2021-12-24 745 int irq;
ff7693d079e58f Carlo Caione 2014-08-17 746
ff7693d079e58f Carlo Caione 2014-08-17 747 if (pdev->dev.of_node)
ff7693d079e58f Carlo Caione 2014-08-17 748 pdev->id = of_alias_get_id(pdev->dev.of_node, "serial");
ff7693d079e58f Carlo Caione 2014-08-17 749
a26988e8fef4b2 Loys Ollivier 2019-01-14 750 if (pdev->id < 0) {
021212f5335229 Colin Ian King 2021-04-26 751 int id;
021212f5335229 Colin Ian King 2021-04-26 752
a26988e8fef4b2 Loys Ollivier 2019-01-14 753 for (id = AML_UART_PORT_OFFSET; id < AML_UART_PORT_NUM; id++) {
a26988e8fef4b2 Loys Ollivier 2019-01-14 754 if (!meson_ports[id]) {
a26988e8fef4b2 Loys Ollivier 2019-01-14 755 pdev->id = id;
a26988e8fef4b2 Loys Ollivier 2019-01-14 756 break;
a26988e8fef4b2 Loys Ollivier 2019-01-14 757 }
a26988e8fef4b2 Loys Ollivier 2019-01-14 758 }
a26988e8fef4b2 Loys Ollivier 2019-01-14 759 }
a26988e8fef4b2 Loys Ollivier 2019-01-14 760
ff7693d079e58f Carlo Caione 2014-08-17 761 if (pdev->id < 0 || pdev->id >= AML_UART_PORT_NUM)
ff7693d079e58f Carlo Caione 2014-08-17 762 return -EINVAL;
ff7693d079e58f Carlo Caione 2014-08-17 763
ff7693d079e58f Carlo Caione 2014-08-17 764 res_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
ff7693d079e58f Carlo Caione 2014-08-17 765 if (!res_mem)
ff7693d079e58f Carlo Caione 2014-08-17 766 return -ENODEV;
ff7693d079e58f Carlo Caione 2014-08-17 767
44023b8e1f14bc Yu Tu 2022-02-25 768 pclk = devm_clk_get(&pdev->dev, "pclk");
44023b8e1f14bc Yu Tu 2022-02-25 769 if (IS_ERR(pclk))
44023b8e1f14bc Yu Tu 2022-02-25 770 return dev_err_probe(&pdev->dev, PTR_ERR(pclk),
44023b8e1f14bc Yu Tu 2022-02-25 771 "Failed to get the 'pclk' clock\n");
44023b8e1f14bc Yu Tu 2022-02-25 772
44023b8e1f14bc Yu Tu 2022-02-25 773 ret = clk_prepare_enable(pclk);
44023b8e1f14bc Yu Tu 2022-02-25 774 if (ret)
44023b8e1f14bc Yu Tu 2022-02-25 775 return ret;
44023b8e1f14bc Yu Tu 2022-02-25 776
5b680619834714 Lad Prabhakar 2021-12-24 777 irq = platform_get_irq(pdev, 0);
5b680619834714 Lad Prabhakar 2021-12-24 778 if (irq < 0)
5b680619834714 Lad Prabhakar 2021-12-24 779 return irq;
ff7693d079e58f Carlo Caione 2014-08-17 780
27d44e05d7b85d Neil Armstrong 2021-05-18 781 of_property_read_u32(pdev->dev.of_node, "fifo-size", &fifosize);
27d44e05d7b85d Neil Armstrong 2021-05-18 782
ff7693d079e58f Carlo Caione 2014-08-17 783 if (meson_ports[pdev->id]) {
ff7693d079e58f Carlo Caione 2014-08-17 784 dev_err(&pdev->dev, "port %d already allocated\n", pdev->id);
ff7693d079e58f Carlo Caione 2014-08-17 785 return -EBUSY;
ff7693d079e58f Carlo Caione 2014-08-17 786 }
ff7693d079e58f Carlo Caione 2014-08-17 787
ff7693d079e58f Carlo Caione 2014-08-17 788 port = devm_kzalloc(&pdev->dev, sizeof(struct uart_port), GFP_KERNEL);
ff7693d079e58f Carlo Caione 2014-08-17 789 if (!port)
ff7693d079e58f Carlo Caione 2014-08-17 790 return -ENOMEM;
ff7693d079e58f Carlo Caione 2014-08-17 791
6436dd8f9b25ea Yu Tu 2022-02-25 792 port->membase = devm_ioremap_resource(&pdev->dev, res_mem);
841f913e770f3c Yu Tu 2022-02-25 793 if (IS_ERR(port->membase))
841f913e770f3c Yu Tu 2022-02-25 794 return PTR_ERR(port->membase);
841f913e770f3c Yu Tu 2022-02-25 795
44023b8e1f14bc Yu Tu 2022-02-25 796 private_data = devm_kzalloc(&pdev->dev, sizeof(*private_data),
44023b8e1f14bc Yu Tu 2022-02-25 797 GFP_KERNEL);
44023b8e1f14bc Yu Tu 2022-02-25 798 if (!private_data)
44023b8e1f14bc Yu Tu 2022-02-25 799 return -ENOMEM;
44023b8e1f14bc Yu Tu 2022-02-25 800
44023b8e1f14bc Yu Tu 2022-02-25 801 if (device_get_match_data(&pdev->dev))
44023b8e1f14bc Yu Tu 2022-02-25 802 private_data->use_xtal_clk = true;
ff7693d079e58f Carlo Caione 2014-08-17 803
ff7693d079e58f Carlo Caione 2014-08-17 804 port->iotype = UPIO_MEM;
ff7693d079e58f Carlo Caione 2014-08-17 805 port->mapbase = res_mem->start;
ff3b9cad7d6309 Heiner Kallweit 2017-04-19 806 port->mapsize = resource_size(res_mem);
5b680619834714 Lad Prabhakar 2021-12-24 807 port->irq = irq;
1b1ecaa69c4f90 Heiner Kallweit 2017-04-19 808 port->flags = UPF_BOOT_AUTOCONF | UPF_LOW_LATENCY;
dca3ac8d3bc943 Dmitry Safonov 2019-12-13 809 port->has_sysrq = IS_ENABLED(CONFIG_SERIAL_MESON_CONSOLE);
ff7693d079e58f Carlo Caione 2014-08-17 810 port->dev = &pdev->dev;
ff7693d079e58f Carlo Caione 2014-08-17 811 port->line = pdev->id;
ff7693d079e58f Carlo Caione 2014-08-17 812 port->type = PORT_MESON;
ff7693d079e58f Carlo Caione 2014-08-17 813 port->x_char = 0;
ff7693d079e58f Carlo Caione 2014-08-17 814 port->ops = &meson_uart_ops;
27d44e05d7b85d Neil Armstrong 2021-05-18 815 port->fifosize = fifosize;
44023b8e1f14bc Yu Tu 2022-02-25 816 port->private_data = private_data;
44023b8e1f14bc Yu Tu 2022-02-25 817
44023b8e1f14bc Yu Tu 2022-02-25 818 ret = meson_uart_probe_clocks(port);
44023b8e1f14bc Yu Tu 2022-02-25 819 if (ret)
44023b8e1f14bc Yu Tu 2022-02-25 820 return ret;
ff7693d079e58f Carlo Caione 2014-08-17 821
ff7693d079e58f Carlo Caione 2014-08-17 822 meson_ports[pdev->id] = port;
ff7693d079e58f Carlo Caione 2014-08-17 823 platform_set_drvdata(pdev, port);
ff7693d079e58f Carlo Caione 2014-08-17 824
00661dd855b5b1 Ben Dooks 2015-11-18 825 /* reset port before registering (and possibly registering console) */
00661dd855b5b1 Ben Dooks 2015-11-18 826 meson_uart_reset(port);
00661dd855b5b1 Ben Dooks 2015-11-18 827
ff7693d079e58f Carlo Caione 2014-08-17 828 ret = uart_add_one_port(&meson_uart_driver, port);
ff7693d079e58f Carlo Caione 2014-08-17 829 if (ret)
ff7693d079e58f Carlo Caione 2014-08-17 830 meson_ports[pdev->id] = NULL;
ff7693d079e58f Carlo Caione 2014-08-17 831
ff7693d079e58f Carlo Caione 2014-08-17 @832 return ret;
ff7693d079e58f Carlo Caione 2014-08-17 833 }
ff7693d079e58f Carlo Caione 2014-08-17 834
:::::: The code at line 832 was first introduced by commit
:::::: ff7693d079e58fb62d735b7b8085b53fcfb74528 ARM: meson: serial: add MesonX SoC on-chip uart driver
:::::: TO: Carlo Caione <carlo@caione.org>
:::::: CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply [flat|nested] 3+ messages in thread
* [tty:tty-testing 30/42] drivers/tty/serial/meson_uart.c:832 meson_uart_probe() warn: 'pclk' not released on lines: 779,785,790,794,799.
@ 2022-02-28 7:17 ` Dan Carpenter
0 siblings, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2022-02-28 7:17 UTC (permalink / raw)
To: kbuild, Yu Tu; +Cc: lkp, kbuild-all, linux-serial, Greg Kroah-Hartman
tree: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git tty-testing
head: 71404f653cf7858fdbb81dd5419a8a4ac4ffa20c
commit: 44023b8e1f14bc72bb773dd84dc3563fc912d210 [30/42] tty: serial: meson: Describes the calculation of the UART baud rate clock using a clock frame
config: arc-randconfig-m031-20220226 (https://download.01.org/0day-ci/archive/20220227/202202270400.rQqj5xav-lkp@intel.com/config)
compiler: arceb-elf-gcc (GCC) 11.2.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/tty/serial/meson_uart.c:832 meson_uart_probe() warn: 'pclk' not released on lines: 779,785,790,794,799.
vim +/pclk +832 drivers/tty/serial/meson_uart.c
ff7693d079e58f Carlo Caione 2014-08-17 737 static int meson_uart_probe(struct platform_device *pdev)
ff7693d079e58f Carlo Caione 2014-08-17 738 {
44023b8e1f14bc Yu Tu 2022-02-25 739 struct meson_uart_data *private_data;
5b680619834714 Lad Prabhakar 2021-12-24 740 struct resource *res_mem;
ff7693d079e58f Carlo Caione 2014-08-17 741 struct uart_port *port;
44023b8e1f14bc Yu Tu 2022-02-25 742 struct clk *pclk;
27d44e05d7b85d Neil Armstrong 2021-05-18 743 u32 fifosize = 64; /* Default is 64, 128 for EE UART_0 */
ff7693d079e58f Carlo Caione 2014-08-17 744 int ret = 0;
5b680619834714 Lad Prabhakar 2021-12-24 745 int irq;
ff7693d079e58f Carlo Caione 2014-08-17 746
ff7693d079e58f Carlo Caione 2014-08-17 747 if (pdev->dev.of_node)
ff7693d079e58f Carlo Caione 2014-08-17 748 pdev->id = of_alias_get_id(pdev->dev.of_node, "serial");
ff7693d079e58f Carlo Caione 2014-08-17 749
a26988e8fef4b2 Loys Ollivier 2019-01-14 750 if (pdev->id < 0) {
021212f5335229 Colin Ian King 2021-04-26 751 int id;
021212f5335229 Colin Ian King 2021-04-26 752
a26988e8fef4b2 Loys Ollivier 2019-01-14 753 for (id = AML_UART_PORT_OFFSET; id < AML_UART_PORT_NUM; id++) {
a26988e8fef4b2 Loys Ollivier 2019-01-14 754 if (!meson_ports[id]) {
a26988e8fef4b2 Loys Ollivier 2019-01-14 755 pdev->id = id;
a26988e8fef4b2 Loys Ollivier 2019-01-14 756 break;
a26988e8fef4b2 Loys Ollivier 2019-01-14 757 }
a26988e8fef4b2 Loys Ollivier 2019-01-14 758 }
a26988e8fef4b2 Loys Ollivier 2019-01-14 759 }
a26988e8fef4b2 Loys Ollivier 2019-01-14 760
ff7693d079e58f Carlo Caione 2014-08-17 761 if (pdev->id < 0 || pdev->id >= AML_UART_PORT_NUM)
ff7693d079e58f Carlo Caione 2014-08-17 762 return -EINVAL;
ff7693d079e58f Carlo Caione 2014-08-17 763
ff7693d079e58f Carlo Caione 2014-08-17 764 res_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
ff7693d079e58f Carlo Caione 2014-08-17 765 if (!res_mem)
ff7693d079e58f Carlo Caione 2014-08-17 766 return -ENODEV;
ff7693d079e58f Carlo Caione 2014-08-17 767
44023b8e1f14bc Yu Tu 2022-02-25 768 pclk = devm_clk_get(&pdev->dev, "pclk");
44023b8e1f14bc Yu Tu 2022-02-25 769 if (IS_ERR(pclk))
44023b8e1f14bc Yu Tu 2022-02-25 770 return dev_err_probe(&pdev->dev, PTR_ERR(pclk),
44023b8e1f14bc Yu Tu 2022-02-25 771 "Failed to get the 'pclk' clock\n");
44023b8e1f14bc Yu Tu 2022-02-25 772
44023b8e1f14bc Yu Tu 2022-02-25 773 ret = clk_prepare_enable(pclk);
44023b8e1f14bc Yu Tu 2022-02-25 774 if (ret)
44023b8e1f14bc Yu Tu 2022-02-25 775 return ret;
44023b8e1f14bc Yu Tu 2022-02-25 776
5b680619834714 Lad Prabhakar 2021-12-24 777 irq = platform_get_irq(pdev, 0);
5b680619834714 Lad Prabhakar 2021-12-24 778 if (irq < 0)
5b680619834714 Lad Prabhakar 2021-12-24 779 return irq;
Do we need to do a clk_prepare_disable() on error paths?
ff7693d079e58f Carlo Caione 2014-08-17 780
27d44e05d7b85d Neil Armstrong 2021-05-18 781 of_property_read_u32(pdev->dev.of_node, "fifo-size", &fifosize);
27d44e05d7b85d Neil Armstrong 2021-05-18 782
ff7693d079e58f Carlo Caione 2014-08-17 783 if (meson_ports[pdev->id]) {
ff7693d079e58f Carlo Caione 2014-08-17 784 dev_err(&pdev->dev, "port %d already allocated\n", pdev->id);
ff7693d079e58f Carlo Caione 2014-08-17 785 return -EBUSY;
ff7693d079e58f Carlo Caione 2014-08-17 786 }
ff7693d079e58f Carlo Caione 2014-08-17 787
ff7693d079e58f Carlo Caione 2014-08-17 788 port = devm_kzalloc(&pdev->dev, sizeof(struct uart_port), GFP_KERNEL);
ff7693d079e58f Carlo Caione 2014-08-17 789 if (!port)
ff7693d079e58f Carlo Caione 2014-08-17 790 return -ENOMEM;
ff7693d079e58f Carlo Caione 2014-08-17 791
6436dd8f9b25ea Yu Tu 2022-02-25 792 port->membase = devm_ioremap_resource(&pdev->dev, res_mem);
841f913e770f3c Yu Tu 2022-02-25 793 if (IS_ERR(port->membase))
841f913e770f3c Yu Tu 2022-02-25 794 return PTR_ERR(port->membase);
841f913e770f3c Yu Tu 2022-02-25 795
44023b8e1f14bc Yu Tu 2022-02-25 796 private_data = devm_kzalloc(&pdev->dev, sizeof(*private_data),
44023b8e1f14bc Yu Tu 2022-02-25 797 GFP_KERNEL);
44023b8e1f14bc Yu Tu 2022-02-25 798 if (!private_data)
44023b8e1f14bc Yu Tu 2022-02-25 799 return -ENOMEM;
44023b8e1f14bc Yu Tu 2022-02-25 800
44023b8e1f14bc Yu Tu 2022-02-25 801 if (device_get_match_data(&pdev->dev))
44023b8e1f14bc Yu Tu 2022-02-25 802 private_data->use_xtal_clk = true;
ff7693d079e58f Carlo Caione 2014-08-17 803
ff7693d079e58f Carlo Caione 2014-08-17 804 port->iotype = UPIO_MEM;
ff7693d079e58f Carlo Caione 2014-08-17 805 port->mapbase = res_mem->start;
ff3b9cad7d6309 Heiner Kallweit 2017-04-19 806 port->mapsize = resource_size(res_mem);
5b680619834714 Lad Prabhakar 2021-12-24 807 port->irq = irq;
1b1ecaa69c4f90 Heiner Kallweit 2017-04-19 808 port->flags = UPF_BOOT_AUTOCONF | UPF_LOW_LATENCY;
dca3ac8d3bc943 Dmitry Safonov 2019-12-13 809 port->has_sysrq = IS_ENABLED(CONFIG_SERIAL_MESON_CONSOLE);
ff7693d079e58f Carlo Caione 2014-08-17 810 port->dev = &pdev->dev;
ff7693d079e58f Carlo Caione 2014-08-17 811 port->line = pdev->id;
ff7693d079e58f Carlo Caione 2014-08-17 812 port->type = PORT_MESON;
ff7693d079e58f Carlo Caione 2014-08-17 813 port->x_char = 0;
ff7693d079e58f Carlo Caione 2014-08-17 814 port->ops = &meson_uart_ops;
27d44e05d7b85d Neil Armstrong 2021-05-18 815 port->fifosize = fifosize;
44023b8e1f14bc Yu Tu 2022-02-25 816 port->private_data = private_data;
44023b8e1f14bc Yu Tu 2022-02-25 817
44023b8e1f14bc Yu Tu 2022-02-25 818 ret = meson_uart_probe_clocks(port);
44023b8e1f14bc Yu Tu 2022-02-25 819 if (ret)
44023b8e1f14bc Yu Tu 2022-02-25 820 return ret;
ff7693d079e58f Carlo Caione 2014-08-17 821
ff7693d079e58f Carlo Caione 2014-08-17 822 meson_ports[pdev->id] = port;
ff7693d079e58f Carlo Caione 2014-08-17 823 platform_set_drvdata(pdev, port);
ff7693d079e58f Carlo Caione 2014-08-17 824
00661dd855b5b1 Ben Dooks 2015-11-18 825 /* reset port before registering (and possibly registering console) */
00661dd855b5b1 Ben Dooks 2015-11-18 826 meson_uart_reset(port);
00661dd855b5b1 Ben Dooks 2015-11-18 827
ff7693d079e58f Carlo Caione 2014-08-17 828 ret = uart_add_one_port(&meson_uart_driver, port);
ff7693d079e58f Carlo Caione 2014-08-17 829 if (ret)
ff7693d079e58f Carlo Caione 2014-08-17 830 meson_ports[pdev->id] = NULL;
ff7693d079e58f Carlo Caione 2014-08-17 831
ff7693d079e58f Carlo Caione 2014-08-17 @832 return ret;
ff7693d079e58f Carlo Caione 2014-08-17 833 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
^ permalink raw reply [flat|nested] 3+ messages in thread
* [tty:tty-testing 30/42] drivers/tty/serial/meson_uart.c:832 meson_uart_probe() warn: 'pclk' not released on lines: 779, 785, 790, 794, 799.
@ 2022-02-28 7:17 ` Dan Carpenter
0 siblings, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2022-02-28 7:17 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 8063 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git tty-testing
head: 71404f653cf7858fdbb81dd5419a8a4ac4ffa20c
commit: 44023b8e1f14bc72bb773dd84dc3563fc912d210 [30/42] tty: serial: meson: Describes the calculation of the UART baud rate clock using a clock frame
config: arc-randconfig-m031-20220226 (https://download.01.org/0day-ci/archive/20220227/202202270400.rQqj5xav-lkp(a)intel.com/config)
compiler: arceb-elf-gcc (GCC) 11.2.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/tty/serial/meson_uart.c:832 meson_uart_probe() warn: 'pclk' not released on lines: 779,785,790,794,799.
vim +/pclk +832 drivers/tty/serial/meson_uart.c
ff7693d079e58f Carlo Caione 2014-08-17 737 static int meson_uart_probe(struct platform_device *pdev)
ff7693d079e58f Carlo Caione 2014-08-17 738 {
44023b8e1f14bc Yu Tu 2022-02-25 739 struct meson_uart_data *private_data;
5b680619834714 Lad Prabhakar 2021-12-24 740 struct resource *res_mem;
ff7693d079e58f Carlo Caione 2014-08-17 741 struct uart_port *port;
44023b8e1f14bc Yu Tu 2022-02-25 742 struct clk *pclk;
27d44e05d7b85d Neil Armstrong 2021-05-18 743 u32 fifosize = 64; /* Default is 64, 128 for EE UART_0 */
ff7693d079e58f Carlo Caione 2014-08-17 744 int ret = 0;
5b680619834714 Lad Prabhakar 2021-12-24 745 int irq;
ff7693d079e58f Carlo Caione 2014-08-17 746
ff7693d079e58f Carlo Caione 2014-08-17 747 if (pdev->dev.of_node)
ff7693d079e58f Carlo Caione 2014-08-17 748 pdev->id = of_alias_get_id(pdev->dev.of_node, "serial");
ff7693d079e58f Carlo Caione 2014-08-17 749
a26988e8fef4b2 Loys Ollivier 2019-01-14 750 if (pdev->id < 0) {
021212f5335229 Colin Ian King 2021-04-26 751 int id;
021212f5335229 Colin Ian King 2021-04-26 752
a26988e8fef4b2 Loys Ollivier 2019-01-14 753 for (id = AML_UART_PORT_OFFSET; id < AML_UART_PORT_NUM; id++) {
a26988e8fef4b2 Loys Ollivier 2019-01-14 754 if (!meson_ports[id]) {
a26988e8fef4b2 Loys Ollivier 2019-01-14 755 pdev->id = id;
a26988e8fef4b2 Loys Ollivier 2019-01-14 756 break;
a26988e8fef4b2 Loys Ollivier 2019-01-14 757 }
a26988e8fef4b2 Loys Ollivier 2019-01-14 758 }
a26988e8fef4b2 Loys Ollivier 2019-01-14 759 }
a26988e8fef4b2 Loys Ollivier 2019-01-14 760
ff7693d079e58f Carlo Caione 2014-08-17 761 if (pdev->id < 0 || pdev->id >= AML_UART_PORT_NUM)
ff7693d079e58f Carlo Caione 2014-08-17 762 return -EINVAL;
ff7693d079e58f Carlo Caione 2014-08-17 763
ff7693d079e58f Carlo Caione 2014-08-17 764 res_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
ff7693d079e58f Carlo Caione 2014-08-17 765 if (!res_mem)
ff7693d079e58f Carlo Caione 2014-08-17 766 return -ENODEV;
ff7693d079e58f Carlo Caione 2014-08-17 767
44023b8e1f14bc Yu Tu 2022-02-25 768 pclk = devm_clk_get(&pdev->dev, "pclk");
44023b8e1f14bc Yu Tu 2022-02-25 769 if (IS_ERR(pclk))
44023b8e1f14bc Yu Tu 2022-02-25 770 return dev_err_probe(&pdev->dev, PTR_ERR(pclk),
44023b8e1f14bc Yu Tu 2022-02-25 771 "Failed to get the 'pclk' clock\n");
44023b8e1f14bc Yu Tu 2022-02-25 772
44023b8e1f14bc Yu Tu 2022-02-25 773 ret = clk_prepare_enable(pclk);
44023b8e1f14bc Yu Tu 2022-02-25 774 if (ret)
44023b8e1f14bc Yu Tu 2022-02-25 775 return ret;
44023b8e1f14bc Yu Tu 2022-02-25 776
5b680619834714 Lad Prabhakar 2021-12-24 777 irq = platform_get_irq(pdev, 0);
5b680619834714 Lad Prabhakar 2021-12-24 778 if (irq < 0)
5b680619834714 Lad Prabhakar 2021-12-24 779 return irq;
Do we need to do a clk_prepare_disable() on error paths?
ff7693d079e58f Carlo Caione 2014-08-17 780
27d44e05d7b85d Neil Armstrong 2021-05-18 781 of_property_read_u32(pdev->dev.of_node, "fifo-size", &fifosize);
27d44e05d7b85d Neil Armstrong 2021-05-18 782
ff7693d079e58f Carlo Caione 2014-08-17 783 if (meson_ports[pdev->id]) {
ff7693d079e58f Carlo Caione 2014-08-17 784 dev_err(&pdev->dev, "port %d already allocated\n", pdev->id);
ff7693d079e58f Carlo Caione 2014-08-17 785 return -EBUSY;
ff7693d079e58f Carlo Caione 2014-08-17 786 }
ff7693d079e58f Carlo Caione 2014-08-17 787
ff7693d079e58f Carlo Caione 2014-08-17 788 port = devm_kzalloc(&pdev->dev, sizeof(struct uart_port), GFP_KERNEL);
ff7693d079e58f Carlo Caione 2014-08-17 789 if (!port)
ff7693d079e58f Carlo Caione 2014-08-17 790 return -ENOMEM;
ff7693d079e58f Carlo Caione 2014-08-17 791
6436dd8f9b25ea Yu Tu 2022-02-25 792 port->membase = devm_ioremap_resource(&pdev->dev, res_mem);
841f913e770f3c Yu Tu 2022-02-25 793 if (IS_ERR(port->membase))
841f913e770f3c Yu Tu 2022-02-25 794 return PTR_ERR(port->membase);
841f913e770f3c Yu Tu 2022-02-25 795
44023b8e1f14bc Yu Tu 2022-02-25 796 private_data = devm_kzalloc(&pdev->dev, sizeof(*private_data),
44023b8e1f14bc Yu Tu 2022-02-25 797 GFP_KERNEL);
44023b8e1f14bc Yu Tu 2022-02-25 798 if (!private_data)
44023b8e1f14bc Yu Tu 2022-02-25 799 return -ENOMEM;
44023b8e1f14bc Yu Tu 2022-02-25 800
44023b8e1f14bc Yu Tu 2022-02-25 801 if (device_get_match_data(&pdev->dev))
44023b8e1f14bc Yu Tu 2022-02-25 802 private_data->use_xtal_clk = true;
ff7693d079e58f Carlo Caione 2014-08-17 803
ff7693d079e58f Carlo Caione 2014-08-17 804 port->iotype = UPIO_MEM;
ff7693d079e58f Carlo Caione 2014-08-17 805 port->mapbase = res_mem->start;
ff3b9cad7d6309 Heiner Kallweit 2017-04-19 806 port->mapsize = resource_size(res_mem);
5b680619834714 Lad Prabhakar 2021-12-24 807 port->irq = irq;
1b1ecaa69c4f90 Heiner Kallweit 2017-04-19 808 port->flags = UPF_BOOT_AUTOCONF | UPF_LOW_LATENCY;
dca3ac8d3bc943 Dmitry Safonov 2019-12-13 809 port->has_sysrq = IS_ENABLED(CONFIG_SERIAL_MESON_CONSOLE);
ff7693d079e58f Carlo Caione 2014-08-17 810 port->dev = &pdev->dev;
ff7693d079e58f Carlo Caione 2014-08-17 811 port->line = pdev->id;
ff7693d079e58f Carlo Caione 2014-08-17 812 port->type = PORT_MESON;
ff7693d079e58f Carlo Caione 2014-08-17 813 port->x_char = 0;
ff7693d079e58f Carlo Caione 2014-08-17 814 port->ops = &meson_uart_ops;
27d44e05d7b85d Neil Armstrong 2021-05-18 815 port->fifosize = fifosize;
44023b8e1f14bc Yu Tu 2022-02-25 816 port->private_data = private_data;
44023b8e1f14bc Yu Tu 2022-02-25 817
44023b8e1f14bc Yu Tu 2022-02-25 818 ret = meson_uart_probe_clocks(port);
44023b8e1f14bc Yu Tu 2022-02-25 819 if (ret)
44023b8e1f14bc Yu Tu 2022-02-25 820 return ret;
ff7693d079e58f Carlo Caione 2014-08-17 821
ff7693d079e58f Carlo Caione 2014-08-17 822 meson_ports[pdev->id] = port;
ff7693d079e58f Carlo Caione 2014-08-17 823 platform_set_drvdata(pdev, port);
ff7693d079e58f Carlo Caione 2014-08-17 824
00661dd855b5b1 Ben Dooks 2015-11-18 825 /* reset port before registering (and possibly registering console) */
00661dd855b5b1 Ben Dooks 2015-11-18 826 meson_uart_reset(port);
00661dd855b5b1 Ben Dooks 2015-11-18 827
ff7693d079e58f Carlo Caione 2014-08-17 828 ret = uart_add_one_port(&meson_uart_driver, port);
ff7693d079e58f Carlo Caione 2014-08-17 829 if (ret)
ff7693d079e58f Carlo Caione 2014-08-17 830 meson_ports[pdev->id] = NULL;
ff7693d079e58f Carlo Caione 2014-08-17 831
ff7693d079e58f Carlo Caione 2014-08-17 @832 return ret;
ff7693d079e58f Carlo Caione 2014-08-17 833 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-02-28 7:17 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-26 20:16 [tty:tty-testing 30/42] drivers/tty/serial/meson_uart.c:832 meson_uart_probe() warn: 'pclk' not released on lines: 779, 785, 790, 794, 799 kernel test robot
2022-02-28 7:17 ` Dan Carpenter
2022-02-28 7:17 ` [tty:tty-testing 30/42] drivers/tty/serial/meson_uart.c:832 meson_uart_probe() warn: 'pclk' not released on lines: 779,785,790,794,799 Dan Carpenter
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.