summaryrefslogtreecommitdiff
path: root/components/drivers
diff options
context:
space:
mode:
authorShell <[email protected]>2024-07-09 13:28:24 +0800
committerGitHub <[email protected]>2024-07-09 13:28:24 +0800
commit3f6960b7f5220b797fd181f8b7f7de356bfdd43f (patch)
tree313b9f16e0ff7d862f145ab369efba2b728fa9b1 /components/drivers
parent4d0b048c97494887e08f6403503c9900f00fe6cd (diff)
[smart/tty] skip configure of rt_serial on tty open (#9152)
Skip configure on open since all configs are copied from the current configuration on device. So we don't bother to set it back to device again. Changes: - test and skip configuration on open() of tty device Signed-off-by: Shell <[email protected]>
Diffstat (limited to 'components/drivers')
-rw-r--r--components/drivers/serial/serial_tty.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/components/drivers/serial/serial_tty.c b/components/drivers/serial/serial_tty.c
index f75123eba2..bbf61f8ae0 100644
--- a/components/drivers/serial/serial_tty.c
+++ b/components/drivers/serial/serial_tty.c
@@ -298,6 +298,16 @@ static int serial_tty_param(struct lwp_tty *tp, struct termios *t)
RT_ASSERT(softc);
serial = softc->parent;
+ if (!tty_opened(tp))
+ {
+ /**
+ * skip configure on open since all configs are copied from the current
+ * configuration on device. So we don't bother to set it back to device
+ * again.
+ */
+ return RT_EOK;
+ }
+
cfsetispeed(t, t->__c_ispeed);
return rt_device_control(&(serial->parent), TCSETS, t);
}