]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
[media] pvrusb2: Handle change of mode before handling change of video standard
authorMike Isely <isely@pobox.com>
Sun, 13 Feb 2011 20:31:55 +0000 (17:31 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 21 Mar 2011 23:32:21 +0000 (20:32 -0300)
pvrusb2: Recognize and handle mode change before dealing with changes
related to the video standard.  Even though the video standard should
only matter when in analog mode, doing this way is technically cleaner
in case there's other stuff that might depend on both.

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/pvrusb2/pvrusb2-hdw.c

index 66ad516bdfd97070380b1592d14be35ea978acc0..55074a89966f9d68784e0414888ef796208f14f4 100644 (file)
@@ -3165,6 +3165,19 @@ static int pvr2_hdw_commit_execute(struct pvr2_hdw *hdw)
        struct pvr2_ctrl *cptr;
        int disruptive_change;
 
+       if (hdw->input_dirty && hdw->state_pathway_ok &&
+           (((hdw->input_val == PVR2_CVAL_INPUT_DTV) ?
+             PVR2_PATHWAY_DIGITAL : PVR2_PATHWAY_ANALOG) !=
+            hdw->pathway_state)) {
+               /* Change of mode being asked for... */
+               hdw->state_pathway_ok = 0;
+               trace_stbit("state_pathway_ok", hdw->state_pathway_ok);
+       }
+       if (!hdw->state_pathway_ok) {
+               /* Can't commit anything until pathway is ok. */
+               return 0;
+       }
+
        /* Handle some required side effects when the video standard is
           changed.... */
        if (hdw->std_dirty) {
@@ -3199,18 +3212,6 @@ static int pvr2_hdw_commit_execute(struct pvr2_hdw *hdw)
                }
        }
 
-       if (hdw->input_dirty && hdw->state_pathway_ok &&
-           (((hdw->input_val == PVR2_CVAL_INPUT_DTV) ?
-             PVR2_PATHWAY_DIGITAL : PVR2_PATHWAY_ANALOG) !=
-            hdw->pathway_state)) {
-               /* Change of mode being asked for... */
-               hdw->state_pathway_ok = 0;
-               trace_stbit("state_pathway_ok",hdw->state_pathway_ok);
-       }
-       if (!hdw->state_pathway_ok) {
-               /* Can't commit anything until pathway is ok. */
-               return 0;
-       }
        /* The broadcast decoder can only scale down, so if
         * res_*_dirty && crop window < output format ==> enlarge crop.
         *