* [PATCH 1/2] drm/edid: Don't look for CEA data blocks in CEA ext block rev < 3
@ 2019-09-02 13:15 Ville Syrjala
2019-09-02 13:15 ` [PATCH 2/2] drm/edid: Have cea_db_offsets() zero start/end when the data block collection isn't found Ville Syrjala
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Ville Syrjala @ 2019-09-02 13:15 UTC (permalink / raw)
To: dri-devel; +Cc: intel-gfx, Jean Delvare
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
CEA ext block revisions 1 and 2 do not contain the data block
collection. Instead that section of the extension block is
marked as reserved for 8 byte timing descriptors. Revision 3
changed it to contain the CEA data block collection instead.
Most places that iterate the data blocks already check for
revision >= 3, but drm_detect_hdmi_monitor() and
drm_detect_monitor_audio() do not. So in theory when encountering
rev 1 or 2 CEA extension block they could end up misinterpreting
whatever data is in the reserved section as CEA data blocks.
Let's have cea_db_offsets() do the revision check so that the
callers don't even have worry about it.
Cc: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/drm_edid.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 82a4ceed3fcf..7b3072fc550b 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -3690,6 +3690,9 @@ cea_revision(const u8 *cea)
static int
cea_db_offsets(const u8 *cea, int *start, int *end)
{
+ if (cea_revision(cea) < 3)
+ return -ENOTSUPP;
+
/* DisplayID CTA extension blocks and top-level CEA EDID
* block header definitions differ in the following bytes:
* 1) Byte 2 of the header specifies length differently,
--
2.21.0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH 2/2] drm/edid: Have cea_db_offsets() zero start/end when the data block collection isn't found 2019-09-02 13:15 [PATCH 1/2] drm/edid: Don't look for CEA data blocks in CEA ext block rev < 3 Ville Syrjala @ 2019-09-02 13:15 ` Ville Syrjala 2019-09-10 9:46 ` Jean Delvare 2019-09-02 14:42 ` ✓ Fi.CI.BAT: success for series starting with [1/2] drm/edid: Don't look for CEA data blocks in CEA ext block rev < 3 Patchwork ` (2 subsequent siblings) 3 siblings, 1 reply; 8+ messages in thread From: Ville Syrjala @ 2019-09-02 13:15 UTC (permalink / raw) To: dri-devel; +Cc: intel-gfx, Jean Delvare From: Ville Syrjälä <ville.syrjala@linux.intel.com> Let's make cea_db_offsets() a bit more convenient to use by setting the start/end offsets to zero whenever the data block collection isn't present. This makes it safe for the caller to blindly iterate the data blocks even if there are none. Cc: Jean Delvare <jdelvare@suse.de> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/drm_edid.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index 7b3072fc550b..e5905dc764c1 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c @@ -3690,6 +3690,9 @@ cea_revision(const u8 *cea) static int cea_db_offsets(const u8 *cea, int *start, int *end) { + *start = 0; + *end = 0; + if (cea_revision(cea) < 3) return -ENOTSUPP; @@ -4116,10 +4119,7 @@ static void drm_edid_to_eld(struct drm_connector *connector, struct edid *edid) if (cea_revision(cea) >= 3) { int i, start, end; - if (cea_db_offsets(cea, &start, &end)) { - start = 0; - end = 0; - } + cea_db_offsets(cea, &start, &end); for_each_cea_db(cea, i, start, end) { db = &cea[i]; -- 2.21.0 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] drm/edid: Have cea_db_offsets() zero start/end when the data block collection isn't found 2019-09-02 13:15 ` [PATCH 2/2] drm/edid: Have cea_db_offsets() zero start/end when the data block collection isn't found Ville Syrjala @ 2019-09-10 9:46 ` Jean Delvare 2019-09-10 9:48 ` Ville Syrjälä 0 siblings, 1 reply; 8+ messages in thread From: Jean Delvare @ 2019-09-10 9:46 UTC (permalink / raw) To: Ville Syrjala; +Cc: intel-gfx, dri-devel Hi Ville, On Mon, 2 Sep 2019 16:15:46 +0300, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Let's make cea_db_offsets() a bit more convenient to use by > setting the start/end offsets to zero whenever the data block > collection isn't present. This makes it safe for the caller > to blindly iterate the data blocks even if there are none. > > Cc: Jean Delvare <jdelvare@suse.de> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > --- > drivers/gpu/drm/drm_edid.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c > index 7b3072fc550b..e5905dc764c1 100644 > --- a/drivers/gpu/drm/drm_edid.c > +++ b/drivers/gpu/drm/drm_edid.c > @@ -3690,6 +3690,9 @@ cea_revision(const u8 *cea) > static int > cea_db_offsets(const u8 *cea, int *start, int *end) > { > + *start = 0; > + *end = 0; > + > if (cea_revision(cea) < 3) > return -ENOTSUPP; > > @@ -4116,10 +4119,7 @@ static void drm_edid_to_eld(struct drm_connector *connector, struct edid *edid) > if (cea_revision(cea) >= 3) { > int i, start, end; > > - if (cea_db_offsets(cea, &start, &end)) { > - start = 0; > - end = 0; > - } > + cea_db_offsets(cea, &start, &end); > > for_each_cea_db(cea, i, start, end) { > db = &cea[i]; Not sure if that's really needed. As it stands there's only one function which wants to continue after cea_db_offsets() fails, all others just bail out at that point. Now that cea_db_offsets() checks for revision >= 3, the construct above could simply become: int i, start, end; if (cea_db_offsets(cea, &start, &end) == 0) { for_each_cea_db(cea, i, start, end) { db = &cea[i]; which is IMHO more elegant and does not require zeroing start and end in cea_db_offsets(). -- Jean Delvare SUSE L3 Support _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] drm/edid: Have cea_db_offsets() zero start/end when the data block collection isn't found 2019-09-10 9:46 ` Jean Delvare @ 2019-09-10 9:48 ` Ville Syrjälä 2019-09-10 10:08 ` Jean Delvare 0 siblings, 1 reply; 8+ messages in thread From: Ville Syrjälä @ 2019-09-10 9:48 UTC (permalink / raw) To: Jean Delvare; +Cc: intel-gfx, dri-devel On Tue, Sep 10, 2019 at 11:46:20AM +0200, Jean Delvare wrote: > Hi Ville, > > On Mon, 2 Sep 2019 16:15:46 +0300, Ville Syrjala wrote: > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > > Let's make cea_db_offsets() a bit more convenient to use by > > setting the start/end offsets to zero whenever the data block > > collection isn't present. This makes it safe for the caller > > to blindly iterate the data blocks even if there are none. > > > > Cc: Jean Delvare <jdelvare@suse.de> > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > > --- > > drivers/gpu/drm/drm_edid.c | 8 ++++---- > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c > > index 7b3072fc550b..e5905dc764c1 100644 > > --- a/drivers/gpu/drm/drm_edid.c > > +++ b/drivers/gpu/drm/drm_edid.c > > @@ -3690,6 +3690,9 @@ cea_revision(const u8 *cea) > > static int > > cea_db_offsets(const u8 *cea, int *start, int *end) > > { > > + *start = 0; > > + *end = 0; > > + > > if (cea_revision(cea) < 3) > > return -ENOTSUPP; > > > > @@ -4116,10 +4119,7 @@ static void drm_edid_to_eld(struct drm_connector *connector, struct edid *edid) > > if (cea_revision(cea) >= 3) { > > int i, start, end; > > > > - if (cea_db_offsets(cea, &start, &end)) { > > - start = 0; > > - end = 0; > > - } > > + cea_db_offsets(cea, &start, &end); > > > > for_each_cea_db(cea, i, start, end) { > > db = &cea[i]; > > Not sure if that's really needed. As it stands there's only one > function which wants to continue after cea_db_offsets() fails, all > others just bail out at that point. Now that cea_db_offsets() checks > for revision >= 3, the construct above could simply become: > > int i, start, end; > > if (cea_db_offsets(cea, &start, &end) == 0) { > for_each_cea_db(cea, i, start, end) { > db = &cea[i]; > > which is IMHO more elegant and does not require zeroing start and end > in cea_db_offsets(). I dislike indentation. Also could perhaps even move the cea_db_offsets() into the for_each_cea_db() macro so that the caller doesn't have to care about these mundane details at all. -- Ville Syrjälä Intel _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] drm/edid: Have cea_db_offsets() zero start/end when the data block collection isn't found 2019-09-10 9:48 ` Ville Syrjälä @ 2019-09-10 10:08 ` Jean Delvare 0 siblings, 0 replies; 8+ messages in thread From: Jean Delvare @ 2019-09-10 10:08 UTC (permalink / raw) To: Ville Syrjälä; +Cc: intel-gfx, dri-devel On Tue, 10 Sep 2019 12:48:42 +0300, Ville Syrjälä wrote: > On Tue, Sep 10, 2019 at 11:46:20AM +0200, Jean Delvare wrote: > > Hi Ville, > > > > On Mon, 2 Sep 2019 16:15:46 +0300, Ville Syrjala wrote: > > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > > > > Let's make cea_db_offsets() a bit more convenient to use by > > > setting the start/end offsets to zero whenever the data block > > > collection isn't present. This makes it safe for the caller > > > to blindly iterate the data blocks even if there are none. > > > > > > Cc: Jean Delvare <jdelvare@suse.de> > > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > --- > > > drivers/gpu/drm/drm_edid.c | 8 ++++---- > > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > > > diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c > > > index 7b3072fc550b..e5905dc764c1 100644 > > > --- a/drivers/gpu/drm/drm_edid.c > > > +++ b/drivers/gpu/drm/drm_edid.c > > > @@ -3690,6 +3690,9 @@ cea_revision(const u8 *cea) > > > static int > > > cea_db_offsets(const u8 *cea, int *start, int *end) > > > { > > > + *start = 0; > > > + *end = 0; > > > + > > > if (cea_revision(cea) < 3) > > > return -ENOTSUPP; > > > > > > @@ -4116,10 +4119,7 @@ static void drm_edid_to_eld(struct drm_connector *connector, struct edid *edid) > > > if (cea_revision(cea) >= 3) { > > > int i, start, end; > > > > > > - if (cea_db_offsets(cea, &start, &end)) { > > > - start = 0; > > > - end = 0; > > > - } > > > + cea_db_offsets(cea, &start, &end); > > > > > > for_each_cea_db(cea, i, start, end) { > > > db = &cea[i]; > > > > Not sure if that's really needed. As it stands there's only one > > function which wants to continue after cea_db_offsets() fails, all > > others just bail out at that point. Now that cea_db_offsets() checks > > for revision >= 3, the construct above could simply become: > > > > int i, start, end; > > > > if (cea_db_offsets(cea, &start, &end) == 0) { > > for_each_cea_db(cea, i, start, end) { > > db = &cea[i]; > > > > which is IMHO more elegant and does not require zeroing start and end > > in cea_db_offsets(). > > I dislike indentation. It would be the same as currently, so it's not that bad. But well I'm not maintaining that piece of code so it's not my call anyway. > Also could perhaps even move the cea_db_offsets() > into the for_each_cea_db() macro so that the caller doesn't have to care > about these mundane details at all. If the macro stays readable, why not. -- Jean Delvare SUSE L3 Support _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 8+ messages in thread
* ✓ Fi.CI.BAT: success for series starting with [1/2] drm/edid: Don't look for CEA data blocks in CEA ext block rev < 3 2019-09-02 13:15 [PATCH 1/2] drm/edid: Don't look for CEA data blocks in CEA ext block rev < 3 Ville Syrjala 2019-09-02 13:15 ` [PATCH 2/2] drm/edid: Have cea_db_offsets() zero start/end when the data block collection isn't found Ville Syrjala @ 2019-09-02 14:42 ` Patchwork 2019-09-02 16:02 ` ✓ Fi.CI.IGT: " Patchwork 2019-09-10 9:40 ` [PATCH 1/2] " Jean Delvare 3 siblings, 0 replies; 8+ messages in thread From: Patchwork @ 2019-09-02 14:42 UTC (permalink / raw) To: Ville Syrjälä; +Cc: intel-gfx == Series Details == Series: series starting with [1/2] drm/edid: Don't look for CEA data blocks in CEA ext block rev < 3 URL : https://patchwork.freedesktop.org/series/66131/ State : success == Summary == CI Bug Log - changes from CI_DRM_6820 -> Patchwork_14257 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/ Known issues ------------ Here are the changes found in Patchwork_14257 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@i915_selftest@live_hangcheck: - fi-icl-u2: [PASS][1] -> [INCOMPLETE][2] ([fdo#107713] / [fdo#108569]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/fi-icl-u2/igt@i915_selftest@live_hangcheck.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/fi-icl-u2/igt@i915_selftest@live_hangcheck.html * igt@kms_chamelium@dp-crc-fast: - fi-cml-u2: [PASS][3] -> [FAIL][4] ([fdo#109483]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/fi-cml-u2/igt@kms_chamelium@dp-crc-fast.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/fi-cml-u2/igt@kms_chamelium@dp-crc-fast.html #### Possible fixes #### * igt@gem_basic@create-close: - fi-icl-u3: [DMESG-WARN][5] ([fdo#107724]) -> [PASS][6] [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/fi-icl-u3/igt@gem_basic@create-close.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/fi-icl-u3/igt@gem_basic@create-close.html * igt@gem_close_race@basic-threads: - fi-bxt-dsi: [INCOMPLETE][7] ([fdo#103927]) -> [PASS][8] [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/fi-bxt-dsi/igt@gem_close_race@basic-threads.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/fi-bxt-dsi/igt@gem_close_race@basic-threads.html * igt@i915_module_load@reload: - fi-icl-u3: [DMESG-WARN][9] ([fdo#107724] / [fdo#111214]) -> [PASS][10] [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/fi-icl-u3/igt@i915_module_load@reload.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/fi-icl-u3/igt@i915_module_load@reload.html * igt@i915_selftest@live_execlists: - fi-skl-gvtdvm: [DMESG-FAIL][11] ([fdo#111108]) -> [PASS][12] [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/fi-skl-gvtdvm/igt@i915_selftest@live_execlists.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/fi-skl-gvtdvm/igt@i915_selftest@live_execlists.html * igt@kms_frontbuffer_tracking@basic: - fi-icl-u3: [FAIL][13] ([fdo#103167]) -> [PASS][14] [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/fi-icl-u3/igt@kms_frontbuffer_tracking@basic.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/fi-icl-u3/igt@kms_frontbuffer_tracking@basic.html #### Warnings #### * igt@kms_chamelium@hdmi-hpd-fast: - fi-icl-u2: [FAIL][15] ([fdo#111407]) -> [FAIL][16] ([fdo#109483]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/fi-icl-u2/igt@kms_chamelium@hdmi-hpd-fast.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/fi-icl-u2/igt@kms_chamelium@hdmi-hpd-fast.html [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167 [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927 [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713 [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724 [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569 [fdo#109483]: https://bugs.freedesktop.org/show_bug.cgi?id=109483 [fdo#111108]: https://bugs.freedesktop.org/show_bug.cgi?id=111108 [fdo#111214]: https://bugs.freedesktop.org/show_bug.cgi?id=111214 [fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407 Participating hosts (54 -> 45) ------------------------------ Missing (9): fi-ilk-m540 fi-hsw-4200u fi-skl-guc fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-icl-y fi-byt-clapper fi-bdw-samus Build changes ------------- * CI: CI-20190529 -> None * Linux: CI_DRM_6820 -> Patchwork_14257 CI-20190529: 20190529 CI_DRM_6820: 2c16f62dc38ed97ab0056219f09d878c9e1c0355 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_5162: e62ea305fdba2a9cd0dadfa527b54529cb0d1438 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_14257: 1905dca746611ec865b8f99cd6407d815c3cb341 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 1905dca74661 drm/edid: Have cea_db_offsets() zero start/end when the data block collection isn't found ae9f56115d1d drm/edid: Don't look for CEA data blocks in CEA ext block rev < 3 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/ _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 8+ messages in thread
* ✓ Fi.CI.IGT: success for series starting with [1/2] drm/edid: Don't look for CEA data blocks in CEA ext block rev < 3 2019-09-02 13:15 [PATCH 1/2] drm/edid: Don't look for CEA data blocks in CEA ext block rev < 3 Ville Syrjala 2019-09-02 13:15 ` [PATCH 2/2] drm/edid: Have cea_db_offsets() zero start/end when the data block collection isn't found Ville Syrjala 2019-09-02 14:42 ` ✓ Fi.CI.BAT: success for series starting with [1/2] drm/edid: Don't look for CEA data blocks in CEA ext block rev < 3 Patchwork @ 2019-09-02 16:02 ` Patchwork 2019-09-10 9:40 ` [PATCH 1/2] " Jean Delvare 3 siblings, 0 replies; 8+ messages in thread From: Patchwork @ 2019-09-02 16:02 UTC (permalink / raw) To: Ville Syrjälä; +Cc: intel-gfx == Series Details == Series: series starting with [1/2] drm/edid: Don't look for CEA data blocks in CEA ext block rev < 3 URL : https://patchwork.freedesktop.org/series/66131/ State : success == Summary == CI Bug Log - changes from CI_DRM_6820_full -> Patchwork_14257_full ==================================================== Summary ------- **SUCCESS** No regressions found. Known issues ------------ Here are the changes found in Patchwork_14257_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_exec_schedule@wide-bsd: - shard-iclb: [PASS][1] -> [SKIP][2] ([fdo#111325]) +3 similar issues [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb8/igt@gem_exec_schedule@wide-bsd.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-iclb2/igt@gem_exec_schedule@wide-bsd.html * igt@gem_tiled_swapping@non-threaded: - shard-snb: [PASS][3] -> [DMESG-WARN][4] ([fdo#108686]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-snb5/igt@gem_tiled_swapping@non-threaded.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-snb1/igt@gem_tiled_swapping@non-threaded.html * igt@gem_workarounds@suspend-resume-context: - shard-apl: [PASS][5] -> [DMESG-WARN][6] ([fdo#108566]) +7 similar issues [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-apl7/igt@gem_workarounds@suspend-resume-context.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-apl4/igt@gem_workarounds@suspend-resume-context.html * igt@i915_pm_rc6_residency@rc6-accuracy: - shard-kbl: [PASS][7] -> [SKIP][8] ([fdo#109271]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-kbl1/igt@i915_pm_rc6_residency@rc6-accuracy.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-kbl2/igt@i915_pm_rc6_residency@rc6-accuracy.html * igt@i915_pm_rps@reset: - shard-apl: [PASS][9] -> [FAIL][10] ([fdo#102250]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-apl4/igt@i915_pm_rps@reset.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-apl2/igt@i915_pm_rps@reset.html * igt@kms_atomic_transition@1x-modeset-transitions: - shard-iclb: [PASS][11] -> [INCOMPLETE][12] ([fdo#107713]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb3/igt@kms_atomic_transition@1x-modeset-transitions.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-iclb7/igt@kms_atomic_transition@1x-modeset-transitions.html * igt@kms_cursor_legacy@cursora-vs-flipa-atomic: - shard-skl: [PASS][13] -> [DMESG-WARN][14] ([fdo#106107]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-skl4/igt@kms_cursor_legacy@cursora-vs-flipa-atomic.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-skl7/igt@kms_cursor_legacy@cursora-vs-flipa-atomic.html * igt@kms_flip@dpms-vs-vblank-race-interruptible: - shard-glk: [PASS][15] -> [FAIL][16] ([fdo#103060]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-glk8/igt@kms_flip@dpms-vs-vblank-race-interruptible.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-glk8/igt@kms_flip@dpms-vs-vblank-race-interruptible.html * igt@kms_flip@flip-vs-suspend: - shard-skl: [PASS][17] -> [INCOMPLETE][18] ([fdo#109507]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-skl7/igt@kms_flip@flip-vs-suspend.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-skl4/igt@kms_flip@flip-vs-suspend.html * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-pwrite: - shard-iclb: [PASS][19] -> [FAIL][20] ([fdo#103167]) +2 similar issues [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb4/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-pwrite.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-iclb1/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-pwrite.html * igt@kms_psr@psr2_cursor_mmap_cpu: - shard-iclb: [PASS][21] -> [SKIP][22] ([fdo#109441]) +2 similar issues [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb2/igt@kms_psr@psr2_cursor_mmap_cpu.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-iclb4/igt@kms_psr@psr2_cursor_mmap_cpu.html * igt@prime_vgem@fence-wait-bsd2: - shard-iclb: [PASS][23] -> [SKIP][24] ([fdo#109276]) +14 similar issues [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb2/igt@prime_vgem@fence-wait-bsd2.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-iclb7/igt@prime_vgem@fence-wait-bsd2.html #### Possible fixes #### * igt@gem_ctx_isolation@rcs0-s3: - shard-apl: [DMESG-WARN][25] ([fdo#108566]) -> [PASS][26] +3 similar issues [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-apl5/igt@gem_ctx_isolation@rcs0-s3.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-apl3/igt@gem_ctx_isolation@rcs0-s3.html * igt@gem_exec_balancer@smoke: - shard-iclb: [SKIP][27] ([fdo#110854]) -> [PASS][28] [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb7/igt@gem_exec_balancer@smoke.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-iclb2/igt@gem_exec_balancer@smoke.html * igt@gem_exec_schedule@preempt-queue-contexts-bsd1: - shard-iclb: [SKIP][29] ([fdo#109276]) -> [PASS][30] +6 similar issues [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb8/igt@gem_exec_schedule@preempt-queue-contexts-bsd1.html [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-iclb2/igt@gem_exec_schedule@preempt-queue-contexts-bsd1.html * igt@gem_exec_schedule@preemptive-hang-bsd: - shard-iclb: [SKIP][31] ([fdo#111325]) -> [PASS][32] +3 similar issues [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb1/igt@gem_exec_schedule@preemptive-hang-bsd.html [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-iclb8/igt@gem_exec_schedule@preemptive-hang-bsd.html * igt@gem_tiled_swapping@non-threaded: - shard-apl: [INCOMPLETE][33] ([fdo#103927]) -> [PASS][34] +1 similar issue [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-apl7/igt@gem_tiled_swapping@non-threaded.html [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-apl5/igt@gem_tiled_swapping@non-threaded.html * igt@kms_cursor_legacy@flip-vs-cursor-toggle: - shard-glk: [INCOMPLETE][35] ([fdo#103359] / [k.org#198133]) -> [PASS][36] [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-glk4/igt@kms_cursor_legacy@flip-vs-cursor-toggle.html [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-glk4/igt@kms_cursor_legacy@flip-vs-cursor-toggle.html * igt@kms_cursor_legacy@pipe-a-torture-bo: - shard-iclb: [INCOMPLETE][37] ([fdo#107713]) -> [PASS][38] [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb1/igt@kms_cursor_legacy@pipe-a-torture-bo.html [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-iclb6/igt@kms_cursor_legacy@pipe-a-torture-bo.html * igt@kms_flip@2x-modeset-vs-vblank-race-interruptible: - shard-glk: [FAIL][39] ([fdo#103060]) -> [PASS][40] [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-glk8/igt@kms_flip@2x-modeset-vs-vblank-race-interruptible.html [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-glk3/igt@kms_flip@2x-modeset-vs-vblank-race-interruptible.html * igt@kms_flip@flip-vs-suspend-interruptible: - shard-hsw: [INCOMPLETE][41] ([fdo#103540]) -> [PASS][42] +1 similar issue [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-hsw2/igt@kms_flip@flip-vs-suspend-interruptible.html [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-hsw2/igt@kms_flip@flip-vs-suspend-interruptible.html * igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite: - shard-iclb: [FAIL][43] ([fdo#103167]) -> [PASS][44] +5 similar issues [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb2/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite.html [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-iclb4/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-pwrite.html * igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min: - shard-skl: [FAIL][45] ([fdo#108145]) -> [PASS][46] +1 similar issue [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-skl5/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-skl2/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html * igt@kms_plane_lowres@pipe-a-tiling-x: - shard-iclb: [FAIL][47] ([fdo#103166]) -> [PASS][48] [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb8/igt@kms_plane_lowres@pipe-a-tiling-x.html [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-iclb5/igt@kms_plane_lowres@pipe-a-tiling-x.html * igt@kms_psr@psr2_no_drrs: - shard-iclb: [SKIP][49] ([fdo#109441]) -> [PASS][50] +2 similar issues [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb8/igt@kms_psr@psr2_no_drrs.html [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-iclb2/igt@kms_psr@psr2_no_drrs.html * igt@perf@blocking: - shard-skl: [FAIL][51] ([fdo#110728]) -> [PASS][52] +1 similar issue [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-skl4/igt@perf@blocking.html [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-skl4/igt@perf@blocking.html #### Warnings #### * igt@gem_mocs_settings@mocs-rc6-bsd2: - shard-iclb: [SKIP][53] ([fdo#109276]) -> [FAIL][54] ([fdo#111330]) [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb8/igt@gem_mocs_settings@mocs-rc6-bsd2.html [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-iclb2/igt@gem_mocs_settings@mocs-rc6-bsd2.html * igt@kms_dp_dsc@basic-dsc-enable-edp: - shard-iclb: [SKIP][55] ([fdo#109349]) -> [DMESG-WARN][56] ([fdo#107724]) [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6820/shard-iclb8/igt@kms_dp_dsc@basic-dsc-enable-edp.html [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14257/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html [fdo#102250]: https://bugs.freedesktop.org/show_bug.cgi?id=102250 [fdo#103060]: https://bugs.freedesktop.org/show_bug.cgi?id=103060 [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166 [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167 [fdo#103359]: https://bugs.freedesktop.org/show_bug.cgi?id=103359 [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540 [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927 [fdo#106107]: https://bugs.freedesktop.org/show_bug.cgi?id=106107 [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713 [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724 [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145 [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566 [fdo#108686]: https://bugs.freedesktop.org/show_bug.cgi?id=108686 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276 [fdo#109349]: https://bugs.freedesktop.org/show_bug.cgi?id=109349 [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441 [fdo#109507]: https://bugs.freedesktop.org/show_bug.cgi?id=109507 [fdo#110728]: https://bugs.freedesktop.org/show_bug.cgi?id=110728 [fdo#110854]: https://bugs.freedesktop.org/show_bug.cgi?id=110854 [fdo#111325]: https://bugs.freedesktop.org/show_bug.cgi?id=111325 [fdo#111330]: https://bugs.freedesktop.org/show_bug.cgi?id=111330 [k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133 Participating hosts (10 -> 10) ------------------------------ No changes in participating hosts Build changes ------------- * CI: CI-20190529 -> None * Linux: CI_DRM_6820 -> Patchwork_14257 CI-20190529: 20190529 CI_DRM_6820: 2c16f62dc38ed97ab0056219f09d878c9e1c0355 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_5162: e62ea305fdba2a9cd0dadfa527b54529cb0d1438 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_14257: 1905dca746611ec865b8f99cd6407d815c3cb341 @ 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_14257/ _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] drm/edid: Don't look for CEA data blocks in CEA ext block rev < 3 2019-09-02 13:15 [PATCH 1/2] drm/edid: Don't look for CEA data blocks in CEA ext block rev < 3 Ville Syrjala ` (2 preceding siblings ...) 2019-09-02 16:02 ` ✓ Fi.CI.IGT: " Patchwork @ 2019-09-10 9:40 ` Jean Delvare 3 siblings, 0 replies; 8+ messages in thread From: Jean Delvare @ 2019-09-10 9:40 UTC (permalink / raw) To: Ville Syrjala; +Cc: intel-gfx, dri-devel Hi Ville, On Mon, 2 Sep 2019 16:15:45 +0300, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > CEA ext block revisions 1 and 2 do not contain the data block > collection. Instead that section of the extension block is > marked as reserved for 8 byte timing descriptors. Revision 3 > changed it to contain the CEA data block collection instead. > > Most places that iterate the data blocks already check for > revision >= 3, but drm_detect_hdmi_monitor() and > drm_detect_monitor_audio() do not. So in theory when encountering > rev 1 or 2 CEA extension block they could end up misinterpreting > whatever data is in the reserved section as CEA data blocks. > > Let's have cea_db_offsets() do the revision check so that the > callers don't even have worry about it. > > Cc: Jean Delvare <jdelvare@suse.de> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > --- > drivers/gpu/drm/drm_edid.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c > index 82a4ceed3fcf..7b3072fc550b 100644 > --- a/drivers/gpu/drm/drm_edid.c > +++ b/drivers/gpu/drm/drm_edid.c > @@ -3690,6 +3690,9 @@ cea_revision(const u8 *cea) > static int > cea_db_offsets(const u8 *cea, int *start, int *end) > { > + if (cea_revision(cea) < 3) > + return -ENOTSUPP; > + > /* DisplayID CTA extension blocks and top-level CEA EDID > * block header definitions differ in the following bytes: > * 1) Byte 2 of the header specifies length differently, Reviewed-by: Jean Delvare <jdelvare@suse.de> I like it, but then we need a subsequent patch to remove the now redundant checks in add_cea_modes(), drm_edid_to_eld(), drm_edid_to_sad() and drm_edid_to_speaker_allocation(). These last 2 functions are the ones my own patch modifies, so some care is needed. If cea_db_offsets() now returns an error when CEA revisions < 3, then these functions want to return 0 in that case (otherwise you effectively undo the change I proposed). By the way, both functions issue a debug message "SAD: invalid data block offsets" when cea_db_offsets() returns an error, which becomes misleading after your change. I think we want to move this message inside cea_db_offsets() and only print it in the -ERANGE case. -- Jean Delvare SUSE L3 Support _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2019-09-10 10:08 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-09-02 13:15 [PATCH 1/2] drm/edid: Don't look for CEA data blocks in CEA ext block rev < 3 Ville Syrjala 2019-09-02 13:15 ` [PATCH 2/2] drm/edid: Have cea_db_offsets() zero start/end when the data block collection isn't found Ville Syrjala 2019-09-10 9:46 ` Jean Delvare 2019-09-10 9:48 ` Ville Syrjälä 2019-09-10 10:08 ` Jean Delvare 2019-09-02 14:42 ` ✓ Fi.CI.BAT: success for series starting with [1/2] drm/edid: Don't look for CEA data blocks in CEA ext block rev < 3 Patchwork 2019-09-02 16:02 ` ✓ Fi.CI.IGT: " Patchwork 2019-09-10 9:40 ` [PATCH 1/2] " Jean Delvare
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.