Messages in this thread | | | Date | Mon, 28 Feb 2022 22:36:15 +0800 | Subject | Re: [PATCH V3] tty: serial: meson: Fix the compile link error reported by kernel test robot | From | Yu Tu <> |
| |
Hi,
On 2022/2/28 22:13, Neil Armstrong wrote: > [ EXTERNAL EMAIL ] > > Hi, > > On 28/02/2022 14:55, Yu Tu wrote: >> Describes the calculation of the UART baud rate clock using a clock >> frame. Forgot to add in Kconfig kernel test Robot compilation error >> due to COMMON_CLK dependency. >> >> Fixes: ("tty: serial:meson: Describes the calculation of the UART baud >> rate clock using a clock frame“) > > As I already replied on V2 of this patch, you're invited to apply these > fixes directly > on the next version of your "Use CCF to describe the UART baud rate > clock" patchset > and not as a separate patch. > Sorry, I don't understand what you mean. Could you be more specific? > Thanks, > Neil > >> Reported-by: kernel test robot <lkp@intel.com> >> Reported-by: Dan Carpenter <dan.carpenter@oracle.com> >> Signed-off-by: Yu Tu <yu.tu@amlogic.com> >> --- >> drivers/tty/serial/Kconfig | 1 + >> drivers/tty/serial/meson_uart.c | 37 +++++++++++++++++++++++---------- >> 2 files changed, 27 insertions(+), 11 deletions(-) >> >> diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig >> index e952ec5c7a7c..a0f2b82fc18b 100644 >> --- a/drivers/tty/serial/Kconfig >> +++ b/drivers/tty/serial/Kconfig >> @@ -200,6 +200,7 @@ config SERIAL_KGDB_NMI >> config SERIAL_MESON >> tristate "Meson serial port support" >> depends on ARCH_MESON || COMPILE_TEST >> + depends on COMMON_CLK >> select SERIAL_CORE >> help >> This enables the driver for the on-chip UARTs of the Amlogic >> diff --git a/drivers/tty/serial/meson_uart.c >> b/drivers/tty/serial/meson_uart.c >> index bf6be5468aaf..972f210f3492 100644 >> --- a/drivers/tty/serial/meson_uart.c >> +++ b/drivers/tty/serial/meson_uart.c >> @@ -780,28 +780,37 @@ static int meson_uart_probe(struct >> platform_device *pdev) >> return ret; >> irq = platform_get_irq(pdev, 0); >> - if (irq < 0) >> - return irq; >> + if (irq < 0) { >> + ret = irq; >> + goto err_out_clk_disable; >> + } >> of_property_read_u32(pdev->dev.of_node, "fifo-size", &fifosize); >> if (meson_ports[pdev->id]) { >> dev_err(&pdev->dev, "port %d already allocated\n", pdev->id); >> - return -EBUSY; >> + ret = -EBUSY; >> + goto err_out_clk_disable; >> } >> port = devm_kzalloc(&pdev->dev, sizeof(struct uart_port), >> GFP_KERNEL); >> - if (!port) >> - return -ENOMEM; >> + if (!port) { >> + ret = -ENOMEM; >> + goto err_out_clk_disable; >> + } >> port->membase = devm_ioremap_resource(&pdev->dev, res_mem); >> - if (IS_ERR(port->membase)) >> - return PTR_ERR(port->membase); >> + if (IS_ERR(port->membase)) { >> + ret = PTR_ERR(port->membase); >> + goto err_out_clk_disable; >> + } >> private_data = devm_kzalloc(&pdev->dev, sizeof(*private_data), >> GFP_KERNEL); >> - if (!private_data) >> - return -ENOMEM; >> + if (!private_data) { >> + ret = -ENOMEM; >> + goto err_out_clk_disable; >> + } >> if (device_get_match_data(&pdev->dev)) >> private_data->use_xtal_clk = true; >> @@ -822,7 +831,7 @@ static int meson_uart_probe(struct platform_device >> *pdev) >> ret = meson_uart_probe_clocks(port); >> if (ret) >> - return ret; >> + goto err_out_clk_disable; >> meson_ports[pdev->id] = port; >> platform_set_drvdata(pdev, port); >> @@ -831,9 +840,15 @@ static int meson_uart_probe(struct >> platform_device *pdev) >> meson_uart_reset(port); >> ret = uart_add_one_port(&meson_uart_driver, port); >> - if (ret) >> + if (ret) { >> meson_ports[pdev->id] = NULL; >> + goto err_out_clk_disable; >> + } >> + >> + return 0; >> +err_out_clk_disable: >> + clk_disable_unprepare(pclk); >> return ret; >> } >> >> base-commit: c2faf737abfb10f88f2d2612d573e9edc3c42c37 >
| |