@@ -2926,16 +2926,33 @@ intel_sdvo_lvds_init(struct intel_sdvo *intel_sdvo, int device)
2926
2926
return false;
2927
2927
}
2928
2928
2929
+ static u16 intel_sdvo_filter_output_flags (u16 flags )
2930
+ {
2931
+ flags &= SDVO_OUTPUT_MASK ;
2932
+
2933
+ /* SDVO requires XXX1 function may not exist unless it has XXX0 function.*/
2934
+ if (!(flags & SDVO_OUTPUT_TMDS0 ))
2935
+ flags &= ~SDVO_OUTPUT_TMDS1 ;
2936
+
2937
+ if (!(flags & SDVO_OUTPUT_RGB0 ))
2938
+ flags &= ~SDVO_OUTPUT_RGB1 ;
2939
+
2940
+ if (!(flags & SDVO_OUTPUT_LVDS0 ))
2941
+ flags &= ~SDVO_OUTPUT_LVDS1 ;
2942
+
2943
+ return flags ;
2944
+ }
2945
+
2929
2946
static bool
2930
2947
intel_sdvo_output_setup (struct intel_sdvo * intel_sdvo , u16 flags )
2931
2948
{
2932
- /* SDVO requires XXX1 function may not exist unless it has XXX0 function.*/
2949
+ flags = intel_sdvo_filter_output_flags ( flags );
2933
2950
2934
2951
if (flags & SDVO_OUTPUT_TMDS0 )
2935
2952
if (!intel_sdvo_dvi_init (intel_sdvo , 0 ))
2936
2953
return false;
2937
2954
2938
- if (( flags & SDVO_TMDS_MASK ) == SDVO_TMDS_MASK )
2955
+ if (flags & SDVO_OUTPUT_TMDS1 )
2939
2956
if (!intel_sdvo_dvi_init (intel_sdvo , 1 ))
2940
2957
return false;
2941
2958
@@ -2956,19 +2973,19 @@ intel_sdvo_output_setup(struct intel_sdvo *intel_sdvo, u16 flags)
2956
2973
if (!intel_sdvo_analog_init (intel_sdvo , 0 ))
2957
2974
return false;
2958
2975
2959
- if (( flags & SDVO_RGB_MASK ) == SDVO_RGB_MASK )
2976
+ if (flags & SDVO_OUTPUT_RGB1 )
2960
2977
if (!intel_sdvo_analog_init (intel_sdvo , 1 ))
2961
2978
return false;
2962
2979
2963
2980
if (flags & SDVO_OUTPUT_LVDS0 )
2964
2981
if (!intel_sdvo_lvds_init (intel_sdvo , 0 ))
2965
2982
return false;
2966
2983
2967
- if (( flags & SDVO_LVDS_MASK ) == SDVO_LVDS_MASK )
2984
+ if (flags & SDVO_OUTPUT_LVDS1 )
2968
2985
if (!intel_sdvo_lvds_init (intel_sdvo , 1 ))
2969
2986
return false;
2970
2987
2971
- if (( flags & SDVO_OUTPUT_MASK ) == 0 ) {
2988
+ if (flags == 0 ) {
2972
2989
unsigned char bytes [2 ];
2973
2990
2974
2991
intel_sdvo -> controlled_output = 0 ;
0 commit comments