* [PATCH] serial: qcom-geni: remove .pm callback, use runtime PM in startup/shutdown
@ 2026-07-10 9:21 Praveen Talari
2026-07-10 16:10 ` kernel test robot
0 siblings, 1 reply; 2+ messages in thread
From: Praveen Talari @ 2026-07-10 9:21 UTC (permalink / raw)
To: Greg Kroah-Hartman, Jiri Slaby, bjorn.andersson, Konrad Dybcio,
Andy Shevchenko
Cc: linux-arm-msm, linux-kernel, linux-serial, Mukesh Kumar Savaliya,
aniket.randive, chandana.chiluveru, Praveen Talari
The driver currently relies on qcom_geni_serial_pm() through the
uart_ops.pm callback to manage runtime PM references. However, the
callback has a void return type, so failures from
pm_runtime_resume_and_get() cannot be propagated to the caller.
As a result, startup() may continue and access hardware even when the
runtime PM resume operation failed, leading to register accesses while
the device is not powered.
Move runtime PM acquisition to qcom_geni_serial_startup() and release it
to qcom_geni_serial_shutdown(). Since startup() can return an error, PM
resume failures are now detected and propagated before any hardware
initialization is performed. The startup/shutdown pair also provides a
natural place to balance runtime PM references for normal port usage.
During probe, uart_add_one_port() may configure the port before any user
opens the TTY, meaning startup() has not yet been called. To keep the
hardware powered during port registration, wrap uart_add_one_port() with
PM_RUNTIME_ACQUIRE_IF_ENABLED() and PM_RUNTIME_ACQUIRE_ERR(). This
ensures the device is resumed for the duration of registration and that
the runtime PM reference is automatically released afterwards.
By moving runtime PM handling out of uart_ops.pm, resume failures are no
longer silently ignored and all hardware accesses are guaranteed to
occur while the device is powered.
Signed-off-by: Praveen Talari <praveen.talari@oss.qualcomm.com>
---
drivers/tty/serial/qcom_geni_serial.c | 37 +++++++++++++++++------------------
1 file changed, 18 insertions(+), 19 deletions(-)
diff --git a/drivers/tty/serial/qcom_geni_serial.c b/drivers/tty/serial/qcom_geni_serial.c
index 7ead87b4eb65..e16a31b5dc32 100644
--- a/drivers/tty/serial/qcom_geni_serial.c
+++ b/drivers/tty/serial/qcom_geni_serial.c
@@ -1178,6 +1178,8 @@ static void qcom_geni_serial_shutdown(struct uart_port *uport)
qcom_geni_serial_cancel_tx_cmd(uport);
uart_port_unlock_irq(uport);
+
+ pm_runtime_put_sync(uport->dev);
}
static void qcom_geni_serial_flush_buffer(struct uart_port *uport)
@@ -1246,10 +1248,18 @@ static int qcom_geni_serial_startup(struct uart_port *uport)
int ret;
struct qcom_geni_serial_port *port = to_dev_port(uport);
+ ret = pm_runtime_resume_and_get(uport->dev);
+ if (ret < 0) {
+ dev_err(uport->dev, "Failed to resume and get %d\n", ret);
+ return ret;
+ }
+
if (!port->setup) {
ret = qcom_geni_serial_port_setup(uport);
- if (ret)
+ if (ret) {
+ pm_runtime_put_sync(uport->dev);
return ret;
+ }
}
uart_port_lock_irq(uport);
@@ -1724,22 +1734,6 @@ static int geni_serial_resource_init(struct uart_port *uport)
return 0;
}
-static void qcom_geni_serial_pm(struct uart_port *uport,
- unsigned int new_state, unsigned int old_state)
-{
-
- /* If we've never been called, treat it as off */
- if (old_state == UART_PM_STATE_UNDEFINED)
- old_state = UART_PM_STATE_OFF;
-
- if (new_state == UART_PM_STATE_ON && old_state == UART_PM_STATE_OFF)
- pm_runtime_resume_and_get(uport->dev);
- else if (new_state == UART_PM_STATE_OFF &&
- old_state == UART_PM_STATE_ON)
- pm_runtime_put_sync(uport->dev);
-
-}
-
/**
* qcom_geni_rs485_config - Configure RS485 settings for the UART port
* @uport: Pointer to the UART port structure
@@ -1778,7 +1772,6 @@ static const struct uart_ops qcom_geni_console_pops = {
.poll_put_char = qcom_geni_serial_poll_put_char,
.poll_init = qcom_geni_serial_poll_init,
#endif
- .pm = qcom_geni_serial_pm,
};
static const struct uart_ops qcom_geni_uart_pops = {
@@ -1795,7 +1788,6 @@ static const struct uart_ops qcom_geni_uart_pops = {
.type = qcom_geni_serial_get_type,
.set_mctrl = qcom_geni_serial_set_mctrl,
.get_mctrl = qcom_geni_serial_get_mctrl,
- .pm = qcom_geni_serial_pm,
};
static int qcom_geni_serial_probe(struct platform_device *pdev)
@@ -1921,6 +1913,13 @@ static int qcom_geni_serial_probe(struct platform_device *pdev)
devm_pm_runtime_enable(port->se.dev);
+ PM_RUNTIME_ACQUIRE_IF_ENABLED(uport->dev, pm);
+ ret = PM_RUNTIME_ACQUIRE_ERR(&pm);
+ if (ret < 0) {
+ dev_err(uport->dev, "Failed to resume and get %d\n", ret);
+ goto error;
+ }
+
ret = uart_add_one_port(drv, uport);
if (ret)
goto error;
---
base-commit: b9810cd75b9fb56a3425d391cba3f608502bd474
change-id: 20260709-remove_uart_change_state-a1f7e783aeb0
Best regards,
--
Praveen Talari <praveen.talari@oss.qualcomm.com>
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH] serial: qcom-geni: remove .pm callback, use runtime PM in startup/shutdown
2026-07-10 9:21 [PATCH] serial: qcom-geni: remove .pm callback, use runtime PM in startup/shutdown Praveen Talari
@ 2026-07-10 16:10 ` kernel test robot
0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2026-07-10 16:10 UTC (permalink / raw)
To: Praveen Talari, Greg Kroah-Hartman, Jiri Slaby, bjorn.andersson,
Konrad Dybcio, Andy Shevchenko
Cc: llvm, oe-kbuild-all, linux-arm-msm, linux-kernel, linux-serial,
Mukesh Kumar Savaliya, aniket.randive, chandana.chiluveru,
Praveen Talari
Hi Praveen,
kernel test robot noticed the following build errors:
[auto build test ERROR on b9810cd75b9fb56a3425d391cba3f608502bd474]
url: https://github.com/intel-lab-lkp/linux/commits/Praveen-Talari/serial-qcom-geni-remove-pm-callback-use-runtime-PM-in-startup-shutdown/20260710-173518
base: b9810cd75b9fb56a3425d391cba3f608502bd474
patch link: https://lore.kernel.org/r/20260710-remove_uart_change_state-v1-1-8e8468da22a1%40oss.qualcomm.com
patch subject: [PATCH] serial: qcom-geni: remove .pm callback, use runtime PM in startup/shutdown
config: loongarch-randconfig-002-20260710 (https://download.01.org/0day-ci/archive/20260711/202607110008.JQ2vBeKC-lkp@intel.com/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260711/202607110008.JQ2vBeKC-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202607110008.JQ2vBeKC-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/tty/serial/qcom_geni_serial.c:1910:4: error: cannot jump from this goto statement to its label
1910 | goto error;
| ^
drivers/tty/serial/qcom_geni_serial.c:1916:44: note: jump bypasses initialization of variable with __attribute__((cleanup))
1916 | PM_RUNTIME_ACQUIRE_IF_ENABLED(uport->dev, pm);
| ^
drivers/tty/serial/qcom_geni_serial.c:1901:3: error: cannot jump from this goto statement to its label
1901 | goto error;
| ^
drivers/tty/serial/qcom_geni_serial.c:1916:44: note: jump bypasses initialization of variable with __attribute__((cleanup))
1916 | PM_RUNTIME_ACQUIRE_IF_ENABLED(uport->dev, pm);
| ^
drivers/tty/serial/qcom_geni_serial.c:1896:3: error: cannot jump from this goto statement to its label
1896 | goto error;
| ^
drivers/tty/serial/qcom_geni_serial.c:1916:44: note: jump bypasses initialization of variable with __attribute__((cleanup))
1916 | PM_RUNTIME_ACQUIRE_IF_ENABLED(uport->dev, pm);
| ^
drivers/tty/serial/qcom_geni_serial.c:1872:3: error: cannot jump from this goto statement to its label
1872 | goto error;
| ^
drivers/tty/serial/qcom_geni_serial.c:1916:44: note: jump bypasses initialization of variable with __attribute__((cleanup))
1916 | PM_RUNTIME_ACQUIRE_IF_ENABLED(uport->dev, pm);
| ^
drivers/tty/serial/qcom_geni_serial.c:1866:3: error: cannot jump from this goto statement to its label
1866 | goto error;
| ^
drivers/tty/serial/qcom_geni_serial.c:1916:44: note: jump bypasses initialization of variable with __attribute__((cleanup))
1916 | PM_RUNTIME_ACQUIRE_IF_ENABLED(uport->dev, pm);
| ^
drivers/tty/serial/qcom_geni_serial.c:1857:4: error: cannot jump from this goto statement to its label
1857 | goto error;
| ^
drivers/tty/serial/qcom_geni_serial.c:1916:44: note: jump bypasses initialization of variable with __attribute__((cleanup))
1916 | PM_RUNTIME_ACQUIRE_IF_ENABLED(uport->dev, pm);
| ^
drivers/tty/serial/qcom_geni_serial.c:1841:3: error: cannot jump from this goto statement to its label
1841 | goto error;
| ^
drivers/tty/serial/qcom_geni_serial.c:1916:44: note: jump bypasses initialization of variable with __attribute__((cleanup))
1916 | PM_RUNTIME_ACQUIRE_IF_ENABLED(uport->dev, pm);
| ^
7 errors generated.
vim +1910 drivers/tty/serial/qcom_geni_serial.c
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1792
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1793 static int qcom_geni_serial_probe(struct platform_device *pdev)
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1794 {
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1795 int ret = 0;
71581242164f11 Colin Ian King 2021-04-23 1796 int line;
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1797 struct qcom_geni_serial_port *port;
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1798 struct uart_port *uport;
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1799 struct resource *res;
066cd1c4e4b9b4 Karthikeyan Ramasubramanian 2018-04-06 1800 int irq;
8a8a66a1a18a1d Girish Mahadevan 2018-07-13 1801 struct uart_driver *drv;
40ec6d41c841e2 Bartosz Golaszewski 2022-12-29 1802 const struct qcom_geni_device_data *data;
8a8a66a1a18a1d Girish Mahadevan 2018-07-13 1803
40ec6d41c841e2 Bartosz Golaszewski 2022-12-29 1804 data = of_device_get_match_data(&pdev->dev);
40ec6d41c841e2 Bartosz Golaszewski 2022-12-29 1805 if (!data)
40ec6d41c841e2 Bartosz Golaszewski 2022-12-29 1806 return -EINVAL;
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1807
40ec6d41c841e2 Bartosz Golaszewski 2022-12-29 1808 if (data->console) {
8a8a66a1a18a1d Girish Mahadevan 2018-07-13 1809 drv = &qcom_geni_console_driver;
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1810 line = of_alias_get_id(pdev->dev.of_node, "serial");
8a8a66a1a18a1d Girish Mahadevan 2018-07-13 1811 } else {
8a8a66a1a18a1d Girish Mahadevan 2018-07-13 1812 drv = &qcom_geni_uart_driver;
08b0adb1ae5456 Dmitry Baryshkov 2021-06-22 1813 line = of_alias_get_id(pdev->dev.of_node, "serial");
08b0adb1ae5456 Dmitry Baryshkov 2021-06-22 1814 if (line == -ENODEV) /* compat with non-standard aliases */
8a8a66a1a18a1d Girish Mahadevan 2018-07-13 1815 line = of_alias_get_id(pdev->dev.of_node, "hsuart");
8a8a66a1a18a1d Girish Mahadevan 2018-07-13 1816 }
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1817
c3e7966c60745f Zong Jiang 2025-08-12 1818 port = get_port_from_line(line, data->console, &pdev->dev);
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1819 if (IS_ERR(port)) {
6a10635e90e8cb Karthikeyan Ramasubramanian 2018-05-03 1820 dev_err(&pdev->dev, "Invalid line %d\n", line);
6a10635e90e8cb Karthikeyan Ramasubramanian 2018-05-03 1821 return PTR_ERR(port);
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1822 }
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1823
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1824 uport = &port->uport;
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1825 /* Don't allow 2 drivers to access the same port */
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1826 if (uport->private_data)
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1827 return -ENODEV;
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1828
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1829 uport->dev = &pdev->dev;
40ec6d41c841e2 Bartosz Golaszewski 2022-12-29 1830 port->dev_data = data;
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1831 port->se.dev = &pdev->dev;
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1832 port->se.wrapper = dev_get_drvdata(pdev->dev.parent);
4b2601ae3066da Praveen Talari 2025-07-21 1833
abffd1e6c4f1c9 Praveen Talari 2025-11-10 1834 ret = port->dev_data->resources_init(uport);
4b2601ae3066da Praveen Talari 2025-07-21 1835 if (ret)
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1836 return ret;
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1837
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1838 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
abffd1e6c4f1c9 Praveen Talari 2025-11-10 1839 if (!res) {
abffd1e6c4f1c9 Praveen Talari 2025-11-10 1840 ret = -EINVAL;
abffd1e6c4f1c9 Praveen Talari 2025-11-10 1841 goto error;
abffd1e6c4f1c9 Praveen Talari 2025-11-10 1842 }
abffd1e6c4f1c9 Praveen Talari 2025-11-10 1843
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1844 uport->mapbase = res->start;
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1845
4fcc287f3c6924 Anup Kulkarni 2025-06-03 1846 uport->rs485_config = qcom_geni_rs485_config;
4fcc287f3c6924 Anup Kulkarni 2025-06-03 1847 uport->rs485_supported = qcom_geni_rs485_supported;
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1848 port->tx_fifo_depth = DEF_FIFO_DEPTH_WORDS;
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1849 port->rx_fifo_depth = DEF_FIFO_DEPTH_WORDS;
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1850 port->tx_fifo_width = DEF_FIFO_WIDTH_BITS;
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1851
40ec6d41c841e2 Bartosz Golaszewski 2022-12-29 1852 if (!data->console) {
2aaa43c7077833 Bartosz Golaszewski 2022-12-29 1853 port->rx_buf = devm_kzalloc(uport->dev,
2aaa43c7077833 Bartosz Golaszewski 2022-12-29 1854 DMA_RX_BUF_SIZE, GFP_KERNEL);
abffd1e6c4f1c9 Praveen Talari 2025-11-10 1855 if (!port->rx_buf) {
abffd1e6c4f1c9 Praveen Talari 2025-11-10 1856 ret = -ENOMEM;
abffd1e6c4f1c9 Praveen Talari 2025-11-10 1857 goto error;
abffd1e6c4f1c9 Praveen Talari 2025-11-10 1858 }
f9d690b6ece7ec satya priya 2020-03-06 1859 }
f9d690b6ece7ec satya priya 2020-03-06 1860
f3974413cf0209 Akash Asthana 2020-01-06 1861 port->name = devm_kasprintf(uport->dev, GFP_KERNEL,
f3974413cf0209 Akash Asthana 2020-01-06 1862 "qcom_geni_serial_%s%d",
f3974413cf0209 Akash Asthana 2020-01-06 1863 uart_console(uport) ? "console" : "uart", uport->line);
abffd1e6c4f1c9 Praveen Talari 2025-11-10 1864 if (!port->name) {
abffd1e6c4f1c9 Praveen Talari 2025-11-10 1865 ret = -ENOMEM;
abffd1e6c4f1c9 Praveen Talari 2025-11-10 1866 goto error;
abffd1e6c4f1c9 Praveen Talari 2025-11-10 1867 }
f3974413cf0209 Akash Asthana 2020-01-06 1868
066cd1c4e4b9b4 Karthikeyan Ramasubramanian 2018-04-06 1869 irq = platform_get_irq(pdev, 0);
abffd1e6c4f1c9 Praveen Talari 2025-11-10 1870 if (irq < 0) {
abffd1e6c4f1c9 Praveen Talari 2025-11-10 1871 ret = irq;
abffd1e6c4f1c9 Praveen Talari 2025-11-10 1872 goto error;
abffd1e6c4f1c9 Praveen Talari 2025-11-10 1873 }
abffd1e6c4f1c9 Praveen Talari 2025-11-10 1874
066cd1c4e4b9b4 Karthikeyan Ramasubramanian 2018-04-06 1875 uport->irq = irq;
8f122698a64b87 Dmitry Safonov 2019-12-13 1876 uport->has_sysrq = IS_ENABLED(CONFIG_SERIAL_QCOM_GENI_CONSOLE);
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1877
40ec6d41c841e2 Bartosz Golaszewski 2022-12-29 1878 if (!data->console)
f3974413cf0209 Akash Asthana 2020-01-06 1879 port->wakeup_irq = platform_get_irq_optional(pdev, 1);
f3974413cf0209 Akash Asthana 2020-01-06 1880
9fa3c4b1fa379f Roja Rani Yarubandi 2020-03-04 1881 if (of_property_read_bool(pdev->dev.of_node, "rx-tx-swap"))
9fa3c4b1fa379f Roja Rani Yarubandi 2020-03-04 1882 port->rx_tx_swap = true;
9fa3c4b1fa379f Roja Rani Yarubandi 2020-03-04 1883
9fa3c4b1fa379f Roja Rani Yarubandi 2020-03-04 1884 if (of_property_read_bool(pdev->dev.of_node, "cts-rts-swap"))
9fa3c4b1fa379f Roja Rani Yarubandi 2020-03-04 1885 port->cts_rts_swap = true;
9fa3c4b1fa379f Roja Rani Yarubandi 2020-03-04 1886
e42d6c3ec0c7ad Douglas Anderson 2020-06-26 1887 port->private_data.drv = drv;
e42d6c3ec0c7ad Douglas Anderson 2020-06-26 1888 uport->private_data = &port->private_data;
f3974413cf0209 Akash Asthana 2020-01-06 1889 platform_set_drvdata(pdev, port);
f3974413cf0209 Akash Asthana 2020-01-06 1890
3e4aaea7a0391d Akash Asthana 2019-10-10 1891 irq_set_status_flags(uport->irq, IRQ_NOAUTOEN);
3e4aaea7a0391d Akash Asthana 2019-10-10 1892 ret = devm_request_irq(uport->dev, uport->irq, qcom_geni_serial_isr,
3e4aaea7a0391d Akash Asthana 2019-10-10 1893 IRQF_TRIGGER_HIGH, port->name, uport);
3e4aaea7a0391d Akash Asthana 2019-10-10 1894 if (ret) {
3e4aaea7a0391d Akash Asthana 2019-10-10 1895 dev_err(uport->dev, "Failed to get IRQ ret %d\n", ret);
abffd1e6c4f1c9 Praveen Talari 2025-11-10 1896 goto error;
3e4aaea7a0391d Akash Asthana 2019-10-10 1897 }
3e4aaea7a0391d Akash Asthana 2019-10-10 1898
4fcc287f3c6924 Anup Kulkarni 2025-06-03 1899 ret = uart_get_rs485_mode(uport);
4fcc287f3c6924 Anup Kulkarni 2025-06-03 1900 if (ret)
abffd1e6c4f1c9 Praveen Talari 2025-11-10 1901 goto error;
4fcc287f3c6924 Anup Kulkarni 2025-06-03 1902
f3974413cf0209 Akash Asthana 2020-01-06 1903 if (port->wakeup_irq > 0) {
f3974413cf0209 Akash Asthana 2020-01-06 1904 device_init_wakeup(&pdev->dev, true);
f3974413cf0209 Akash Asthana 2020-01-06 1905 ret = dev_pm_set_dedicated_wake_irq(&pdev->dev,
8b7103f3195044 Akash Asthana 2019-10-10 1906 port->wakeup_irq);
8b7103f3195044 Akash Asthana 2019-10-10 1907 if (ret) {
f3974413cf0209 Akash Asthana 2020-01-06 1908 device_init_wakeup(&pdev->dev, false);
a53be6945f5123 Viken Dadhaniya 2025-03-27 1909 ida_free(&port_ida, uport->line);
abffd1e6c4f1c9 Praveen Talari 2025-11-10 @1910 goto error;
8b7103f3195044 Akash Asthana 2019-10-10 1911 }
8b7103f3195044 Akash Asthana 2019-10-10 1912 }
f3974413cf0209 Akash Asthana 2020-01-06 1913
fb47423dc7bf43 Praveen Talari 2026-01-08 1914 devm_pm_runtime_enable(port->se.dev);
fb47423dc7bf43 Praveen Talari 2026-01-08 1915
3db863266714a9 Praveen Talari 2026-07-10 1916 PM_RUNTIME_ACQUIRE_IF_ENABLED(uport->dev, pm);
3db863266714a9 Praveen Talari 2026-07-10 1917 ret = PM_RUNTIME_ACQUIRE_ERR(&pm);
3db863266714a9 Praveen Talari 2026-07-10 1918 if (ret < 0) {
3db863266714a9 Praveen Talari 2026-07-10 1919 dev_err(uport->dev, "Failed to resume and get %d\n", ret);
3db863266714a9 Praveen Talari 2026-07-10 1920 goto error;
3db863266714a9 Praveen Talari 2026-07-10 1921 }
3db863266714a9 Praveen Talari 2026-07-10 1922
fb47423dc7bf43 Praveen Talari 2026-01-08 1923 ret = uart_add_one_port(drv, uport);
fb47423dc7bf43 Praveen Talari 2026-01-08 1924 if (ret)
fb47423dc7bf43 Praveen Talari 2026-01-08 1925 goto error;
fb47423dc7bf43 Praveen Talari 2026-01-08 1926
f3974413cf0209 Akash Asthana 2020-01-06 1927 return 0;
abffd1e6c4f1c9 Praveen Talari 2025-11-10 1928
abffd1e6c4f1c9 Praveen Talari 2025-11-10 1929 error:
abffd1e6c4f1c9 Praveen Talari 2025-11-10 1930 dev_pm_domain_detach_list(port->pd_list);
abffd1e6c4f1c9 Praveen Talari 2025-11-10 1931 return ret;
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1932 }
c4f528795d1add Karthikeyan Ramasubramanian 2018-03-14 1933
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-07-10 16:11 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-10 9:21 [PATCH] serial: qcom-geni: remove .pm callback, use runtime PM in startup/shutdown Praveen Talari
2026-07-10 16:10 ` kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox