Revert "[media] lmed04: add missing breaks"
authorMauro Carvalho Chehab <mchehab@osg.samsung.com>
Tue, 25 Nov 2014 17:46:13 +0000 (15:46 -0200)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Wed, 26 Nov 2014 00:16:25 +0000 (22:16 -0200)
According with Malcolm, the missing breaks are intentional.

So, let's revert commit d442b15fb4deb2b5d516e2dae1f569b1d5472399,
add some comments to document it and fix the two smatch warnings:

drivers/media/usb/dvb-usb-v2/lmedm04.c:828 lme_firmware_switch() warn: missing break? reassigning 'st->dvb_usb_lme2510_firmware'
drivers/media/usb/dvb-usb-v2/lmedm04.c:850 lme_firmware_switch() warn: missing break? reassigning 'st->dvb_usb_lme2510_firmware'

using a different strategy to avoid reassign values to
st->dvb_usb_lme2510_firmware.

Acked-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/usb/dvb-usb-v2/lmedm04.c

index 99587418f4f0d6854000fe10eacfb48509536c96..994de53a574bf561cc2a408b969254087dd7e9a9 100644 (file)
@@ -817,21 +817,22 @@ static const char *lme_firmware_switch(struct dvb_usb_device *d, int cold)
        case 0x1122:
                switch (st->dvb_usb_lme2510_firmware) {
                default:
-                       st->dvb_usb_lme2510_firmware = TUNER_S0194;
                case TUNER_S0194:
                        fw_lme = fw_s0194;
                        ret = request_firmware(&fw, fw_lme, &udev->dev);
                        if (ret == 0) {
+                               st->dvb_usb_lme2510_firmware = TUNER_S0194;
                                cold = 0;
                                break;
                        }
-                       st->dvb_usb_lme2510_firmware = TUNER_LG;
-                       break;
+                       /* fall through */
                case TUNER_LG:
                        fw_lme = fw_lg;
                        ret = request_firmware(&fw, fw_lme, &udev->dev);
-                       if (ret == 0)
+                       if (ret == 0) {
+                               st->dvb_usb_lme2510_firmware = TUNER_LG;
                                break;
+                       }
                        st->dvb_usb_lme2510_firmware = TUNER_DEFAULT;
                        break;
                }
@@ -839,27 +840,30 @@ static const char *lme_firmware_switch(struct dvb_usb_device *d, int cold)
        case 0x1120:
                switch (st->dvb_usb_lme2510_firmware) {
                default:
-                       st->dvb_usb_lme2510_firmware = TUNER_S7395;
                case TUNER_S7395:
                        fw_lme = fw_c_s7395;
                        ret = request_firmware(&fw, fw_lme, &udev->dev);
                        if (ret == 0) {
+                               st->dvb_usb_lme2510_firmware = TUNER_S7395;
                                cold = 0;
                                break;
                        }
-                       st->dvb_usb_lme2510_firmware = TUNER_LG;
-                       break;
+                       /* fall through */
                case TUNER_LG:
                        fw_lme = fw_c_lg;
                        ret = request_firmware(&fw, fw_lme, &udev->dev);
-                       if (ret == 0)
+                       if (ret == 0) {
+                               st->dvb_usb_lme2510_firmware = TUNER_LG;
                                break;
-                       st->dvb_usb_lme2510_firmware = TUNER_S0194;
+                       }
+                       /* fall through */
                case TUNER_S0194:
                        fw_lme = fw_c_s0194;
                        ret = request_firmware(&fw, fw_lme, &udev->dev);
-                       if (ret == 0)
+                       if (ret == 0) {
+                               st->dvb_usb_lme2510_firmware = TUNER_S0194;
                                break;
+                       }
                        st->dvb_usb_lme2510_firmware = TUNER_DEFAULT;
                        cold = 0;
                        break;