* [Intel-gfx] [PATCH v2 1/3] drm/i915/vbt: Fix backlight parsing for VBT 234+ @ 2020-09-29 22:34 José Roberto de Souza 2020-09-29 22:34 ` [Intel-gfx] [PATCH v2 2/3] drm/i915/vbt: Update the version and expected size of BDB_GENERAL_DEFINITIONS map José Roberto de Souza ` (5 more replies) 0 siblings, 6 replies; 12+ messages in thread From: José Roberto de Souza @ 2020-09-29 22:34 UTC (permalink / raw) To: intel-gfx Child min_brightness is obsolete from VBT 234+, instead the new min_brightness field in the main structure should be used. This new field is 16 bits wide, so backlight_precision_bits is needed to check if value needs to be scaled down but it is only available in VBT 236+ so working around it by using the also new backlight_level in the main struct. v2: - missed that backlight_data->level is also obsolete BSpec: 20149 Signed-off-by: José Roberto de Souza <jose.souza@intel.com> --- drivers/gpu/drm/i915/display/intel_bios.c | 30 +++++++++++++++++-- drivers/gpu/drm/i915/display/intel_vbt_defs.h | 12 ++++++-- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c index 4716484af62d..58e5657a77bb 100644 --- a/drivers/gpu/drm/i915/display/intel_bios.c +++ b/drivers/gpu/drm/i915/display/intel_bios.c @@ -425,6 +425,7 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv, const struct bdb_lfp_backlight_data *backlight_data; const struct lfp_backlight_data_entry *entry; int panel_type = dev_priv->vbt.panel_type; + u16 level; backlight_data = find_section(bdb, BDB_LVDS_BACKLIGHT); if (!backlight_data) @@ -459,14 +460,39 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv, dev_priv->vbt.backlight.pwm_freq_hz = entry->pwm_freq_hz; dev_priv->vbt.backlight.active_low_pwm = entry->active_low_pwm; - dev_priv->vbt.backlight.min_brightness = entry->min_brightness; + + if (bdb->version >= 234) { + bool scale = false; + u16 min_level; + + level = backlight_data->backlight_level[panel_type].level; + min_level = backlight_data->backlight_min_level[panel_type].level; + + if (bdb->version >= 236) + scale = backlight_data->backlight_precision_bits[panel_type] == 16; + else + scale = level > 255; + + if (scale) + min_level = min_level / 255; + + if (min_level > 255) { + drm_warn(&dev_priv->drm, "Backlight min level > 255\n"); + level = 255; + } + dev_priv->vbt.backlight.min_brightness = min_level; + } else { + level = backlight_data->level[panel_type]; + dev_priv->vbt.backlight.min_brightness = entry->min_brightness; + } + drm_dbg_kms(&dev_priv->drm, "VBT backlight PWM modulation frequency %u Hz, " "active %s, min brightness %u, level %u, controller %u\n", dev_priv->vbt.backlight.pwm_freq_hz, dev_priv->vbt.backlight.active_low_pwm ? "low" : "high", dev_priv->vbt.backlight.min_brightness, - backlight_data->level[panel_type], + level, dev_priv->vbt.backlight.controller); } diff --git a/drivers/gpu/drm/i915/display/intel_vbt_defs.h b/drivers/gpu/drm/i915/display/intel_vbt_defs.h index 54bcc6a6947c..b4742c4fde97 100644 --- a/drivers/gpu/drm/i915/display/intel_vbt_defs.h +++ b/drivers/gpu/drm/i915/display/intel_vbt_defs.h @@ -782,7 +782,7 @@ struct lfp_backlight_data_entry { u8 active_low_pwm:1; u8 obsolete1:5; u16 pwm_freq_hz; - u8 min_brightness; + u8 min_brightness; /* Obsolete from 234+ */ u8 obsolete2; u8 obsolete3; } __packed; @@ -792,11 +792,19 @@ struct lfp_backlight_control_method { u8 controller:4; } __packed; +struct lfp_backlight_level { + u32 level : 16; + u32 reserved : 16; +} __packed; + struct bdb_lfp_backlight_data { u8 entry_size; struct lfp_backlight_data_entry data[16]; - u8 level[16]; + u8 level[16]; /* Obsolete from 234+ */ struct lfp_backlight_control_method backlight_control[16]; + struct lfp_backlight_level backlight_level[16]; /* 234+ */ + struct lfp_backlight_level backlight_min_level[16]; /* 234+ */ + u8 backlight_precision_bits[16]; /* 236+ */ } __packed; /* -- 2.28.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Intel-gfx] [PATCH v2 2/3] drm/i915/vbt: Update the version and expected size of BDB_GENERAL_DEFINITIONS map 2020-09-29 22:34 [Intel-gfx] [PATCH v2 1/3] drm/i915/vbt: Fix backlight parsing for VBT 234+ José Roberto de Souza @ 2020-09-29 22:34 ` José Roberto de Souza 2020-10-07 22:49 ` Matt Roper 2020-09-29 22:34 ` [Intel-gfx] [PATCH v2 3/3] drm/i915/vbt: Add VRR VBT toggle José Roberto de Souza ` (4 subsequent siblings) 5 siblings, 1 reply; 12+ messages in thread From: José Roberto de Souza @ 2020-09-29 22:34 UTC (permalink / raw) To: intel-gfx This will remove the "Expected child device config size for VBT version 235 not known" debug message seen in TGL, although this is not fixing anything it good to keep our VBT parser updated. Signed-off-by: José Roberto de Souza <jose.souza@intel.com> --- drivers/gpu/drm/i915/display/intel_bios.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c index 58e5657a77bb..6ce0b848e342 100644 --- a/drivers/gpu/drm/i915/display/intel_bios.c +++ b/drivers/gpu/drm/i915/display/intel_bios.c @@ -1915,7 +1915,7 @@ parse_general_definitions(struct drm_i915_private *dev_priv, expected_size = 37; } else if (bdb->version <= 215) { expected_size = 38; - } else if (bdb->version <= 229) { + } else if (bdb->version <= 237) { expected_size = 39; } else { expected_size = sizeof(*child); -- 2.28.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [PATCH v2 2/3] drm/i915/vbt: Update the version and expected size of BDB_GENERAL_DEFINITIONS map 2020-09-29 22:34 ` [Intel-gfx] [PATCH v2 2/3] drm/i915/vbt: Update the version and expected size of BDB_GENERAL_DEFINITIONS map José Roberto de Souza @ 2020-10-07 22:49 ` Matt Roper 0 siblings, 0 replies; 12+ messages in thread From: Matt Roper @ 2020-10-07 22:49 UTC (permalink / raw) To: José Roberto de Souza; +Cc: intel-gfx On Tue, Sep 29, 2020 at 03:34:18PM -0700, José Roberto de Souza wrote: > This will remove the "Expected child device config size for VBT > version 235 not known" debug message seen in TGL, although this is not > fixing anything it good to keep our VBT parser updated. > > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> Reviewed-by: Matt Roper <matthew.d.roper@intel.com> > --- > drivers/gpu/drm/i915/display/intel_bios.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c > index 58e5657a77bb..6ce0b848e342 100644 > --- a/drivers/gpu/drm/i915/display/intel_bios.c > +++ b/drivers/gpu/drm/i915/display/intel_bios.c > @@ -1915,7 +1915,7 @@ parse_general_definitions(struct drm_i915_private *dev_priv, > expected_size = 37; > } else if (bdb->version <= 215) { > expected_size = 38; > - } else if (bdb->version <= 229) { > + } else if (bdb->version <= 237) { > expected_size = 39; > } else { > expected_size = sizeof(*child); > -- > 2.28.0 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Matt Roper Graphics Software Engineer VTT-OSGC Platform Enablement Intel Corporation (916) 356-2795 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 12+ messages in thread
* [Intel-gfx] [PATCH v2 3/3] drm/i915/vbt: Add VRR VBT toggle 2020-09-29 22:34 [Intel-gfx] [PATCH v2 1/3] drm/i915/vbt: Fix backlight parsing for VBT 234+ José Roberto de Souza 2020-09-29 22:34 ` [Intel-gfx] [PATCH v2 2/3] drm/i915/vbt: Update the version and expected size of BDB_GENERAL_DEFINITIONS map José Roberto de Souza @ 2020-09-29 22:34 ` José Roberto de Souza 2020-10-07 22:53 ` Matt Roper 2020-09-29 23:09 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v2,1/3] drm/i915/vbt: Fix backlight parsing for VBT 234+ Patchwork ` (3 subsequent siblings) 5 siblings, 1 reply; 12+ messages in thread From: José Roberto de Souza @ 2020-09-29 22:34 UTC (permalink / raw) To: intel-gfx This will be used in future but already adding to VBT so we are updated with VBT changes. Signed-off-by: José Roberto de Souza <jose.souza@intel.com> --- drivers/gpu/drm/i915/display/intel_vbt_defs.h | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/i915/display/intel_vbt_defs.h b/drivers/gpu/drm/i915/display/intel_vbt_defs.h index b4742c4fde97..46f3f4804c9e 100644 --- a/drivers/gpu/drm/i915/display/intel_vbt_defs.h +++ b/drivers/gpu/drm/i915/display/intel_vbt_defs.h @@ -835,6 +835,7 @@ struct bdb_lfp_power { u16 lace_enabled_status; struct agressiveness_profile_entry aggressivenes[16]; u16 hobl; /* 232+ */ + u16 vrr_feature_enabled; /* 233+ */ } __packed; /* -- 2.28.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [PATCH v2 3/3] drm/i915/vbt: Add VRR VBT toggle 2020-09-29 22:34 ` [Intel-gfx] [PATCH v2 3/3] drm/i915/vbt: Add VRR VBT toggle José Roberto de Souza @ 2020-10-07 22:53 ` Matt Roper 0 siblings, 0 replies; 12+ messages in thread From: Matt Roper @ 2020-10-07 22:53 UTC (permalink / raw) To: José Roberto de Souza; +Cc: intel-gfx On Tue, Sep 29, 2020 at 03:34:19PM -0700, José Roberto de Souza wrote: > This will be used in future but already adding to VBT so we are > updated with VBT changes. > > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> Reviewed-by: Matt Roper <matthew.d.roper@intel.com> > --- > drivers/gpu/drm/i915/display/intel_vbt_defs.h | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpu/drm/i915/display/intel_vbt_defs.h b/drivers/gpu/drm/i915/display/intel_vbt_defs.h > index b4742c4fde97..46f3f4804c9e 100644 > --- a/drivers/gpu/drm/i915/display/intel_vbt_defs.h > +++ b/drivers/gpu/drm/i915/display/intel_vbt_defs.h > @@ -835,6 +835,7 @@ struct bdb_lfp_power { > u16 lace_enabled_status; > struct agressiveness_profile_entry aggressivenes[16]; > u16 hobl; /* 232+ */ > + u16 vrr_feature_enabled; /* 233+ */ > } __packed; > > /* > -- > 2.28.0 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Matt Roper Graphics Software Engineer VTT-OSGC Platform Enablement Intel Corporation (916) 356-2795 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 12+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v2,1/3] drm/i915/vbt: Fix backlight parsing for VBT 234+ 2020-09-29 22:34 [Intel-gfx] [PATCH v2 1/3] drm/i915/vbt: Fix backlight parsing for VBT 234+ José Roberto de Souza 2020-09-29 22:34 ` [Intel-gfx] [PATCH v2 2/3] drm/i915/vbt: Update the version and expected size of BDB_GENERAL_DEFINITIONS map José Roberto de Souza 2020-09-29 22:34 ` [Intel-gfx] [PATCH v2 3/3] drm/i915/vbt: Add VRR VBT toggle José Roberto de Souza @ 2020-09-29 23:09 ` Patchwork 2020-09-30 13:03 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork ` (2 subsequent siblings) 5 siblings, 0 replies; 12+ messages in thread From: Patchwork @ 2020-09-29 23:09 UTC (permalink / raw) To: José Roberto de Souza; +Cc: intel-gfx [-- Attachment #1.1: Type: text/plain, Size: 4304 bytes --] == Series Details == Series: series starting with [v2,1/3] drm/i915/vbt: Fix backlight parsing for VBT 234+ URL : https://patchwork.freedesktop.org/series/82229/ State : success == Summary == CI Bug Log - changes from CI_DRM_9075 -> Patchwork_18593 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/index.html Known issues ------------ Here are the changes found in Patchwork_18593 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic: - fi-icl-u2: [PASS][1] -> [DMESG-WARN][2] ([i915#1982]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/fi-icl-u2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/fi-icl-u2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html #### Possible fixes #### * igt@kms_busy@basic@flip: - fi-kbl-x1275: [DMESG-WARN][3] ([i915#62] / [i915#92] / [i915#95]) -> [PASS][4] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/fi-kbl-x1275/igt@kms_busy@basic@flip.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/fi-kbl-x1275/igt@kms_busy@basic@flip.html * igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1: - fi-icl-u2: [DMESG-WARN][5] ([i915#1982]) -> [PASS][6] [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1.html #### Warnings #### * igt@kms_flip@basic-flip-vs-wf_vblank@a-dp1: - fi-kbl-x1275: [DMESG-WARN][7] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][8] ([i915#62] / [i915#92]) +1 similar issue [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/fi-kbl-x1275/igt@kms_flip@basic-flip-vs-wf_vblank@a-dp1.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/fi-kbl-x1275/igt@kms_flip@basic-flip-vs-wf_vblank@a-dp1.html * igt@kms_force_connector_basic@prune-stale-modes: - fi-kbl-x1275: [DMESG-WARN][9] ([i915#62] / [i915#92]) -> [DMESG-WARN][10] ([i915#62] / [i915#92] / [i915#95]) +4 similar issues [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/fi-kbl-x1275/igt@kms_force_connector_basic@prune-stale-modes.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/fi-kbl-x1275/igt@kms_force_connector_basic@prune-stale-modes.html * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a: - fi-kbl-x1275: [DMESG-WARN][11] ([i915#1982] / [i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][12] ([i915#62] / [i915#92] / [i915#95]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/fi-kbl-x1275/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/fi-kbl-x1275/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62 [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92 [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95 Participating hosts (46 -> 37) ------------------------------ Missing (9): fi-cml-u2 fi-ilk-m540 fi-tgl-dsi fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus Build changes ------------- * Linux: CI_DRM_9075 -> Patchwork_18593 CI-20190529: 20190529 CI_DRM_9075: fd24361b2b76956b5c056bc430a4c77edecb7744 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_5792: cbaf441899f3b4f36cca5996aa6a69e7399b2dbd @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_18593: b88dce76e2adb69efa0ef313cf18515a15821d21 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == b88dce76e2ad drm/i915/vbt: Add VRR VBT toggle 67fc6dee0c3a drm/i915/vbt: Update the version and expected size of BDB_GENERAL_DEFINITIONS map c041999f76f1 drm/i915/vbt: Fix backlight parsing for VBT 234+ == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/index.html [-- Attachment #1.2: Type: text/html, Size: 6209 bytes --] [-- Attachment #2: Type: text/plain, Size: 160 bytes --] _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 12+ messages in thread
* [Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [v2,1/3] drm/i915/vbt: Fix backlight parsing for VBT 234+ 2020-09-29 22:34 [Intel-gfx] [PATCH v2 1/3] drm/i915/vbt: Fix backlight parsing for VBT 234+ José Roberto de Souza ` (2 preceding siblings ...) 2020-09-29 23:09 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v2,1/3] drm/i915/vbt: Fix backlight parsing for VBT 234+ Patchwork @ 2020-09-30 13:03 ` Patchwork 2020-10-06 9:04 ` [Intel-gfx] [PATCH v2 1/3] " Jani Nikula 2020-10-07 22:45 ` Matt Roper 5 siblings, 0 replies; 12+ messages in thread From: Patchwork @ 2020-09-30 13:03 UTC (permalink / raw) To: Souza, Jose; +Cc: intel-gfx [-- Attachment #1.1: Type: text/plain, Size: 13577 bytes --] == Series Details == Series: series starting with [v2,1/3] drm/i915/vbt: Fix backlight parsing for VBT 234+ URL : https://patchwork.freedesktop.org/series/82229/ State : success == Summary == CI Bug Log - changes from CI_DRM_9075_full -> Patchwork_18593_full ==================================================== Summary ------- **SUCCESS** No regressions found. Known issues ------------ Here are the changes found in Patchwork_18593_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_exec_reloc@basic-many-active@rcs0: - shard-glk: [PASS][1] -> [FAIL][2] ([i915#2389]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-glk4/igt@gem_exec_reloc@basic-many-active@rcs0.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-glk8/igt@gem_exec_reloc@basic-many-active@rcs0.html * igt@gem_huc_copy@huc-copy: - shard-tglb: [PASS][3] -> [SKIP][4] ([i915#2190]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-tglb8/igt@gem_huc_copy@huc-copy.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-tglb6/igt@gem_huc_copy@huc-copy.html * igt@kms_cursor_crc@pipe-a-cursor-128x128-sliding: - shard-snb: [PASS][5] -> [SKIP][6] ([fdo#109271]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-snb6/igt@kms_cursor_crc@pipe-a-cursor-128x128-sliding.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-snb7/igt@kms_cursor_crc@pipe-a-cursor-128x128-sliding.html * igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1: - shard-skl: [PASS][7] -> [FAIL][8] ([i915#2122]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-skl5/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-skl7/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html * igt@kms_flip@flip-vs-suspend@c-dp1: - shard-kbl: [PASS][9] -> [DMESG-WARN][10] ([i915#180]) +9 similar issues [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-kbl4/igt@kms_flip@flip-vs-suspend@c-dp1.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-kbl7/igt@kms_flip@flip-vs-suspend@c-dp1.html * igt@kms_flip_tiling@flip-y-tiled: - shard-apl: [PASS][11] -> [DMESG-WARN][12] ([i915#1635] / [i915#1982]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-apl3/igt@kms_flip_tiling@flip-y-tiled.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-apl8/igt@kms_flip_tiling@flip-y-tiled.html * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-gtt: - shard-kbl: [PASS][13] -> [DMESG-WARN][14] ([i915#1982]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-kbl2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-gtt.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-kbl6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-move: - shard-tglb: [PASS][15] -> [DMESG-WARN][16] ([i915#1982]) +3 similar issues [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-tglb7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-move.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-tglb5/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-move.html * igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-render: - shard-skl: [PASS][17] -> [DMESG-WARN][18] ([i915#1982]) +12 similar issues [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-skl5/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-render.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-skl7/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-shrfb-draw-render.html * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes: - shard-skl: [PASS][19] -> [INCOMPLETE][20] ([i915#198]) +1 similar issue [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-skl8/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-skl9/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-c-planes.html * igt@kms_plane@plane-position-covered-pipe-b-planes: - shard-kbl: [PASS][21] -> [DMESG-WARN][22] ([i915#165] / [i915#78]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-kbl6/igt@kms_plane@plane-position-covered-pipe-b-planes.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-kbl2/igt@kms_plane@plane-position-covered-pipe-b-planes.html * igt@kms_psr2_su@page_flip: - shard-iclb: [PASS][23] -> [SKIP][24] ([fdo#109642] / [fdo#111068]) [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-iclb2/igt@kms_psr2_su@page_flip.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-iclb6/igt@kms_psr2_su@page_flip.html * igt@kms_psr@psr2_primary_render: - shard-iclb: [PASS][25] -> [SKIP][26] ([fdo#109441]) [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-iclb2/igt@kms_psr@psr2_primary_render.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-iclb5/igt@kms_psr@psr2_primary_render.html * igt@perf@polling: - shard-skl: [PASS][27] -> [FAIL][28] ([i915#1542]) [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-skl7/igt@perf@polling.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-skl4/igt@perf@polling.html #### Possible fixes #### * {igt@gem_ctx_persistence@heartbeat-close}: - shard-tglb: [FAIL][29] ([i915#2519]) -> [PASS][30] [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-tglb2/igt@gem_ctx_persistence@heartbeat-close.html [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-tglb2/igt@gem_ctx_persistence@heartbeat-close.html * {igt@gem_ctx_persistence@heartbeat-stop}: - shard-kbl: [FAIL][31] ([i915#2520]) -> [PASS][32] +1 similar issue [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-kbl7/igt@gem_ctx_persistence@heartbeat-stop.html [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-kbl1/igt@gem_ctx_persistence@heartbeat-stop.html * igt@gem_exec_whisper@basic-forked-all: - shard-skl: [DMESG-WARN][33] ([i915#1982]) -> [PASS][34] +10 similar issues [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-skl8/igt@gem_exec_whisper@basic-forked-all.html [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-skl4/igt@gem_exec_whisper@basic-forked-all.html * igt@i915_selftest@live@gt_heartbeat: - shard-skl: [DMESG-FAIL][35] ([i915#541]) -> [PASS][36] [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-skl8/igt@i915_selftest@live@gt_heartbeat.html [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-skl4/igt@i915_selftest@live@gt_heartbeat.html * igt@i915_suspend@debugfs-reader: - shard-skl: [INCOMPLETE][37] ([i915#198]) -> [PASS][38] [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-skl6/igt@i915_suspend@debugfs-reader.html [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-skl7/igt@i915_suspend@debugfs-reader.html * {igt@kms_async_flips@async-flip-with-page-flip-events}: - shard-glk: [FAIL][39] ([i915#2521]) -> [PASS][40] [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-glk7/igt@kms_async_flips@async-flip-with-page-flip-events.html [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-glk1/igt@kms_async_flips@async-flip-with-page-flip-events.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions: - shard-skl: [FAIL][41] ([i915#2346]) -> [PASS][42] [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-skl5/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-skl2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html * igt@kms_flip@flip-vs-expired-vblank-interruptible@b-dp1: - shard-apl: [FAIL][43] ([i915#1635] / [i915#79]) -> [PASS][44] [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-apl6/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-dp1.html [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-apl2/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-dp1.html * igt@kms_flip@flip-vs-suspend-interruptible@a-dp1: - shard-kbl: [DMESG-WARN][45] ([i915#180]) -> [PASS][46] +7 similar issues [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-kbl7/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-kbl3/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-blt: - shard-tglb: [DMESG-WARN][47] ([i915#1982]) -> [PASS][48] [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-tglb3/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-blt.html [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-tglb5/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-blt.html * igt@kms_plane_alpha_blend@pipe-b-constant-alpha-min: - shard-skl: [FAIL][49] ([fdo#108145] / [i915#265]) -> [PASS][50] [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-skl5/igt@kms_plane_alpha_blend@pipe-b-constant-alpha-min.html [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-skl7/igt@kms_plane_alpha_blend@pipe-b-constant-alpha-min.html * igt@kms_psr2_su@frontbuffer: - shard-iclb: [SKIP][51] ([fdo#109642] / [fdo#111068]) -> [PASS][52] [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-iclb4/igt@kms_psr2_su@frontbuffer.html [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-iclb2/igt@kms_psr2_su@frontbuffer.html * igt@kms_psr@psr2_no_drrs: - shard-iclb: [SKIP][53] ([fdo#109441]) -> [PASS][54] +1 similar issue [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-iclb3/igt@kms_psr@psr2_no_drrs.html [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-iclb2/igt@kms_psr@psr2_no_drrs.html #### Warnings #### * igt@kms_setmode@basic: - shard-skl: [DMESG-FAIL][55] ([i915#1982] / [i915#31]) -> [FAIL][56] ([i915#31]) [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9075/shard-skl7/igt@kms_setmode@basic.html [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/shard-skl2/igt@kms_setmode@basic.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441 [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642 [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068 [i915#1542]: https://gitlab.freedesktop.org/drm/intel/issues/1542 [i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635 [i915#165]: https://gitlab.freedesktop.org/drm/intel/issues/165 [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180 [i915#198]: https://gitlab.freedesktop.org/drm/intel/issues/198 [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 [i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346 [i915#2389]: https://gitlab.freedesktop.org/drm/intel/issues/2389 [i915#2469]: https://gitlab.freedesktop.org/drm/intel/issues/2469 [i915#2476]: https://gitlab.freedesktop.org/drm/intel/issues/2476 [i915#2519]: https://gitlab.freedesktop.org/drm/intel/issues/2519 [i915#2520]: https://gitlab.freedesktop.org/drm/intel/issues/2520 [i915#2521]: https://gitlab.freedesktop.org/drm/intel/issues/2521 [i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265 [i915#31]: https://gitlab.freedesktop.org/drm/intel/issues/31 [i915#541]: https://gitlab.freedesktop.org/drm/intel/issues/541 [i915#78]: https://gitlab.freedesktop.org/drm/intel/issues/78 [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79 Participating hosts (11 -> 11) ------------------------------ No changes in participating hosts Build changes ------------- * Linux: CI_DRM_9075 -> Patchwork_18593 CI-20190529: 20190529 CI_DRM_9075: fd24361b2b76956b5c056bc430a4c77edecb7744 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_5792: cbaf441899f3b4f36cca5996aa6a69e7399b2dbd @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_18593: b88dce76e2adb69efa0ef313cf18515a15821d21 @ git://anongit.freedesktop.org/gfx-ci/linux piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_18593/index.html [-- Attachment #1.2: Type: text/html, Size: 15590 bytes --] [-- Attachment #2: Type: text/plain, Size: 160 bytes --] _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [PATCH v2 1/3] drm/i915/vbt: Fix backlight parsing for VBT 234+ 2020-09-29 22:34 [Intel-gfx] [PATCH v2 1/3] drm/i915/vbt: Fix backlight parsing for VBT 234+ José Roberto de Souza ` (3 preceding siblings ...) 2020-09-30 13:03 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork @ 2020-10-06 9:04 ` Jani Nikula 2020-10-06 17:10 ` Souza, Jose 2020-10-07 22:45 ` Matt Roper 5 siblings, 1 reply; 12+ messages in thread From: Jani Nikula @ 2020-10-06 9:04 UTC (permalink / raw) To: José Roberto de Souza, intel-gfx On Tue, 29 Sep 2020, José Roberto de Souza <jose.souza@intel.com> wrote: > Child min_brightness is obsolete from VBT 234+, instead the new > min_brightness field in the main structure should be used. > > This new field is 16 bits wide, so backlight_precision_bits is needed > to check if value needs to be scaled down but it is only available in > VBT 236+ so working around it by using the also new backlight_level > in the main struct. > > v2: > - missed that backlight_data->level is also obsolete > > BSpec: 20149 > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> > --- > drivers/gpu/drm/i915/display/intel_bios.c | 30 +++++++++++++++++-- > drivers/gpu/drm/i915/display/intel_vbt_defs.h | 12 ++++++-- > 2 files changed, 38 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c > index 4716484af62d..58e5657a77bb 100644 > --- a/drivers/gpu/drm/i915/display/intel_bios.c > +++ b/drivers/gpu/drm/i915/display/intel_bios.c > @@ -425,6 +425,7 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv, > const struct bdb_lfp_backlight_data *backlight_data; > const struct lfp_backlight_data_entry *entry; > int panel_type = dev_priv->vbt.panel_type; > + u16 level; > > backlight_data = find_section(bdb, BDB_LVDS_BACKLIGHT); > if (!backlight_data) > @@ -459,14 +460,39 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv, > > dev_priv->vbt.backlight.pwm_freq_hz = entry->pwm_freq_hz; > dev_priv->vbt.backlight.active_low_pwm = entry->active_low_pwm; > - dev_priv->vbt.backlight.min_brightness = entry->min_brightness; > + > + if (bdb->version >= 234) { > + bool scale = false; > + u16 min_level; > + > + level = backlight_data->backlight_level[panel_type].level; > + min_level = backlight_data->backlight_min_level[panel_type].level; > + > + if (bdb->version >= 236) > + scale = backlight_data->backlight_precision_bits[panel_type] == 16; > + else > + scale = level > 255; > + > + if (scale) > + min_level = min_level / 255; > + > + if (min_level > 255) { > + drm_warn(&dev_priv->drm, "Backlight min level > 255\n"); > + level = 255; > + } > + dev_priv->vbt.backlight.min_brightness = min_level; > + } else { > + level = backlight_data->level[panel_type]; > + dev_priv->vbt.backlight.min_brightness = entry->min_brightness; > + } > + > drm_dbg_kms(&dev_priv->drm, > "VBT backlight PWM modulation frequency %u Hz, " > "active %s, min brightness %u, level %u, controller %u\n", > dev_priv->vbt.backlight.pwm_freq_hz, > dev_priv->vbt.backlight.active_low_pwm ? "low" : "high", > dev_priv->vbt.backlight.min_brightness, > - backlight_data->level[panel_type], > + level, > dev_priv->vbt.backlight.controller); > } > > diff --git a/drivers/gpu/drm/i915/display/intel_vbt_defs.h b/drivers/gpu/drm/i915/display/intel_vbt_defs.h > index 54bcc6a6947c..b4742c4fde97 100644 > --- a/drivers/gpu/drm/i915/display/intel_vbt_defs.h > +++ b/drivers/gpu/drm/i915/display/intel_vbt_defs.h > @@ -782,7 +782,7 @@ struct lfp_backlight_data_entry { > u8 active_low_pwm:1; > u8 obsolete1:5; > u16 pwm_freq_hz; > - u8 min_brightness; > + u8 min_brightness; /* Obsolete from 234+ */ > u8 obsolete2; > u8 obsolete3; > } __packed; > @@ -792,11 +792,19 @@ struct lfp_backlight_control_method { > u8 controller:4; > } __packed; > > +struct lfp_backlight_level { > + u32 level : 16; > + u32 reserved : 16; That looks like two u16's to me. ;) BR, Jani. > +} __packed; > + > struct bdb_lfp_backlight_data { > u8 entry_size; > struct lfp_backlight_data_entry data[16]; > - u8 level[16]; > + u8 level[16]; /* Obsolete from 234+ */ > struct lfp_backlight_control_method backlight_control[16]; > + struct lfp_backlight_level backlight_level[16]; /* 234+ */ > + struct lfp_backlight_level backlight_min_level[16]; /* 234+ */ > + u8 backlight_precision_bits[16]; /* 236+ */ > } __packed; > > /* -- Jani Nikula, Intel Open Source Graphics Center _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [PATCH v2 1/3] drm/i915/vbt: Fix backlight parsing for VBT 234+ 2020-10-06 9:04 ` [Intel-gfx] [PATCH v2 1/3] " Jani Nikula @ 2020-10-06 17:10 ` Souza, Jose 0 siblings, 0 replies; 12+ messages in thread From: Souza, Jose @ 2020-10-06 17:10 UTC (permalink / raw) To: intel-gfx, jani.nikula On Tue, 2020-10-06 at 12:04 +0300, Jani Nikula wrote: > On Tue, 29 Sep 2020, José Roberto de Souza <jose.souza@intel.com> wrote: > > Child min_brightness is obsolete from VBT 234+, instead the new > > min_brightness field in the main structure should be used. > > > > This new field is 16 bits wide, so backlight_precision_bits is needed > > to check if value needs to be scaled down but it is only available in > > VBT 236+ so working around it by using the also new backlight_level > > in the main struct. > > > > v2: > > - missed that backlight_data->level is also obsolete > > > > BSpec: 20149 > > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> > > --- > > drivers/gpu/drm/i915/display/intel_bios.c | 30 +++++++++++++++++-- > > drivers/gpu/drm/i915/display/intel_vbt_defs.h | 12 ++++++-- > > 2 files changed, 38 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c > > index 4716484af62d..58e5657a77bb 100644 > > --- a/drivers/gpu/drm/i915/display/intel_bios.c > > +++ b/drivers/gpu/drm/i915/display/intel_bios.c > > @@ -425,6 +425,7 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv, > > const struct bdb_lfp_backlight_data *backlight_data; > > const struct lfp_backlight_data_entry *entry; > > int panel_type = dev_priv->vbt.panel_type; > > + u16 level; > > > > > > > > > > backlight_data = find_section(bdb, BDB_LVDS_BACKLIGHT); > > if (!backlight_data) > > @@ -459,14 +460,39 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv, > > > > > > > > > > dev_priv->vbt.backlight.pwm_freq_hz = entry->pwm_freq_hz; > > dev_priv->vbt.backlight.active_low_pwm = entry->active_low_pwm; > > - dev_priv->vbt.backlight.min_brightness = entry->min_brightness; > > + > > + if (bdb->version >= 234) { > > + bool scale = false; > > + u16 min_level; > > + > > + level = backlight_data->backlight_level[panel_type].level; > > + min_level = backlight_data->backlight_min_level[panel_type].level; > > + > > + if (bdb->version >= 236) > > + scale = backlight_data->backlight_precision_bits[panel_type] == 16; > > + else > > + scale = level > 255; > > + > > + if (scale) > > + min_level = min_level / 255; > > + > > + if (min_level > 255) { > > + drm_warn(&dev_priv->drm, "Backlight min level > 255\n"); > > + level = 255; > > + } > > + dev_priv->vbt.backlight.min_brightness = min_level; > > + } else { > > + level = backlight_data->level[panel_type]; > > + dev_priv->vbt.backlight.min_brightness = entry->min_brightness; > > + } > > + > > drm_dbg_kms(&dev_priv->drm, > > "VBT backlight PWM modulation frequency %u Hz, " > > "active %s, min brightness %u, level %u, controller %u\n", > > dev_priv->vbt.backlight.pwm_freq_hz, > > dev_priv->vbt.backlight.active_low_pwm ? "low" : "high", > > dev_priv->vbt.backlight.min_brightness, > > - backlight_data->level[panel_type], > > + level, > > dev_priv->vbt.backlight.controller); > > } > > > > > > > > > > diff --git a/drivers/gpu/drm/i915/display/intel_vbt_defs.h b/drivers/gpu/drm/i915/display/intel_vbt_defs.h > > index 54bcc6a6947c..b4742c4fde97 100644 > > --- a/drivers/gpu/drm/i915/display/intel_vbt_defs.h > > +++ b/drivers/gpu/drm/i915/display/intel_vbt_defs.h > > @@ -782,7 +782,7 @@ struct lfp_backlight_data_entry { > > u8 active_low_pwm:1; > > u8 obsolete1:5; > > u16 pwm_freq_hz; > > - u8 min_brightness; > > + u8 min_brightness; /* Obsolete from 234+ */ > > u8 obsolete2; > > u8 obsolete3; > > } __packed; > > @@ -792,11 +792,19 @@ struct lfp_backlight_control_method { > > u8 controller:4; > > } __packed; > > > > > > > > > > +struct lfp_backlight_level { > > + u32 level : 16; > > + u32 reserved : 16; > > That looks like two u16's to me. ;) Okay, anything else to be changed in the next version? > > BR, > Jani. > > > > +} __packed; > > + > > struct bdb_lfp_backlight_data { > > u8 entry_size; > > struct lfp_backlight_data_entry data[16]; > > - u8 level[16]; > > + u8 level[16]; /* Obsolete from 234+ */ > > struct lfp_backlight_control_method backlight_control[16]; > > + struct lfp_backlight_level backlight_level[16]; /* 234+ */ > > + struct lfp_backlight_level backlight_min_level[16]; /* 234+ */ > > + u8 backlight_precision_bits[16]; /* 236+ */ > > } __packed; > > > > > > > > > > /* > _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [PATCH v2 1/3] drm/i915/vbt: Fix backlight parsing for VBT 234+ 2020-09-29 22:34 [Intel-gfx] [PATCH v2 1/3] drm/i915/vbt: Fix backlight parsing for VBT 234+ José Roberto de Souza ` (4 preceding siblings ...) 2020-10-06 9:04 ` [Intel-gfx] [PATCH v2 1/3] " Jani Nikula @ 2020-10-07 22:45 ` Matt Roper 2020-10-08 0:33 ` Souza, Jose 5 siblings, 1 reply; 12+ messages in thread From: Matt Roper @ 2020-10-07 22:45 UTC (permalink / raw) To: José Roberto de Souza; +Cc: intel-gfx On Tue, Sep 29, 2020 at 03:34:17PM -0700, José Roberto de Souza wrote: > Child min_brightness is obsolete from VBT 234+, instead the new > min_brightness field in the main structure should be used. > > This new field is 16 bits wide, so backlight_precision_bits is needed > to check if value needs to be scaled down but it is only available in > VBT 236+ so working around it by using the also new backlight_level > in the main struct. > > v2: > - missed that backlight_data->level is also obsolete > > BSpec: 20149 > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> > --- > drivers/gpu/drm/i915/display/intel_bios.c | 30 +++++++++++++++++-- > drivers/gpu/drm/i915/display/intel_vbt_defs.h | 12 ++++++-- > 2 files changed, 38 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c > index 4716484af62d..58e5657a77bb 100644 > --- a/drivers/gpu/drm/i915/display/intel_bios.c > +++ b/drivers/gpu/drm/i915/display/intel_bios.c > @@ -425,6 +425,7 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv, > const struct bdb_lfp_backlight_data *backlight_data; > const struct lfp_backlight_data_entry *entry; > int panel_type = dev_priv->vbt.panel_type; > + u16 level; > > backlight_data = find_section(bdb, BDB_LVDS_BACKLIGHT); > if (!backlight_data) > @@ -459,14 +460,39 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv, > > dev_priv->vbt.backlight.pwm_freq_hz = entry->pwm_freq_hz; > dev_priv->vbt.backlight.active_low_pwm = entry->active_low_pwm; > - dev_priv->vbt.backlight.min_brightness = entry->min_brightness; > + > + if (bdb->version >= 234) { > + bool scale = false; > + u16 min_level; > + > + level = backlight_data->backlight_level[panel_type].level; > + min_level = backlight_data->backlight_min_level[panel_type].level; > + > + if (bdb->version >= 236) > + scale = backlight_data->backlight_precision_bits[panel_type] == 16; > + else > + scale = level > 255; I'm not sure I follow the 'else' arm here. On version 234/235 we'd have 16-bit level values. In the absence of any other precision information wouldn't we assume that all the bits are used and that we have a full 16-bit precision? If the level is < 256 (or for that matter if we have any value where level & 0xFF is non-zero) wouldn't that definitely mean that there are 16-bits of precision since otherwise those low bits would have to be 0's? > + > + if (scale) > + min_level = min_level / 255; > + > + if (min_level > 255) { > + drm_warn(&dev_priv->drm, "Backlight min level > 255\n"); > + level = 255; > + } > + dev_priv->vbt.backlight.min_brightness = min_level; > + } else { > + level = backlight_data->level[panel_type]; > + dev_priv->vbt.backlight.min_brightness = entry->min_brightness; > + } > + > drm_dbg_kms(&dev_priv->drm, > "VBT backlight PWM modulation frequency %u Hz, " > "active %s, min brightness %u, level %u, controller %u\n", > dev_priv->vbt.backlight.pwm_freq_hz, > dev_priv->vbt.backlight.active_low_pwm ? "low" : "high", > dev_priv->vbt.backlight.min_brightness, > - backlight_data->level[panel_type], > + level, > dev_priv->vbt.backlight.controller); > } > > diff --git a/drivers/gpu/drm/i915/display/intel_vbt_defs.h b/drivers/gpu/drm/i915/display/intel_vbt_defs.h > index 54bcc6a6947c..b4742c4fde97 100644 > --- a/drivers/gpu/drm/i915/display/intel_vbt_defs.h > +++ b/drivers/gpu/drm/i915/display/intel_vbt_defs.h > @@ -782,7 +782,7 @@ struct lfp_backlight_data_entry { > u8 active_low_pwm:1; > u8 obsolete1:5; > u16 pwm_freq_hz; > - u8 min_brightness; > + u8 min_brightness; /* Obsolete from 234+ */ > u8 obsolete2; > u8 obsolete3; > } __packed; > @@ -792,11 +792,19 @@ struct lfp_backlight_control_method { > u8 controller:4; > } __packed; > > +struct lfp_backlight_level { > + u32 level : 16; > + u32 reserved : 16; > +} __packed; > + > struct bdb_lfp_backlight_data { > u8 entry_size; > struct lfp_backlight_data_entry data[16]; > - u8 level[16]; > + u8 level[16]; /* Obsolete from 234+ */ > struct lfp_backlight_control_method backlight_control[16]; > + struct lfp_backlight_level backlight_level[16]; /* 234+ */ > + struct lfp_backlight_level backlight_min_level[16]; /* 234+ */ Technically these two are described as "brightness level" rather than "backlight level" in the spec. Matching the spec's terminology might make this slightly easier to follow when people look at it in the future, but up to you. Matt > + u8 backlight_precision_bits[16]; /* 236+ */ > } __packed; > > /* > -- > 2.28.0 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Matt Roper Graphics Software Engineer VTT-OSGC Platform Enablement Intel Corporation (916) 356-2795 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [PATCH v2 1/3] drm/i915/vbt: Fix backlight parsing for VBT 234+ 2020-10-07 22:45 ` Matt Roper @ 2020-10-08 0:33 ` Souza, Jose 2020-10-08 3:28 ` Matt Roper 0 siblings, 1 reply; 12+ messages in thread From: Souza, Jose @ 2020-10-08 0:33 UTC (permalink / raw) To: Roper, Matthew D; +Cc: intel-gfx On Wed, 2020-10-07 at 15:45 -0700, Matt Roper wrote: > On Tue, Sep 29, 2020 at 03:34:17PM -0700, José Roberto de Souza wrote: > > Child min_brightness is obsolete from VBT 234+, instead the new > > min_brightness field in the main structure should be used. > > > > This new field is 16 bits wide, so backlight_precision_bits is needed > > to check if value needs to be scaled down but it is only available in > > VBT 236+ so working around it by using the also new backlight_level > > in the main struct. > > > > v2: > > - missed that backlight_data->level is also obsolete > > > > BSpec: 20149 > > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> > > --- > > drivers/gpu/drm/i915/display/intel_bios.c | 30 +++++++++++++++++-- > > drivers/gpu/drm/i915/display/intel_vbt_defs.h | 12 ++++++-- > > 2 files changed, 38 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c > > index 4716484af62d..58e5657a77bb 100644 > > --- a/drivers/gpu/drm/i915/display/intel_bios.c > > +++ b/drivers/gpu/drm/i915/display/intel_bios.c > > @@ -425,6 +425,7 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv, > > const struct bdb_lfp_backlight_data *backlight_data; > > const struct lfp_backlight_data_entry *entry; > > int panel_type = dev_priv->vbt.panel_type; > > + u16 level; > > > > > > > > > > backlight_data = find_section(bdb, BDB_LVDS_BACKLIGHT); > > if (!backlight_data) > > @@ -459,14 +460,39 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv, > > > > > > > > > > dev_priv->vbt.backlight.pwm_freq_hz = entry->pwm_freq_hz; > > dev_priv->vbt.backlight.active_low_pwm = entry->active_low_pwm; > > - dev_priv->vbt.backlight.min_brightness = entry->min_brightness; > > + > > + if (bdb->version >= 234) { > > + bool scale = false; > > + u16 min_level; > > + > > + level = backlight_data->backlight_level[panel_type].level; > > + min_level = backlight_data->backlight_min_level[panel_type].level; > > + > > + if (bdb->version >= 236) > > + scale = backlight_data->backlight_precision_bits[panel_type] == 16; > > + else > > + scale = level > 255; > > I'm not sure I follow the 'else' arm here. On version 234/235 we'd have > 16-bit level values. In the absence of any other precision information > wouldn't we assume that all the bits are used and that we have a full > 16-bit precision? If the level is < 256 (or for that matter if we have > any value where level & 0xFF is non-zero) wouldn't that definitely mean > that there are 16-bits of precision since otherwise those low bits would > have to be 0's? My understand is that in version 234 or 235 all brightness levels could be set as 16bits or 8bits wide by vendors and it did not had a clear way for driver to know what it is, then version 236 came fixing it. So working around it by using the regular brightness level(supposed the one that vendor wants the panel to have by default) and we can suppose that it will be higher than the minimum so for 16bits of precision it will be higher than 255. Anyways I doubt that any production product will have VBT version 234 or 235. > > > + > > + if (scale) > > + min_level = min_level / 255; > > + > > + if (min_level > 255) { > > + drm_warn(&dev_priv->drm, "Backlight min level > 255\n"); > > + level = 255; > > + } > > + dev_priv->vbt.backlight.min_brightness = min_level; > > + } else { > > + level = backlight_data->level[panel_type]; > > + dev_priv->vbt.backlight.min_brightness = entry->min_brightness; > > + } > > + > > drm_dbg_kms(&dev_priv->drm, > > "VBT backlight PWM modulation frequency %u Hz, " > > "active %s, min brightness %u, level %u, controller %u\n", > > dev_priv->vbt.backlight.pwm_freq_hz, > > dev_priv->vbt.backlight.active_low_pwm ? "low" : "high", > > dev_priv->vbt.backlight.min_brightness, > > - backlight_data->level[panel_type], > > + level, > > dev_priv->vbt.backlight.controller); > > } > > > > > > > > > > > > > > > > > > diff --git a/drivers/gpu/drm/i915/display/intel_vbt_defs.h b/drivers/gpu/drm/i915/display/intel_vbt_defs.h > > index 54bcc6a6947c..b4742c4fde97 100644 > > --- a/drivers/gpu/drm/i915/display/intel_vbt_defs.h > > +++ b/drivers/gpu/drm/i915/display/intel_vbt_defs.h > > @@ -782,7 +782,7 @@ struct lfp_backlight_data_entry { > > u8 active_low_pwm:1; > > u8 obsolete1:5; > > u16 pwm_freq_hz; > > - u8 min_brightness; > > + u8 min_brightness; /* Obsolete from 234+ */ > > u8 obsolete2; > > u8 obsolete3; > > } __packed; > > @@ -792,11 +792,19 @@ struct lfp_backlight_control_method { > > u8 controller:4; > > } __packed; > > > > > > > > > > > > > > > > > > +struct lfp_backlight_level { > > + u32 level : 16; > > + u32 reserved : 16; > > +} __packed; > > + > > struct bdb_lfp_backlight_data { > > u8 entry_size; > > struct lfp_backlight_data_entry data[16]; > > - u8 level[16]; > > + u8 level[16]; /* Obsolete from 234+ */ > > struct lfp_backlight_control_method backlight_control[16]; > > + struct lfp_backlight_level backlight_level[16]; /* 234+ */ > > + struct lfp_backlight_level backlight_min_level[16]; /* 234+ */ > > Technically these two are described as "brightness level" rather than > "backlight level" in the spec. Matching the spec's terminology might > make this slightly easier to follow when people look at it in the > future, but up to you. Okay will rename those, take a look in the comment above so we have an agreement for the the next version. thanks > > > Matt > > > + u8 backlight_precision_bits[16]; /* 236+ */ > > } __packed; > > > > > > > > > > > > > > > > > > /* > > -- > > 2.28.0 > > > > _______________________________________________ > > Intel-gfx mailing list > > Intel-gfx@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx > _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Intel-gfx] [PATCH v2 1/3] drm/i915/vbt: Fix backlight parsing for VBT 234+ 2020-10-08 0:33 ` Souza, Jose @ 2020-10-08 3:28 ` Matt Roper 0 siblings, 0 replies; 12+ messages in thread From: Matt Roper @ 2020-10-08 3:28 UTC (permalink / raw) To: Souza, Jose; +Cc: intel-gfx On Wed, Oct 07, 2020 at 05:33:48PM -0700, Souza, Jose wrote: > On Wed, 2020-10-07 at 15:45 -0700, Matt Roper wrote: > > On Tue, Sep 29, 2020 at 03:34:17PM -0700, José Roberto de Souza wrote: > > > Child min_brightness is obsolete from VBT 234+, instead the new > > > min_brightness field in the main structure should be used. > > > > > > This new field is 16 bits wide, so backlight_precision_bits is needed > > > to check if value needs to be scaled down but it is only available in > > > VBT 236+ so working around it by using the also new backlight_level > > > in the main struct. > > > > > > v2: > > > - missed that backlight_data->level is also obsolete > > > > > > BSpec: 20149 > > > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> > > > --- > > > drivers/gpu/drm/i915/display/intel_bios.c | 30 +++++++++++++++++-- > > > drivers/gpu/drm/i915/display/intel_vbt_defs.h | 12 ++++++-- > > > 2 files changed, 38 insertions(+), 4 deletions(-) > > > > > > diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c > > > index 4716484af62d..58e5657a77bb 100644 > > > --- a/drivers/gpu/drm/i915/display/intel_bios.c > > > +++ b/drivers/gpu/drm/i915/display/intel_bios.c > > > @@ -425,6 +425,7 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv, > > > const struct bdb_lfp_backlight_data *backlight_data; > > > const struct lfp_backlight_data_entry *entry; > > > int panel_type = dev_priv->vbt.panel_type; > > > + u16 level; > > > > > > > > > > > > > > > backlight_data = find_section(bdb, BDB_LVDS_BACKLIGHT); > > > if (!backlight_data) > > > @@ -459,14 +460,39 @@ parse_lfp_backlight(struct drm_i915_private *dev_priv, > > > > > > > > > > > > > > > dev_priv->vbt.backlight.pwm_freq_hz = entry->pwm_freq_hz; > > > dev_priv->vbt.backlight.active_low_pwm = entry->active_low_pwm; > > > - dev_priv->vbt.backlight.min_brightness = entry->min_brightness; > > > + > > > + if (bdb->version >= 234) { > > > + bool scale = false; > > > + u16 min_level; > > > + > > > + level = backlight_data->backlight_level[panel_type].level; > > > + min_level = backlight_data->backlight_min_level[panel_type].level; > > > + > > > + if (bdb->version >= 236) > > > + scale = backlight_data->backlight_precision_bits[panel_type] == 16; > > > + else > > > + scale = level > 255; > > > > I'm not sure I follow the 'else' arm here. On version 234/235 we'd have > > 16-bit level values. In the absence of any other precision information > > wouldn't we assume that all the bits are used and that we have a full > > 16-bit precision? If the level is < 256 (or for that matter if we have > > any value where level & 0xFF is non-zero) wouldn't that definitely mean > > that there are 16-bits of precision since otherwise those low bits would > > have to be 0's? > > My understand is that in version 234 or 235 all brightness levels could be set as 16bits or 8bits wide by vendors and it did not had a clear way for > driver to know what it is, then version 236 came fixing it. > > So working around it by using the regular brightness level(supposed the one that vendor wants the panel to have by default) and we can suppose that it > will be higher than the minimum so for 16bits of precision it will be higher than 255. > Anyways I doubt that any production product will have VBT version 234 or 235. Okay. I guess since it was described with the term "precision" in the spec that made me think of it as "only the highest 8 bits in use" rather than an actual 8-bit range (i.e., just lower bits), but I guess there wouldn't really be a need to specify it if that were the case. So I think your logic here is probably correct. With the s/backlight/brightness/ rename and the u32 -> u16 simplification suggested by Jani, Reviewed-by: Matt Roper <matthew.d.roper@intel.com> > > > > > > + > > > + if (scale) > > > + min_level = min_level / 255; > > > + > > > + if (min_level > 255) { > > > + drm_warn(&dev_priv->drm, "Backlight min level > 255\n"); > > > + level = 255; > > > + } > > > + dev_priv->vbt.backlight.min_brightness = min_level; > > > + } else { > > > + level = backlight_data->level[panel_type]; > > > + dev_priv->vbt.backlight.min_brightness = entry->min_brightness; > > > + } > > > + > > > drm_dbg_kms(&dev_priv->drm, > > > "VBT backlight PWM modulation frequency %u Hz, " > > > "active %s, min brightness %u, level %u, controller %u\n", > > > dev_priv->vbt.backlight.pwm_freq_hz, > > > dev_priv->vbt.backlight.active_low_pwm ? "low" : "high", > > > dev_priv->vbt.backlight.min_brightness, > > > - backlight_data->level[panel_type], > > > + level, > > > dev_priv->vbt.backlight.controller); > > > } > > > > > > > > > > > > > > > > > > > > > > > > > > > diff --git a/drivers/gpu/drm/i915/display/intel_vbt_defs.h b/drivers/gpu/drm/i915/display/intel_vbt_defs.h > > > index 54bcc6a6947c..b4742c4fde97 100644 > > > --- a/drivers/gpu/drm/i915/display/intel_vbt_defs.h > > > +++ b/drivers/gpu/drm/i915/display/intel_vbt_defs.h > > > @@ -782,7 +782,7 @@ struct lfp_backlight_data_entry { > > > u8 active_low_pwm:1; > > > u8 obsolete1:5; > > > u16 pwm_freq_hz; > > > - u8 min_brightness; > > > + u8 min_brightness; /* Obsolete from 234+ */ > > > u8 obsolete2; > > > u8 obsolete3; > > > } __packed; > > > @@ -792,11 +792,19 @@ struct lfp_backlight_control_method { > > > u8 controller:4; > > > } __packed; > > > > > > > > > > > > > > > > > > > > > > > > > > > +struct lfp_backlight_level { > > > + u32 level : 16; > > > + u32 reserved : 16; > > > +} __packed; > > > + > > > struct bdb_lfp_backlight_data { > > > u8 entry_size; > > > struct lfp_backlight_data_entry data[16]; > > > - u8 level[16]; > > > + u8 level[16]; /* Obsolete from 234+ */ > > > struct lfp_backlight_control_method backlight_control[16]; > > > + struct lfp_backlight_level backlight_level[16]; /* 234+ */ > > > + struct lfp_backlight_level backlight_min_level[16]; /* 234+ */ > > > > Technically these two are described as "brightness level" rather than > > "backlight level" in the spec. Matching the spec's terminology might > > make this slightly easier to follow when people look at it in the > > future, but up to you. > > Okay will rename those, take a look in the comment above so we have an agreement for the the next version. > > thanks > > > > > > > Matt > > > > > + u8 backlight_precision_bits[16]; /* 236+ */ > > > } __packed; > > > > > > > > > > > > > > > > > > > > > > > > > > > /* > > > -- > > > 2.28.0 > > > > > > _______________________________________________ > > > Intel-gfx mailing list > > > Intel-gfx@lists.freedesktop.org > > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx > > > -- Matt Roper Graphics Software Engineer VTT-OSGC Platform Enablement Intel Corporation (916) 356-2795 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2020-10-08 3:28 UTC | newest] Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-09-29 22:34 [Intel-gfx] [PATCH v2 1/3] drm/i915/vbt: Fix backlight parsing for VBT 234+ José Roberto de Souza 2020-09-29 22:34 ` [Intel-gfx] [PATCH v2 2/3] drm/i915/vbt: Update the version and expected size of BDB_GENERAL_DEFINITIONS map José Roberto de Souza 2020-10-07 22:49 ` Matt Roper 2020-09-29 22:34 ` [Intel-gfx] [PATCH v2 3/3] drm/i915/vbt: Add VRR VBT toggle José Roberto de Souza 2020-10-07 22:53 ` Matt Roper 2020-09-29 23:09 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v2,1/3] drm/i915/vbt: Fix backlight parsing for VBT 234+ Patchwork 2020-09-30 13:03 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork 2020-10-06 9:04 ` [Intel-gfx] [PATCH v2 1/3] " Jani Nikula 2020-10-06 17:10 ` Souza, Jose 2020-10-07 22:45 ` Matt Roper 2020-10-08 0:33 ` Souza, Jose 2020-10-08 3:28 ` Matt Roper
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.