[PATCH 1/1][SRU][OEM-OSP1-B][B][E][F] UBUNTU: SAUCE: platform/x86: dell-uart-backlight: move retry block
AceLan Kao
acelan.kao at canonical.com
Thu Feb 20 01:20:32 UTC 2020
BugLink: https://bugs.launchpad.net/bugs/1863880
move the retry block to include not only read reply, but also write
function, so that the retry re-send the command, too.
Signed-off-by: AceLan Kao <acelan.kao at canonical.com>
---
drivers/platform/x86/dell-uart-backlight.c | 23 +++++++++++-----------
1 file changed, 11 insertions(+), 12 deletions(-)
diff --git a/drivers/platform/x86/dell-uart-backlight.c b/drivers/platform/x86/dell-uart-backlight.c
index bddc4f228bf9..9b2b219f3b8f 100644
--- a/drivers/platform/x86/dell-uart-backlight.c
+++ b/drivers/platform/x86/dell-uart-backlight.c
@@ -320,23 +320,22 @@ static int dell_uart_get_scalar_status(struct dell_uart_backlight *dell_pdata)
int rx_len;
int status = 0, retry = 50;
- dell_uart_dump_cmd(__func__, "tx: ", bl_cmd->cmd, bl_cmd->tx_len);
+ do {
+ dell_uart_dump_cmd(__func__, "tx: ", bl_cmd->cmd, bl_cmd->tx_len);
- if (mutex_lock_killable(&dell_pdata->brightness_mutex) < 0) {
- pr_debug("Failed to get mutex_lock");
- return 0;
- }
+ if (mutex_lock_killable(&dell_pdata->brightness_mutex) < 0) {
+ pr_debug("Failed to get mutex_lock");
+ return 0;
+ }
- dell_uart_write(uart, bl_cmd->cmd, bl_cmd->tx_len);
- do {
+ dell_uart_write(uart, bl_cmd->cmd, bl_cmd->tx_len);
+ msleep(100);
rx_len = dell_uart_read(uart, bl_cmd->ret, bl_cmd->rx_len);
- if (rx_len == 0)
- msleep(100);
- } while (rx_len == 0 && --retry);
- mutex_unlock(&dell_pdata->brightness_mutex);
+ mutex_unlock(&dell_pdata->brightness_mutex);
- dell_uart_dump_cmd(__func__, "rx: ", bl_cmd->ret, rx_len);
+ dell_uart_dump_cmd(__func__, "rx: ", bl_cmd->ret, rx_len);
+ } while (rx_len == 0 && --retry);
if (rx_len == 4)
status = (unsigned int)bl_cmd->ret[2];
--
2.17.1
More information about the kernel-team
mailing list