@@ -584,9 +584,37 @@ static int intel_dp_aux_vesa_setup_backlight(struct intel_connector *connector,
584
584
u8 current_mode ;
585
585
int ret ;
586
586
587
- if (panel -> backlight .edp .vesa .luminance_control_support ) {
587
+ ret = drm_edp_backlight_init (& intel_dp -> aux , & panel -> backlight .edp .vesa .info ,
588
+ luminance_range -> max_luminance ,
589
+ panel -> vbt .backlight .pwm_freq_hz ,
590
+ intel_dp -> edp_dpcd , & current_level , & current_mode ,
591
+ false);
592
+ if (ret < 0 )
593
+ return ret ;
594
+
595
+ drm_dbg_kms (display -> drm ,
596
+ "[CONNECTOR:%d:%s] AUX VESA backlight enable is controlled through %s\n" ,
597
+ connector -> base .base .id , connector -> base .name ,
598
+ dpcd_vs_pwm_str (panel -> backlight .edp .vesa .info .aux_enable ));
599
+ drm_dbg_kms (display -> drm ,
600
+ "[CONNECTOR:%d:%s] AUX VESA backlight level is controlled through %s\n" ,
601
+ connector -> base .base .id , connector -> base .name ,
602
+ dpcd_vs_pwm_str (panel -> backlight .edp .vesa .info .aux_set ));
603
+
604
+ if (!panel -> backlight .edp .vesa .info .aux_set ||
605
+ !panel -> backlight .edp .vesa .info .aux_enable ) {
606
+ ret = panel -> backlight .pwm_funcs -> setup (connector , pipe );
607
+ if (ret < 0 ) {
608
+ drm_err (display -> drm ,
609
+ "[CONNECTOR:%d:%s] Failed to setup PWM backlight controls for eDP backlight: %d\n" ,
610
+ connector -> base .base .id , connector -> base .name , ret );
611
+ return ret ;
612
+ }
613
+ }
614
+
615
+ if (panel -> backlight .edp .vesa .info .luminance_set ) {
588
616
if (luminance_range -> max_luminance ) {
589
- panel -> backlight .max = luminance_range -> max_luminance ;
617
+ panel -> backlight .max = panel -> backlight . edp . vesa . info . max ;
590
618
panel -> backlight .min = luminance_range -> min_luminance ;
591
619
} else {
592
620
panel -> backlight .max = 512 ;
@@ -597,56 +625,26 @@ static int intel_dp_aux_vesa_setup_backlight(struct intel_connector *connector,
597
625
drm_dbg_kms (display -> drm ,
598
626
"[CONNECTOR:%d:%s] AUX VESA Nits backlight level is controlled through DPCD\n" ,
599
627
connector -> base .base .id , connector -> base .name );
600
- } else {
601
- ret = drm_edp_backlight_init (& intel_dp -> aux , & panel -> backlight .edp .vesa .info ,
602
- luminance_range -> max_luminance ,
603
- panel -> vbt .backlight .pwm_freq_hz ,
604
- intel_dp -> edp_dpcd , & current_level , & current_mode ,
605
- false);
606
- if (ret < 0 )
607
- return ret ;
608
-
609
- drm_dbg_kms (display -> drm ,
610
- "[CONNECTOR:%d:%s] AUX VESA backlight enable is controlled through %s\n" ,
611
- connector -> base .base .id , connector -> base .name ,
612
- dpcd_vs_pwm_str (panel -> backlight .edp .vesa .info .aux_enable ));
613
- drm_dbg_kms (display -> drm ,
614
- "[CONNECTOR:%d:%s] AUX VESA backlight level is controlled through %s\n" ,
615
- connector -> base .base .id , connector -> base .name ,
616
- dpcd_vs_pwm_str (panel -> backlight .edp .vesa .info .aux_set ));
617
-
618
- if (!panel -> backlight .edp .vesa .info .aux_set ||
619
- !panel -> backlight .edp .vesa .info .aux_enable ) {
620
- ret = panel -> backlight .pwm_funcs -> setup (connector , pipe );
621
- if (ret < 0 ) {
622
- drm_err (display -> drm ,
623
- "[CONNECTOR:%d:%s] Failed to setup PWM backlight controls for eDP backlight: %d\n" ,
624
- connector -> base .base .id , connector -> base .name , ret );
625
- return ret ;
626
- }
628
+ } else if (panel -> backlight .edp .vesa .info .aux_set ) {
629
+ panel -> backlight .max = panel -> backlight .edp .vesa .info .max ;
630
+ panel -> backlight .min = 0 ;
631
+ if (current_mode == DP_EDP_BACKLIGHT_CONTROL_MODE_DPCD ) {
632
+ panel -> backlight .level = current_level ;
633
+ panel -> backlight .enabled = panel -> backlight .level != 0 ;
634
+ } else {
635
+ panel -> backlight .level = panel -> backlight .max ;
636
+ panel -> backlight .enabled = false;
627
637
}
628
-
629
- if (panel -> backlight .edp .vesa .info .aux_set ) {
630
- panel -> backlight .max = panel -> backlight .edp .vesa .info .max ;
631
- panel -> backlight .min = 0 ;
632
- if (current_mode == DP_EDP_BACKLIGHT_CONTROL_MODE_DPCD ) {
633
- panel -> backlight .level = current_level ;
634
- panel -> backlight .enabled = panel -> backlight .level != 0 ;
635
- } else {
636
- panel -> backlight .level = panel -> backlight .max ;
637
- panel -> backlight .enabled = false;
638
- }
638
+ } else {
639
+ panel -> backlight .max = panel -> backlight .pwm_level_max ;
640
+ panel -> backlight .min = panel -> backlight .pwm_level_min ;
641
+ if (current_mode == DP_EDP_BACKLIGHT_CONTROL_MODE_PWM ) {
642
+ panel -> backlight .level =
643
+ panel -> backlight .pwm_funcs -> get (connector , pipe );
644
+ panel -> backlight .enabled = panel -> backlight .pwm_enabled ;
639
645
} else {
640
- panel -> backlight .max = panel -> backlight .pwm_level_max ;
641
- panel -> backlight .min = panel -> backlight .pwm_level_min ;
642
- if (current_mode == DP_EDP_BACKLIGHT_CONTROL_MODE_PWM ) {
643
- panel -> backlight .level =
644
- panel -> backlight .pwm_funcs -> get (connector , pipe );
645
- panel -> backlight .enabled = panel -> backlight .pwm_enabled ;
646
- } else {
647
- panel -> backlight .level = panel -> backlight .max ;
648
- panel -> backlight .enabled = false;
649
- }
646
+ panel -> backlight .level = panel -> backlight .max ;
647
+ panel -> backlight .enabled = false;
650
648
}
651
649
}
652
650
0 commit comments