can: gs_usb: gs_can_open(): sort checks for ctrlmode
authorMarc Kleine-Budde <mkl@pengutronix.de>
Thu, 29 Sep 2022 08:01:22 +0000 (10:01 +0200)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Thu, 20 Oct 2022 09:58:57 +0000 (11:58 +0200)
Sort the checks for dev->can.ctrlmode by values of CAN_CTRLMODE_*, so
that it's clear where to add new checks.

While there, remove the comment that the Atmel UC3C hardware doesn't
support One Shot Mode. The One Shot mode is only available and to be
activated by the user, if the device specifies the feature bit
GS_CAN_FEATURE_ONE_SHOT.

Link: https://lore.kernel.org/all/20221019221016.1659260-3-mkl@pengutronix.de
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/usb/gs_usb.c

index aa6c84b..5dad0eb 100644 (file)
@@ -843,8 +843,6 @@ static int gs_can_open(struct net_device *netdev)
 
        ctrlmode = dev->can.ctrlmode;
        if (ctrlmode & CAN_CTRLMODE_FD) {
-               flags |= GS_CAN_MODE_FD;
-
                if (dev->feature & GS_CAN_FEATURE_REQ_USB_QUIRK_LPC546XX)
                        dev->hf_size_tx = struct_size(hf, canfd_quirk, 1);
                else
@@ -915,14 +913,14 @@ static int gs_can_open(struct net_device *netdev)
        if (ctrlmode & CAN_CTRLMODE_LISTENONLY)
                flags |= GS_CAN_MODE_LISTEN_ONLY;
 
-       /* Controller is not allowed to retry TX
-        * this mode is unavailable on atmels uc3c hardware
-        */
+       if (ctrlmode & CAN_CTRLMODE_3_SAMPLES)
+               flags |= GS_CAN_MODE_TRIPLE_SAMPLE;
+
        if (ctrlmode & CAN_CTRLMODE_ONE_SHOT)
                flags |= GS_CAN_MODE_ONE_SHOT;
 
-       if (ctrlmode & CAN_CTRLMODE_3_SAMPLES)
-               flags |= GS_CAN_MODE_TRIPLE_SAMPLE;
+       if (ctrlmode & CAN_CTRLMODE_FD)
+               flags |= GS_CAN_MODE_FD;
 
        /* if hardware supports timestamps, enable it */
        if (dev->feature & GS_CAN_FEATURE_HW_TIMESTAMP)