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