[RFC PATCH 08/13] can: slcan: send the open command to the adapter

From: Dario Binacchi
Date: Tue Jun 07 2022 - 05:49:40 EST


In case the bitrate has been set via ip tool, it sends the open command
("O\r") to the adapter.

Signed-off-by: Dario Binacchi <dario.binacchi@xxxxxxxxxxxxxxxxxxxx>
---

drivers/net/can/slcan.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/net/can/slcan.c b/drivers/net/can/slcan.c
index f1bf32b70c4d..f18097c62222 100644
--- a/drivers/net/can/slcan.c
+++ b/drivers/net/can/slcan.c
@@ -469,8 +469,15 @@ static int slc_open(struct net_device *dev)
* can.bittiming.bitrate is 0, causing open_candev() to fail.
* So let's set to a fake value.
*/
- if (sl->can.bittiming.bitrate == 0)
+ if (sl->can.bittiming.bitrate == 0) {
sl->can.bittiming.bitrate = -1UL;
+ } else {
+ err = slcan_transmit_cmd(sl, "O\r");
+ if (err) {
+ netdev_err(dev, "failed to send open command 'O\\r'\n");
+ return err;
+ }
+ }

err = open_candev(dev);
if (err) {
--
2.32.0