* [PATCH] drm/edid: Support type 7 timings
@ 2022-01-18 21:59 ` Yaroslav Bolyukin
0 siblings, 0 replies; 16+ messages in thread
From: Yaroslav Bolyukin @ 2022-01-18 21:59 UTC (permalink / raw)
To: linux-kernel, dri-devel
Cc: Daniel Vetter, David Airlie, Thomas Zimmermann, Maxime Ripard,
Maarten Lankhorst, Yaroslav Bolyukin
Per VESA DisplayID Standard v2.0: Type VII Timing – Detailed Timing Data
Definitions were already provided as type I, but not used
Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>
---
drivers/gpu/drm/drm_edid.c | 26 +++++++++++++++++---------
include/drm/drm_displayid.h | 6 +++---
2 files changed, 20 insertions(+), 12 deletions(-)
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 12893e7be..5fcefd9b5 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -5404,13 +5404,17 @@ u32 drm_add_display_info(struct drm_connector *connector, const struct edid *edi
return quirks;
}
-static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *dev,
- struct displayid_detailed_timings_1 *timings)
+static struct drm_display_mode *drm_mode_displayid_detailed_1_7(struct drm_device *dev,
+ struct displayid_detailed_timings_1_7 *timings,
+ bool type_7)
{
struct drm_display_mode *mode;
unsigned pixel_clock = (timings->pixel_clock[0] |
(timings->pixel_clock[1] << 8) |
(timings->pixel_clock[2] << 16)) + 1;
+ // type 7 allows higher precision pixel clock
+ if (!type_7)
+ pixel_clock *= 10;
unsigned hactive = (timings->hactive[0] | timings->hactive[1] << 8) + 1;
unsigned hblank = (timings->hblank[0] | timings->hblank[1] << 8) + 1;
unsigned hsync = (timings->hsync[0] | (timings->hsync[1] & 0x7f) << 8) + 1;
@@ -5426,7 +5430,7 @@ static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *d
if (!mode)
return NULL;
- mode->clock = pixel_clock * 10;
+ mode->clock = pixel_clock;
mode->hdisplay = hactive;
mode->hsync_start = mode->hdisplay + hsync;
mode->hsync_end = mode->hsync_start + hsync_width;
@@ -5449,10 +5453,12 @@ static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *d
return mode;
}
-static int add_displayid_detailed_1_modes(struct drm_connector *connector,
- const struct displayid_block *block)
+static int add_displayid_detailed_1_7_modes(struct drm_connector *connector,
+ const struct displayid_block *block,
+ bool type_7)
{
- struct displayid_detailed_timing_block *det = (struct displayid_detailed_timing_block *)block;
+ struct displayid_detailed_timing_1_7_block *det =
+ (struct displayid_detailed_timing_1_7_block *)block;
int i;
int num_timings;
struct drm_display_mode *newmode;
@@ -5463,9 +5469,9 @@ static int add_displayid_detailed_1_modes(struct drm_connector *connector,
num_timings = block->num_bytes / 20;
for (i = 0; i < num_timings; i++) {
- struct displayid_detailed_timings_1 *timings = &det->timings[i];
+ struct displayid_detailed_timings_1_7 *timings = &det->timings[i];
- newmode = drm_mode_displayid_detailed(connector->dev, timings);
+ newmode = drm_mode_displayid_detailed_1_7(connector->dev, timings, type_7);
if (!newmode)
continue;
@@ -5485,7 +5491,9 @@ static int add_displayid_detailed_modes(struct drm_connector *connector,
displayid_iter_edid_begin(edid, &iter);
displayid_iter_for_each(block, &iter) {
if (block->tag == DATA_BLOCK_TYPE_1_DETAILED_TIMING)
- num_modes += add_displayid_detailed_1_modes(connector, block);
+ num_modes += add_displayid_detailed_1_7_modes(connector, block, false);
+ else if (block->tag == DATA_BLOCK_2_TYPE_7_DETAILED_TIMING)
+ num_modes += add_displayid_detailed_1_7_modes(connector, block, true);
}
displayid_iter_end(&iter);
diff --git a/include/drm/drm_displayid.h b/include/drm/drm_displayid.h
index 7ffbd9f7b..268ff5e1f 100644
--- a/include/drm/drm_displayid.h
+++ b/include/drm/drm_displayid.h
@@ -111,7 +111,7 @@ struct displayid_tiled_block {
u8 topology_id[8];
} __packed;
-struct displayid_detailed_timings_1 {
+struct displayid_detailed_timings_1_7 {
u8 pixel_clock[3];
u8 flags;
u8 hactive[2];
@@ -124,9 +124,9 @@ struct displayid_detailed_timings_1 {
u8 vsw[2];
} __packed;
-struct displayid_detailed_timing_block {
+struct displayid_detailed_timing_1_7_block {
struct displayid_block base;
- struct displayid_detailed_timings_1 timings[];
+ struct displayid_detailed_timings_1_7 timings[];
};
#define DISPLAYID_VESA_MSO_OVERLAP GENMASK(3, 0)
base-commit: 99613159ad749543621da8238acf1a122880144e
--
2.34.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH] drm/edid: Support type 7 timings
@ 2022-01-18 21:59 ` Yaroslav Bolyukin
0 siblings, 0 replies; 16+ messages in thread
From: Yaroslav Bolyukin @ 2022-01-18 21:59 UTC (permalink / raw)
To: linux-kernel, dri-devel
Cc: Yaroslav Bolyukin, David Airlie, Thomas Zimmermann
Per VESA DisplayID Standard v2.0: Type VII Timing – Detailed Timing Data
Definitions were already provided as type I, but not used
Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>
---
drivers/gpu/drm/drm_edid.c | 26 +++++++++++++++++---------
include/drm/drm_displayid.h | 6 +++---
2 files changed, 20 insertions(+), 12 deletions(-)
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 12893e7be..5fcefd9b5 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -5404,13 +5404,17 @@ u32 drm_add_display_info(struct drm_connector *connector, const struct edid *edi
return quirks;
}
-static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *dev,
- struct displayid_detailed_timings_1 *timings)
+static struct drm_display_mode *drm_mode_displayid_detailed_1_7(struct drm_device *dev,
+ struct displayid_detailed_timings_1_7 *timings,
+ bool type_7)
{
struct drm_display_mode *mode;
unsigned pixel_clock = (timings->pixel_clock[0] |
(timings->pixel_clock[1] << 8) |
(timings->pixel_clock[2] << 16)) + 1;
+ // type 7 allows higher precision pixel clock
+ if (!type_7)
+ pixel_clock *= 10;
unsigned hactive = (timings->hactive[0] | timings->hactive[1] << 8) + 1;
unsigned hblank = (timings->hblank[0] | timings->hblank[1] << 8) + 1;
unsigned hsync = (timings->hsync[0] | (timings->hsync[1] & 0x7f) << 8) + 1;
@@ -5426,7 +5430,7 @@ static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *d
if (!mode)
return NULL;
- mode->clock = pixel_clock * 10;
+ mode->clock = pixel_clock;
mode->hdisplay = hactive;
mode->hsync_start = mode->hdisplay + hsync;
mode->hsync_end = mode->hsync_start + hsync_width;
@@ -5449,10 +5453,12 @@ static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *d
return mode;
}
-static int add_displayid_detailed_1_modes(struct drm_connector *connector,
- const struct displayid_block *block)
+static int add_displayid_detailed_1_7_modes(struct drm_connector *connector,
+ const struct displayid_block *block,
+ bool type_7)
{
- struct displayid_detailed_timing_block *det = (struct displayid_detailed_timing_block *)block;
+ struct displayid_detailed_timing_1_7_block *det =
+ (struct displayid_detailed_timing_1_7_block *)block;
int i;
int num_timings;
struct drm_display_mode *newmode;
@@ -5463,9 +5469,9 @@ static int add_displayid_detailed_1_modes(struct drm_connector *connector,
num_timings = block->num_bytes / 20;
for (i = 0; i < num_timings; i++) {
- struct displayid_detailed_timings_1 *timings = &det->timings[i];
+ struct displayid_detailed_timings_1_7 *timings = &det->timings[i];
- newmode = drm_mode_displayid_detailed(connector->dev, timings);
+ newmode = drm_mode_displayid_detailed_1_7(connector->dev, timings, type_7);
if (!newmode)
continue;
@@ -5485,7 +5491,9 @@ static int add_displayid_detailed_modes(struct drm_connector *connector,
displayid_iter_edid_begin(edid, &iter);
displayid_iter_for_each(block, &iter) {
if (block->tag == DATA_BLOCK_TYPE_1_DETAILED_TIMING)
- num_modes += add_displayid_detailed_1_modes(connector, block);
+ num_modes += add_displayid_detailed_1_7_modes(connector, block, false);
+ else if (block->tag == DATA_BLOCK_2_TYPE_7_DETAILED_TIMING)
+ num_modes += add_displayid_detailed_1_7_modes(connector, block, true);
}
displayid_iter_end(&iter);
diff --git a/include/drm/drm_displayid.h b/include/drm/drm_displayid.h
index 7ffbd9f7b..268ff5e1f 100644
--- a/include/drm/drm_displayid.h
+++ b/include/drm/drm_displayid.h
@@ -111,7 +111,7 @@ struct displayid_tiled_block {
u8 topology_id[8];
} __packed;
-struct displayid_detailed_timings_1 {
+struct displayid_detailed_timings_1_7 {
u8 pixel_clock[3];
u8 flags;
u8 hactive[2];
@@ -124,9 +124,9 @@ struct displayid_detailed_timings_1 {
u8 vsw[2];
} __packed;
-struct displayid_detailed_timing_block {
+struct displayid_detailed_timing_1_7_block {
struct displayid_block base;
- struct displayid_detailed_timings_1 timings[];
+ struct displayid_detailed_timings_1_7 timings[];
};
#define DISPLAYID_VESA_MSO_OVERLAP GENMASK(3, 0)
base-commit: 99613159ad749543621da8238acf1a122880144e
--
2.34.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [PATCH] drm/edid: Support type 7 timings
2022-01-18 21:59 ` Yaroslav Bolyukin
@ 2022-01-19 9:35 ` Jani Nikula
-1 siblings, 0 replies; 16+ messages in thread
From: Jani Nikula @ 2022-01-19 9:35 UTC (permalink / raw)
To: Yaroslav Bolyukin, linux-kernel, dri-devel
Cc: Yaroslav Bolyukin, David Airlie, Thomas Zimmermann
On Wed, 19 Jan 2022, Yaroslav Bolyukin <iam@lach.pw> wrote:
> Per VESA DisplayID Standard v2.0: Type VII Timing – Detailed Timing Data
>
> Definitions were already provided as type I, but not used
Thanks for the patch. Functionally I think it looks correct, and
something we'll want. I do have some nitpicks though, comments inline.
For the next version, please consider Cc'ing the intel-gfx list as well
to get our CI results on it too.
BR,
Jani.
>
> Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>
> ---
> drivers/gpu/drm/drm_edid.c | 26 +++++++++++++++++---------
> include/drm/drm_displayid.h | 6 +++---
> 2 files changed, 20 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index 12893e7be..5fcefd9b5 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -5404,13 +5404,17 @@ u32 drm_add_display_info(struct drm_connector *connector, const struct edid *edi
> return quirks;
> }
>
> -static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *dev,
> - struct displayid_detailed_timings_1 *timings)
> +static struct drm_display_mode *drm_mode_displayid_detailed_1_7(struct drm_device *dev,
> + struct displayid_detailed_timings_1_7 *timings,
> + bool type_7)
I think the function rename here is unnecessary.
> {
> struct drm_display_mode *mode;
> unsigned pixel_clock = (timings->pixel_clock[0] |
> (timings->pixel_clock[1] << 8) |
> (timings->pixel_clock[2] << 16)) + 1;
> + // type 7 allows higher precision pixel clock
Please don't use // style comments.
For the comment contents, I think you should just state the units for
each; 10 kHz for type I, kHz for type VII.
> + if (!type_7)
> + pixel_clock *= 10;
Please don't mix declarations and code.
> unsigned hactive = (timings->hactive[0] | timings->hactive[1] << 8) + 1;
> unsigned hblank = (timings->hblank[0] | timings->hblank[1] << 8) + 1;
> unsigned hsync = (timings->hsync[0] | (timings->hsync[1] & 0x7f) << 8) + 1;
> @@ -5426,7 +5430,7 @@ static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *d
> if (!mode)
> return NULL;
>
> - mode->clock = pixel_clock * 10;
> + mode->clock = pixel_clock;
Since we used to have the multiplication here (and we don't mix
declarations and code anyway) I'd keep it here.
Maybe:
mode->clock = type_7 ? pixel_clock : pixel_clock * 10;
> mode->hdisplay = hactive;
> mode->hsync_start = mode->hdisplay + hsync;
> mode->hsync_end = mode->hsync_start + hsync_width;
> @@ -5449,10 +5453,12 @@ static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *d
> return mode;
> }
>
> -static int add_displayid_detailed_1_modes(struct drm_connector *connector,
> - const struct displayid_block *block)
> +static int add_displayid_detailed_1_7_modes(struct drm_connector *connector,
> + const struct displayid_block *block,
> + bool type_7)
> {
> - struct displayid_detailed_timing_block *det = (struct displayid_detailed_timing_block *)block;
> + struct displayid_detailed_timing_1_7_block *det =
> + (struct displayid_detailed_timing_1_7_block *)block;
I think the displayid_detailed_timing_block ->
displayid_detailed_timing_1_7_block rename is unnecessary.
> int i;
> int num_timings;
> struct drm_display_mode *newmode;
> @@ -5463,9 +5469,9 @@ static int add_displayid_detailed_1_modes(struct drm_connector *connector,
>
> num_timings = block->num_bytes / 20;
> for (i = 0; i < num_timings; i++) {
> - struct displayid_detailed_timings_1 *timings = &det->timings[i];
> + struct displayid_detailed_timings_1_7 *timings = &det->timings[i];
>
> - newmode = drm_mode_displayid_detailed(connector->dev, timings);
> + newmode = drm_mode_displayid_detailed_1_7(connector->dev, timings, type_7);
> if (!newmode)
> continue;
>
> @@ -5485,7 +5491,9 @@ static int add_displayid_detailed_modes(struct drm_connector *connector,
> displayid_iter_edid_begin(edid, &iter);
> displayid_iter_for_each(block, &iter) {
> if (block->tag == DATA_BLOCK_TYPE_1_DETAILED_TIMING)
> - num_modes += add_displayid_detailed_1_modes(connector, block);
> + num_modes += add_displayid_detailed_1_7_modes(connector, block, false);
> + else if (block->tag == DATA_BLOCK_2_TYPE_7_DETAILED_TIMING)
> + num_modes += add_displayid_detailed_1_7_modes(connector, block, true);
I'd probably not add a true/false parameter here, since we pass in block
anyway, and the function can have and initialize the bool local variable
internally based on block->tag.
> }
> displayid_iter_end(&iter);
>
> diff --git a/include/drm/drm_displayid.h b/include/drm/drm_displayid.h
> index 7ffbd9f7b..268ff5e1f 100644
> --- a/include/drm/drm_displayid.h
> +++ b/include/drm/drm_displayid.h
> @@ -111,7 +111,7 @@ struct displayid_tiled_block {
> u8 topology_id[8];
> } __packed;
>
> -struct displayid_detailed_timings_1 {
> +struct displayid_detailed_timings_1_7 {
> u8 pixel_clock[3];
> u8 flags;
> u8 hactive[2];
> @@ -124,9 +124,9 @@ struct displayid_detailed_timings_1 {
> u8 vsw[2];
> } __packed;
>
> -struct displayid_detailed_timing_block {
> +struct displayid_detailed_timing_1_7_block {
Like I said, I wouldn't rename this.
> struct displayid_block base;
> - struct displayid_detailed_timings_1 timings[];
> + struct displayid_detailed_timings_1_7 timings[];
> };
>
> #define DISPLAYID_VESA_MSO_OVERLAP GENMASK(3, 0)
>
> base-commit: 99613159ad749543621da8238acf1a122880144e
--
Jani Nikula, Intel Open Source Graphics Center
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH] drm/edid: Support type 7 timings
@ 2022-01-19 9:35 ` Jani Nikula
0 siblings, 0 replies; 16+ messages in thread
From: Jani Nikula @ 2022-01-19 9:35 UTC (permalink / raw)
To: Yaroslav Bolyukin, linux-kernel, dri-devel
Cc: David Airlie, Yaroslav Bolyukin, Thomas Zimmermann
On Wed, 19 Jan 2022, Yaroslav Bolyukin <iam@lach.pw> wrote:
> Per VESA DisplayID Standard v2.0: Type VII Timing – Detailed Timing Data
>
> Definitions were already provided as type I, but not used
Thanks for the patch. Functionally I think it looks correct, and
something we'll want. I do have some nitpicks though, comments inline.
For the next version, please consider Cc'ing the intel-gfx list as well
to get our CI results on it too.
BR,
Jani.
>
> Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>
> ---
> drivers/gpu/drm/drm_edid.c | 26 +++++++++++++++++---------
> include/drm/drm_displayid.h | 6 +++---
> 2 files changed, 20 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index 12893e7be..5fcefd9b5 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -5404,13 +5404,17 @@ u32 drm_add_display_info(struct drm_connector *connector, const struct edid *edi
> return quirks;
> }
>
> -static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *dev,
> - struct displayid_detailed_timings_1 *timings)
> +static struct drm_display_mode *drm_mode_displayid_detailed_1_7(struct drm_device *dev,
> + struct displayid_detailed_timings_1_7 *timings,
> + bool type_7)
I think the function rename here is unnecessary.
> {
> struct drm_display_mode *mode;
> unsigned pixel_clock = (timings->pixel_clock[0] |
> (timings->pixel_clock[1] << 8) |
> (timings->pixel_clock[2] << 16)) + 1;
> + // type 7 allows higher precision pixel clock
Please don't use // style comments.
For the comment contents, I think you should just state the units for
each; 10 kHz for type I, kHz for type VII.
> + if (!type_7)
> + pixel_clock *= 10;
Please don't mix declarations and code.
> unsigned hactive = (timings->hactive[0] | timings->hactive[1] << 8) + 1;
> unsigned hblank = (timings->hblank[0] | timings->hblank[1] << 8) + 1;
> unsigned hsync = (timings->hsync[0] | (timings->hsync[1] & 0x7f) << 8) + 1;
> @@ -5426,7 +5430,7 @@ static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *d
> if (!mode)
> return NULL;
>
> - mode->clock = pixel_clock * 10;
> + mode->clock = pixel_clock;
Since we used to have the multiplication here (and we don't mix
declarations and code anyway) I'd keep it here.
Maybe:
mode->clock = type_7 ? pixel_clock : pixel_clock * 10;
> mode->hdisplay = hactive;
> mode->hsync_start = mode->hdisplay + hsync;
> mode->hsync_end = mode->hsync_start + hsync_width;
> @@ -5449,10 +5453,12 @@ static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *d
> return mode;
> }
>
> -static int add_displayid_detailed_1_modes(struct drm_connector *connector,
> - const struct displayid_block *block)
> +static int add_displayid_detailed_1_7_modes(struct drm_connector *connector,
> + const struct displayid_block *block,
> + bool type_7)
> {
> - struct displayid_detailed_timing_block *det = (struct displayid_detailed_timing_block *)block;
> + struct displayid_detailed_timing_1_7_block *det =
> + (struct displayid_detailed_timing_1_7_block *)block;
I think the displayid_detailed_timing_block ->
displayid_detailed_timing_1_7_block rename is unnecessary.
> int i;
> int num_timings;
> struct drm_display_mode *newmode;
> @@ -5463,9 +5469,9 @@ static int add_displayid_detailed_1_modes(struct drm_connector *connector,
>
> num_timings = block->num_bytes / 20;
> for (i = 0; i < num_timings; i++) {
> - struct displayid_detailed_timings_1 *timings = &det->timings[i];
> + struct displayid_detailed_timings_1_7 *timings = &det->timings[i];
>
> - newmode = drm_mode_displayid_detailed(connector->dev, timings);
> + newmode = drm_mode_displayid_detailed_1_7(connector->dev, timings, type_7);
> if (!newmode)
> continue;
>
> @@ -5485,7 +5491,9 @@ static int add_displayid_detailed_modes(struct drm_connector *connector,
> displayid_iter_edid_begin(edid, &iter);
> displayid_iter_for_each(block, &iter) {
> if (block->tag == DATA_BLOCK_TYPE_1_DETAILED_TIMING)
> - num_modes += add_displayid_detailed_1_modes(connector, block);
> + num_modes += add_displayid_detailed_1_7_modes(connector, block, false);
> + else if (block->tag == DATA_BLOCK_2_TYPE_7_DETAILED_TIMING)
> + num_modes += add_displayid_detailed_1_7_modes(connector, block, true);
I'd probably not add a true/false parameter here, since we pass in block
anyway, and the function can have and initialize the bool local variable
internally based on block->tag.
> }
> displayid_iter_end(&iter);
>
> diff --git a/include/drm/drm_displayid.h b/include/drm/drm_displayid.h
> index 7ffbd9f7b..268ff5e1f 100644
> --- a/include/drm/drm_displayid.h
> +++ b/include/drm/drm_displayid.h
> @@ -111,7 +111,7 @@ struct displayid_tiled_block {
> u8 topology_id[8];
> } __packed;
>
> -struct displayid_detailed_timings_1 {
> +struct displayid_detailed_timings_1_7 {
> u8 pixel_clock[3];
> u8 flags;
> u8 hactive[2];
> @@ -124,9 +124,9 @@ struct displayid_detailed_timings_1 {
> u8 vsw[2];
> } __packed;
>
> -struct displayid_detailed_timing_block {
> +struct displayid_detailed_timing_1_7_block {
Like I said, I wouldn't rename this.
> struct displayid_block base;
> - struct displayid_detailed_timings_1 timings[];
> + struct displayid_detailed_timings_1_7 timings[];
> };
>
> #define DISPLAYID_VESA_MSO_OVERLAP GENMASK(3, 0)
>
> base-commit: 99613159ad749543621da8238acf1a122880144e
--
Jani Nikula, Intel Open Source Graphics Center
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH v2] drm/edid: Support type 7 timings
2022-01-18 21:59 ` Yaroslav Bolyukin
(?)
@ 2022-01-23 19:19 ` Yaroslav Bolyukin
-1 siblings, 0 replies; 16+ messages in thread
From: Yaroslav Bolyukin @ 2022-01-23 19:19 UTC (permalink / raw)
To: linux-kernel, dri-devel
Cc: intel-gfx, Daniel Vetter, David Airlie, Thomas Zimmermann,
Maxime Ripard, Maarten Lankhorst, Jani Nikula, Yaroslav Bolyukin
Per VESA DisplayID Standard v2.0: Type VII Timing – Detailed Timing Data
Definitions were already provided as type I, but not used
Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>
---
drivers/gpu/drm/drm_edid.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 12893e7be..5f2ae5bfa 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -5405,7 +5405,8 @@ u32 drm_add_display_info(struct drm_connector *connector, const struct edid *edi
}
static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *dev,
- struct displayid_detailed_timings_1 *timings)
+ struct displayid_detailed_timings_1 *timings,
+ bool type_7)
{
struct drm_display_mode *mode;
unsigned pixel_clock = (timings->pixel_clock[0] |
@@ -5426,7 +5427,8 @@ static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *d
if (!mode)
return NULL;
- mode->clock = pixel_clock * 10;
+ /* resolution is kHz for type VII, and 10 kHz for type I */
+ mode->clock = type_7 ? pixel_clock : pixel_clock * 10;
mode->hdisplay = hactive;
mode->hsync_start = mode->hdisplay + hsync;
mode->hsync_end = mode->hsync_start + hsync_width;
@@ -5457,6 +5459,7 @@ static int add_displayid_detailed_1_modes(struct drm_connector *connector,
int num_timings;
struct drm_display_mode *newmode;
int num_modes = 0;
+ bool type_7 = block->tag == DATA_BLOCK_2_TYPE_7_DETAILED_TIMING;
/* blocks must be multiple of 20 bytes length */
if (block->num_bytes % 20)
return 0;
@@ -5465,7 +5468,7 @@ static int add_displayid_detailed_1_modes(struct drm_connector *connector,
for (i = 0; i < num_timings; i++) {
struct displayid_detailed_timings_1 *timings = &det->timings[i];
- newmode = drm_mode_displayid_detailed(connector->dev, timings);
+ newmode = drm_mode_displayid_detailed(connector->dev, timings, type_7);
if (!newmode)
continue;
@@ -5484,7 +5487,8 @@ static int add_displayid_detailed_modes(struct drm_connector *connector,
displayid_iter_edid_begin(edid, &iter);
displayid_iter_for_each(block, &iter) {
- if (block->tag == DATA_BLOCK_TYPE_1_DETAILED_TIMING)
+ if (block->tag == DATA_BLOCK_TYPE_1_DETAILED_TIMING ||
+ block->tag == DATA_BLOCK_2_TYPE_7_DETAILED_TIMING)
num_modes += add_displayid_detailed_1_modes(connector, block);
}
displayid_iter_end(&iter);
base-commit: 99613159ad749543621da8238acf1a122880144e
--
2.34.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [PATCH v2] drm/edid: Support type 7 timings
@ 2022-01-23 19:19 ` Yaroslav Bolyukin
0 siblings, 0 replies; 16+ messages in thread
From: Yaroslav Bolyukin @ 2022-01-23 19:19 UTC (permalink / raw)
To: linux-kernel, dri-devel
Cc: David Airlie, intel-gfx, Thomas Zimmermann, Yaroslav Bolyukin
Per VESA DisplayID Standard v2.0: Type VII Timing – Detailed Timing Data
Definitions were already provided as type I, but not used
Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>
---
drivers/gpu/drm/drm_edid.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 12893e7be..5f2ae5bfa 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -5405,7 +5405,8 @@ u32 drm_add_display_info(struct drm_connector *connector, const struct edid *edi
}
static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *dev,
- struct displayid_detailed_timings_1 *timings)
+ struct displayid_detailed_timings_1 *timings,
+ bool type_7)
{
struct drm_display_mode *mode;
unsigned pixel_clock = (timings->pixel_clock[0] |
@@ -5426,7 +5427,8 @@ static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *d
if (!mode)
return NULL;
- mode->clock = pixel_clock * 10;
+ /* resolution is kHz for type VII, and 10 kHz for type I */
+ mode->clock = type_7 ? pixel_clock : pixel_clock * 10;
mode->hdisplay = hactive;
mode->hsync_start = mode->hdisplay + hsync;
mode->hsync_end = mode->hsync_start + hsync_width;
@@ -5457,6 +5459,7 @@ static int add_displayid_detailed_1_modes(struct drm_connector *connector,
int num_timings;
struct drm_display_mode *newmode;
int num_modes = 0;
+ bool type_7 = block->tag == DATA_BLOCK_2_TYPE_7_DETAILED_TIMING;
/* blocks must be multiple of 20 bytes length */
if (block->num_bytes % 20)
return 0;
@@ -5465,7 +5468,7 @@ static int add_displayid_detailed_1_modes(struct drm_connector *connector,
for (i = 0; i < num_timings; i++) {
struct displayid_detailed_timings_1 *timings = &det->timings[i];
- newmode = drm_mode_displayid_detailed(connector->dev, timings);
+ newmode = drm_mode_displayid_detailed(connector->dev, timings, type_7);
if (!newmode)
continue;
@@ -5484,7 +5487,8 @@ static int add_displayid_detailed_modes(struct drm_connector *connector,
displayid_iter_edid_begin(edid, &iter);
displayid_iter_for_each(block, &iter) {
- if (block->tag == DATA_BLOCK_TYPE_1_DETAILED_TIMING)
+ if (block->tag == DATA_BLOCK_TYPE_1_DETAILED_TIMING ||
+ block->tag == DATA_BLOCK_2_TYPE_7_DETAILED_TIMING)
num_modes += add_displayid_detailed_1_modes(connector, block);
}
displayid_iter_end(&iter);
base-commit: 99613159ad749543621da8238acf1a122880144e
--
2.34.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [Intel-gfx] [PATCH v2] drm/edid: Support type 7 timings
@ 2022-01-23 19:19 ` Yaroslav Bolyukin
0 siblings, 0 replies; 16+ messages in thread
From: Yaroslav Bolyukin @ 2022-01-23 19:19 UTC (permalink / raw)
To: linux-kernel, dri-devel
Cc: David Airlie, intel-gfx, Maxime Ripard, Thomas Zimmermann,
Yaroslav Bolyukin
Per VESA DisplayID Standard v2.0: Type VII Timing – Detailed Timing Data
Definitions were already provided as type I, but not used
Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>
---
drivers/gpu/drm/drm_edid.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 12893e7be..5f2ae5bfa 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -5405,7 +5405,8 @@ u32 drm_add_display_info(struct drm_connector *connector, const struct edid *edi
}
static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *dev,
- struct displayid_detailed_timings_1 *timings)
+ struct displayid_detailed_timings_1 *timings,
+ bool type_7)
{
struct drm_display_mode *mode;
unsigned pixel_clock = (timings->pixel_clock[0] |
@@ -5426,7 +5427,8 @@ static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *d
if (!mode)
return NULL;
- mode->clock = pixel_clock * 10;
+ /* resolution is kHz for type VII, and 10 kHz for type I */
+ mode->clock = type_7 ? pixel_clock : pixel_clock * 10;
mode->hdisplay = hactive;
mode->hsync_start = mode->hdisplay + hsync;
mode->hsync_end = mode->hsync_start + hsync_width;
@@ -5457,6 +5459,7 @@ static int add_displayid_detailed_1_modes(struct drm_connector *connector,
int num_timings;
struct drm_display_mode *newmode;
int num_modes = 0;
+ bool type_7 = block->tag == DATA_BLOCK_2_TYPE_7_DETAILED_TIMING;
/* blocks must be multiple of 20 bytes length */
if (block->num_bytes % 20)
return 0;
@@ -5465,7 +5468,7 @@ static int add_displayid_detailed_1_modes(struct drm_connector *connector,
for (i = 0; i < num_timings; i++) {
struct displayid_detailed_timings_1 *timings = &det->timings[i];
- newmode = drm_mode_displayid_detailed(connector->dev, timings);
+ newmode = drm_mode_displayid_detailed(connector->dev, timings, type_7);
if (!newmode)
continue;
@@ -5484,7 +5487,8 @@ static int add_displayid_detailed_modes(struct drm_connector *connector,
displayid_iter_edid_begin(edid, &iter);
displayid_iter_for_each(block, &iter) {
- if (block->tag == DATA_BLOCK_TYPE_1_DETAILED_TIMING)
+ if (block->tag == DATA_BLOCK_TYPE_1_DETAILED_TIMING ||
+ block->tag == DATA_BLOCK_2_TYPE_7_DETAILED_TIMING)
num_modes += add_displayid_detailed_1_modes(connector, block);
}
displayid_iter_end(&iter);
base-commit: 99613159ad749543621da8238acf1a122880144e
--
2.34.1
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/edid: Support type 7 timings
2022-01-18 21:59 ` Yaroslav Bolyukin
` (2 preceding siblings ...)
(?)
@ 2022-01-24 21:06 ` Patchwork
-1 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2022-01-24 21:06 UTC (permalink / raw)
To: Yaroslav Bolyukin; +Cc: intel-gfx
== Series Details ==
Series: drm/edid: Support type 7 timings
URL : https://patchwork.freedesktop.org/series/99250/
State : warning
== Summary ==
$ dim checkpatch origin/drm-tip
9735d3ddba6d drm/edid: Support type 7 timings
-:24: WARNING:LONG_LINE: line length of 105 exceeds 100 columns
#24: FILE: drivers/gpu/drm/drm_edid.c:5443:
+ struct displayid_detailed_timings_1 *timings,
total: 0 errors, 1 warnings, 0 checks, 42 lines checked
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/edid: Support type 7 timings
2022-01-18 21:59 ` Yaroslav Bolyukin
` (3 preceding siblings ...)
(?)
@ 2022-01-24 21:38 ` Patchwork
-1 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2022-01-24 21:38 UTC (permalink / raw)
To: Yaroslav Bolyukin; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 4977 bytes --]
== Series Details ==
Series: drm/edid: Support type 7 timings
URL : https://patchwork.freedesktop.org/series/99250/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_11129 -> Patchwork_22082
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/index.html
Participating hosts (48 -> 42)
------------------------------
Missing (6): fi-hsw-4200u fi-bsw-cyan fi-snb-2520m fi-ctg-p8600 bat-jsl-2 fi-bdw-samus
Known issues
------------
Here are the changes found in Patchwork_22082 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@amdgpu/amd_basic@semaphore:
- fi-hsw-4770: NOTRUN -> [SKIP][1] ([fdo#109271] / [fdo#109315]) +17 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/fi-hsw-4770/igt@amdgpu/amd_basic@semaphore.html
* igt@gem_exec_suspend@basic-s3@smem:
- fi-bdw-5557u: [PASS][2] -> [INCOMPLETE][3] ([i915#146])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/fi-bdw-5557u/igt@gem_exec_suspend@basic-s3@smem.html
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/fi-bdw-5557u/igt@gem_exec_suspend@basic-s3@smem.html
* igt@gem_flink_basic@bad-flink:
- fi-skl-6600u: [PASS][4] -> [FAIL][5] ([i915#4547])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/fi-skl-6600u/igt@gem_flink_basic@bad-flink.html
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/fi-skl-6600u/igt@gem_flink_basic@bad-flink.html
* igt@runner@aborted:
- fi-skl-6600u: NOTRUN -> [FAIL][6] ([i915#4312])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/fi-skl-6600u/igt@runner@aborted.html
#### Possible fixes ####
* igt@i915_selftest@live@gt_heartbeat:
- {fi-tgl-dsi}: [DMESG-FAIL][7] ([i915#541]) -> [PASS][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/fi-tgl-dsi/igt@i915_selftest@live@gt_heartbeat.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/fi-tgl-dsi/igt@i915_selftest@live@gt_heartbeat.html
- fi-bsw-kefka: [DMESG-FAIL][9] ([i915#541]) -> [PASS][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/fi-bsw-kefka/igt@i915_selftest@live@gt_heartbeat.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/fi-bsw-kefka/igt@i915_selftest@live@gt_heartbeat.html
* igt@i915_selftest@live@hangcheck:
- bat-dg1-6: [DMESG-FAIL][11] -> [PASS][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/bat-dg1-6/igt@i915_selftest@live@hangcheck.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/bat-dg1-6/igt@i915_selftest@live@hangcheck.html
- fi-hsw-4770: [INCOMPLETE][13] ([i915#3303]) -> [PASS][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html
#### Warnings ####
* igt@i915_selftest@live@hangcheck:
- bat-dg1-5: [DMESG-FAIL][15] ([i915#4494]) -> [DMESG-FAIL][16] ([i915#4494] / [i915#4957])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/bat-dg1-5/igt@i915_selftest@live@hangcheck.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/bat-dg1-5/igt@i915_selftest@live@hangcheck.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
[i915#146]: https://gitlab.freedesktop.org/drm/intel/issues/146
[i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
[i915#3303]: https://gitlab.freedesktop.org/drm/intel/issues/3303
[i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
[i915#4494]: https://gitlab.freedesktop.org/drm/intel/issues/4494
[i915#4547]: https://gitlab.freedesktop.org/drm/intel/issues/4547
[i915#4898]: https://gitlab.freedesktop.org/drm/intel/issues/4898
[i915#4957]: https://gitlab.freedesktop.org/drm/intel/issues/4957
[i915#541]: https://gitlab.freedesktop.org/drm/intel/issues/541
Build changes
-------------
* Linux: CI_DRM_11129 -> Patchwork_22082
CI-20190529: 20190529
CI_DRM_11129: 0b83d3cf9f9eab03ec804d56ac2686320a64f3ee @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_6330: f73008bac9a8db0779264b170f630483e9165764 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_22082: 9735d3ddba6d11ae273018b5b11eda91924bcc7e @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
9735d3ddba6d drm/edid: Support type 7 timings
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/index.html
[-- Attachment #2: Type: text/html, Size: 5789 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* [Intel-gfx] ✗ Fi.CI.IGT: failure for drm/edid: Support type 7 timings
2022-01-18 21:59 ` Yaroslav Bolyukin
` (4 preceding siblings ...)
(?)
@ 2022-01-25 3:01 ` Patchwork
-1 siblings, 0 replies; 16+ messages in thread
From: Patchwork @ 2022-01-25 3:01 UTC (permalink / raw)
To: Yaroslav Bolyukin; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 30255 bytes --]
== Series Details ==
Series: drm/edid: Support type 7 timings
URL : https://patchwork.freedesktop.org/series/99250/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_11129_full -> Patchwork_22082_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_22082_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_22082_full, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (11 -> 10)
------------------------------
Missing (1): shard-tglu
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_22082_full:
### IGT changes ###
#### Possible regressions ####
* igt@gem_userptr_blits@input-checking:
- shard-apl: NOTRUN -> [DMESG-WARN][1] +1 similar issue
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-apl1/igt@gem_userptr_blits@input-checking.html
Known issues
------------
Here are the changes found in Patchwork_22082_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_ctx_persistence@many-contexts:
- shard-tglb: [PASS][2] -> [FAIL][3] ([i915#2410])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-tglb1/igt@gem_ctx_persistence@many-contexts.html
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-tglb1/igt@gem_ctx_persistence@many-contexts.html
* igt@gem_ctx_persistence@smoketest:
- shard-tglb: [PASS][4] -> [FAIL][5] ([i915#2896])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-tglb3/igt@gem_ctx_persistence@smoketest.html
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-tglb6/igt@gem_ctx_persistence@smoketest.html
* igt@gem_eio@in-flight-contexts-10ms:
- shard-iclb: [PASS][6] -> [TIMEOUT][7] ([i915#3070])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-iclb8/igt@gem_eio@in-flight-contexts-10ms.html
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-iclb5/igt@gem_eio@in-flight-contexts-10ms.html
* igt@gem_exec_balancer@parallel-balancer:
- shard-iclb: [PASS][8] -> [SKIP][9] ([i915#4525])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-iclb2/igt@gem_exec_balancer@parallel-balancer.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-iclb3/igt@gem_exec_balancer@parallel-balancer.html
* igt@gem_exec_fair@basic-deadline:
- shard-skl: NOTRUN -> [FAIL][10] ([i915#2846])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-skl9/igt@gem_exec_fair@basic-deadline.html
* igt@gem_exec_fair@basic-none-solo@rcs0:
- shard-kbl: NOTRUN -> [FAIL][11] ([i915#2842])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-kbl4/igt@gem_exec_fair@basic-none-solo@rcs0.html
- shard-tglb: NOTRUN -> [FAIL][12] ([i915#2842])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-tglb5/igt@gem_exec_fair@basic-none-solo@rcs0.html
* igt@gem_exec_fair@basic-none@vcs0:
- shard-kbl: [PASS][13] -> [FAIL][14] ([i915#2842]) +3 similar issues
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-kbl3/igt@gem_exec_fair@basic-none@vcs0.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-kbl7/igt@gem_exec_fair@basic-none@vcs0.html
* igt@gem_exec_fair@basic-none@vcs1:
- shard-iclb: NOTRUN -> [FAIL][15] ([i915#2842])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-iclb4/igt@gem_exec_fair@basic-none@vcs1.html
* igt@gem_exec_fair@basic-pace-solo@rcs0:
- shard-tglb: [PASS][16] -> [FAIL][17] ([i915#2842]) +1 similar issue
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-tglb2/igt@gem_exec_fair@basic-pace-solo@rcs0.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-tglb3/igt@gem_exec_fair@basic-pace-solo@rcs0.html
* igt@gem_lmem_swapping@basic:
- shard-kbl: NOTRUN -> [SKIP][18] ([fdo#109271] / [i915#4613]) +1 similar issue
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-kbl7/igt@gem_lmem_swapping@basic.html
* igt@gem_lmem_swapping@smem-oom:
- shard-skl: NOTRUN -> [SKIP][19] ([fdo#109271] / [i915#4613]) +1 similar issue
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-skl8/igt@gem_lmem_swapping@smem-oom.html
* igt@gem_pread@exhaustion:
- shard-kbl: NOTRUN -> [WARN][20] ([i915#2658])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-kbl1/igt@gem_pread@exhaustion.html
- shard-skl: NOTRUN -> [WARN][21] ([i915#2658])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-skl8/igt@gem_pread@exhaustion.html
* igt@gem_pxp@reject-modify-context-protection-off-1:
- shard-tglb: NOTRUN -> [SKIP][22] ([i915#4270])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-tglb5/igt@gem_pxp@reject-modify-context-protection-off-1.html
* igt@gem_userptr_blits@dmabuf-sync:
- shard-apl: NOTRUN -> [SKIP][23] ([fdo#109271] / [i915#3323])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-apl1/igt@gem_userptr_blits@dmabuf-sync.html
* igt@gem_userptr_blits@unsync-unmap-cycles:
- shard-tglb: NOTRUN -> [SKIP][24] ([i915#3297])
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-tglb5/igt@gem_userptr_blits@unsync-unmap-cycles.html
- shard-iclb: NOTRUN -> [SKIP][25] ([i915#3297])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-iclb3/igt@gem_userptr_blits@unsync-unmap-cycles.html
* igt@gem_workarounds@suspend-resume:
- shard-apl: NOTRUN -> [DMESG-WARN][26] ([i915#180])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-apl3/igt@gem_workarounds@suspend-resume.html
* igt@gem_workarounds@suspend-resume-context:
- shard-apl: [PASS][27] -> [DMESG-WARN][28] ([i915#180]) +5 similar issues
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-apl4/igt@gem_workarounds@suspend-resume-context.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-apl1/igt@gem_workarounds@suspend-resume-context.html
* igt@gen9_exec_parse@allowed-single:
- shard-tglb: NOTRUN -> [SKIP][29] ([i915#2527] / [i915#2856])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-tglb5/igt@gen9_exec_parse@allowed-single.html
* igt@i915_pm_dc@dc6-psr:
- shard-iclb: [PASS][30] -> [FAIL][31] ([i915#454])
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-iclb5/igt@i915_pm_dc@dc6-psr.html
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-iclb6/igt@i915_pm_dc@dc6-psr.html
* igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-dp:
- shard-kbl: NOTRUN -> [SKIP][32] ([fdo#109271] / [i915#1937])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-kbl7/igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-dp.html
* igt@kms_big_fb@linear-8bpp-rotate-90:
- shard-tglb: NOTRUN -> [SKIP][33] ([fdo#111614]) +1 similar issue
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-tglb5/igt@kms_big_fb@linear-8bpp-rotate-90.html
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip:
- shard-apl: NOTRUN -> [SKIP][34] ([fdo#109271] / [i915#3777])
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-apl3/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
- shard-kbl: NOTRUN -> [SKIP][35] ([fdo#109271] / [i915#3777]) +1 similar issue
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-kbl4/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
* igt@kms_big_fb@yf-tiled-16bpp-rotate-180:
- shard-tglb: NOTRUN -> [SKIP][36] ([fdo#111615])
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-tglb5/igt@kms_big_fb@yf-tiled-16bpp-rotate-180.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip:
- shard-skl: NOTRUN -> [SKIP][37] ([fdo#109271] / [i915#3777]) +1 similar issue
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-skl9/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
* igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc:
- shard-kbl: NOTRUN -> [SKIP][38] ([fdo#109271] / [i915#3886]) +4 similar issues
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-kbl4/igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc.html
- shard-apl: NOTRUN -> [SKIP][39] ([fdo#109271] / [i915#3886]) +5 similar issues
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-apl3/igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_mc_ccs:
- shard-tglb: NOTRUN -> [SKIP][40] ([i915#3689] / [i915#3886])
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-tglb5/igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_mc_ccs.html
* igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_ccs:
- shard-tglb: NOTRUN -> [SKIP][41] ([i915#3689])
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-tglb5/igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_ccs.html
* igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs:
- shard-skl: NOTRUN -> [SKIP][42] ([fdo#109271] / [i915#3886]) +5 similar issues
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-skl8/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs.html
* igt@kms_chamelium@dp-audio-edid:
- shard-tglb: NOTRUN -> [SKIP][43] ([fdo#109284] / [fdo#111827]) +3 similar issues
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-tglb5/igt@kms_chamelium@dp-audio-edid.html
* igt@kms_chamelium@hdmi-hpd-storm-disable:
- shard-kbl: NOTRUN -> [SKIP][44] ([fdo#109271] / [fdo#111827]) +10 similar issues
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-kbl4/igt@kms_chamelium@hdmi-hpd-storm-disable.html
* igt@kms_color_chamelium@pipe-a-ctm-red-to-blue:
- shard-iclb: NOTRUN -> [SKIP][45] ([fdo#109284] / [fdo#111827])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-iclb3/igt@kms_color_chamelium@pipe-a-ctm-red-to-blue.html
* igt@kms_color_chamelium@pipe-c-ctm-0-25:
- shard-skl: NOTRUN -> [SKIP][46] ([fdo#109271] / [fdo#111827]) +7 similar issues
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-skl9/igt@kms_color_chamelium@pipe-c-ctm-0-25.html
* igt@kms_color_chamelium@pipe-c-degamma:
- shard-apl: NOTRUN -> [SKIP][47] ([fdo#109271] / [fdo#111827]) +5 similar issues
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-apl4/igt@kms_color_chamelium@pipe-c-degamma.html
* igt@kms_content_protection@atomic:
- shard-kbl: NOTRUN -> [TIMEOUT][48] ([i915#1319])
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-kbl3/igt@kms_content_protection@atomic.html
* igt@kms_cursor_crc@pipe-b-cursor-512x512-offscreen:
- shard-skl: NOTRUN -> [SKIP][49] ([fdo#109271]) +91 similar issues
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-skl9/igt@kms_cursor_crc@pipe-b-cursor-512x512-offscreen.html
* igt@kms_cursor_crc@pipe-c-cursor-32x32-offscreen:
- shard-tglb: NOTRUN -> [SKIP][50] ([i915#3319]) +1 similar issue
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-tglb5/igt@kms_cursor_crc@pipe-c-cursor-32x32-offscreen.html
* igt@kms_cursor_crc@pipe-c-cursor-512x512-rapid-movement:
- shard-tglb: NOTRUN -> [SKIP][51] ([fdo#109279] / [i915#3359])
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-tglb5/igt@kms_cursor_crc@pipe-c-cursor-512x512-rapid-movement.html
- shard-iclb: NOTRUN -> [SKIP][52] ([fdo#109278] / [fdo#109279])
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-iclb3/igt@kms_cursor_crc@pipe-c-cursor-512x512-rapid-movement.html
* igt@kms_cursor_crc@pipe-d-cursor-128x128-random:
- shard-iclb: NOTRUN -> [SKIP][53] ([fdo#109278]) +4 similar issues
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-iclb3/igt@kms_cursor_crc@pipe-d-cursor-128x128-random.html
* igt@kms_cursor_legacy@pipe-d-single-bo:
- shard-kbl: NOTRUN -> [SKIP][54] ([fdo#109271] / [i915#533]) +2 similar issues
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-kbl1/igt@kms_cursor_legacy@pipe-d-single-bo.html
- shard-skl: NOTRUN -> [SKIP][55] ([fdo#109271] / [i915#533])
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-skl8/igt@kms_cursor_legacy@pipe-d-single-bo.html
* igt@kms_flip@2x-plain-flip-interruptible:
- shard-tglb: NOTRUN -> [SKIP][56] ([fdo#109274] / [fdo#111825]) +2 similar issues
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-tglb5/igt@kms_flip@2x-plain-flip-interruptible.html
* igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a1:
- shard-glk: [PASS][57] -> [FAIL][58] ([i915#79])
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-glk9/igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a1.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-glk9/igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a1.html
* igt@kms_flip@flip-vs-suspend@a-dp1:
- shard-apl: [PASS][59] -> [DMESG-WARN][60] ([i915#180] / [i915#1982])
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-apl7/igt@kms_flip@flip-vs-suspend@a-dp1.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-apl8/igt@kms_flip@flip-vs-suspend@a-dp1.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling:
- shard-glk: [PASS][61] -> [FAIL][62] ([i915#4911])
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-glk7/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-glk8/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-wc:
- shard-kbl: NOTRUN -> [SKIP][63] ([fdo#109271]) +132 similar issues
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-kbl3/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-wc:
- shard-tglb: NOTRUN -> [SKIP][64] ([fdo#109280] / [fdo#111825]) +6 similar issues
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-tglb5/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-gtt:
- shard-iclb: NOTRUN -> [SKIP][65] ([fdo#109280]) +1 similar issue
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-iclb3/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-gtt.html
* igt@kms_hdr@bpc-switch-dpms:
- shard-skl: [PASS][66] -> [FAIL][67] ([i915#1188]) +1 similar issue
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-skl7/igt@kms_hdr@bpc-switch-dpms.html
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-skl7/igt@kms_hdr@bpc-switch-dpms.html
* igt@kms_hdr@static-toggle-dpms:
- shard-tglb: NOTRUN -> [SKIP][68] ([i915#1187])
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-tglb5/igt@kms_hdr@static-toggle-dpms.html
- shard-iclb: NOTRUN -> [SKIP][69] ([i915#1187])
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-iclb3/igt@kms_hdr@static-toggle-dpms.html
* igt@kms_pipe_crc_basic@nonblocking-crc-pipe-d-frame-sequence:
- shard-apl: NOTRUN -> [SKIP][70] ([fdo#109271] / [i915#533])
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-apl1/igt@kms_pipe_crc_basic@nonblocking-crc-pipe-d-frame-sequence.html
* igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b-planes:
- shard-kbl: [PASS][71] -> [DMESG-WARN][72] ([i915#180]) +5 similar issues
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-kbl7/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b-planes.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-kbl6/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b-planes.html
* igt@kms_plane_alpha_blend@pipe-a-alpha-7efc:
- shard-skl: NOTRUN -> [FAIL][73] ([fdo#108145] / [i915#265]) +2 similar issues
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-skl9/igt@kms_plane_alpha_blend@pipe-a-alpha-7efc.html
* igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max:
- shard-apl: NOTRUN -> [FAIL][74] ([fdo#108145] / [i915#265])
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-apl1/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max.html
* igt@kms_plane_alpha_blend@pipe-b-alpha-basic:
- shard-kbl: NOTRUN -> [FAIL][75] ([fdo#108145] / [i915#265]) +1 similar issue
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-kbl1/igt@kms_plane_alpha_blend@pipe-b-alpha-basic.html
* igt@kms_plane_alpha_blend@pipe-c-alpha-transparent-fb:
- shard-apl: NOTRUN -> [FAIL][76] ([i915#265]) +1 similar issue
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-apl3/igt@kms_plane_alpha_blend@pipe-c-alpha-transparent-fb.html
- shard-kbl: NOTRUN -> [FAIL][77] ([i915#265])
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-kbl4/igt@kms_plane_alpha_blend@pipe-c-alpha-transparent-fb.html
* igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min:
- shard-skl: [PASS][78] -> [FAIL][79] ([fdo#108145] / [i915#265])
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-skl10/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min.html
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-skl1/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min.html
* igt@kms_plane_cursor@pipe-d-viewport-size-128:
- shard-apl: NOTRUN -> [SKIP][80] ([fdo#109271]) +65 similar issues
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-apl1/igt@kms_plane_cursor@pipe-d-viewport-size-128.html
* igt@kms_plane_lowres@pipe-d-tiling-x:
- shard-tglb: NOTRUN -> [SKIP][81] ([i915#3536])
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-tglb5/igt@kms_plane_lowres@pipe-d-tiling-x.html
* igt@kms_psr2_sf@overlay-plane-update-continuous-sf:
- shard-tglb: NOTRUN -> [SKIP][82] ([i915#2920])
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-tglb5/igt@kms_psr2_sf@overlay-plane-update-continuous-sf.html
* igt@kms_psr2_sf@plane-move-sf-dmg-area:
- shard-kbl: NOTRUN -> [SKIP][83] ([fdo#109271] / [i915#658]) +1 similar issue
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-kbl1/igt@kms_psr2_sf@plane-move-sf-dmg-area.html
- shard-skl: NOTRUN -> [SKIP][84] ([fdo#109271] / [i915#658])
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-skl8/igt@kms_psr2_sf@plane-move-sf-dmg-area.html
* igt@kms_setmode@basic:
- shard-glk: [PASS][85] -> [FAIL][86] ([i915#31])
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-glk4/igt@kms_setmode@basic.html
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-glk2/igt@kms_setmode@basic.html
* igt@kms_vblank@pipe-b-ts-continuation-suspend:
- shard-kbl: NOTRUN -> [DMESG-WARN][87] ([i915#180])
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-kbl4/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
* igt@kms_writeback@writeback-fb-id:
- shard-apl: NOTRUN -> [SKIP][88] ([fdo#109271] / [i915#2437]) +1 similar issue
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-apl3/igt@kms_writeback@writeback-fb-id.html
- shard-kbl: NOTRUN -> [SKIP][89] ([fdo#109271] / [i915#2437]) +1 similar issue
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-kbl4/igt@kms_writeback@writeback-fb-id.html
- shard-tglb: NOTRUN -> [SKIP][90] ([i915#2437])
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-tglb5/igt@kms_writeback@writeback-fb-id.html
* igt@perf@polling-parameterized:
- shard-glk: [PASS][91] -> [FAIL][92] ([i915#1542])
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-glk3/igt@perf@polling-parameterized.html
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-glk9/igt@perf@polling-parameterized.html
* igt@prime_nv_api@nv_i915_import_twice_check_flink_name:
- shard-tglb: NOTRUN -> [SKIP][93] ([fdo#109291])
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-tglb5/igt@prime_nv_api@nv_i915_import_twice_check_flink_name.html
* igt@sysfs_clients@sema-10:
- shard-tglb: NOTRUN -> [SKIP][94] ([i915#2994])
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-tglb5/igt@sysfs_clients@sema-10.html
- shard-kbl: NOTRUN -> [SKIP][95] ([fdo#109271] / [i915#2994]) +1 similar issue
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-kbl4/igt@sysfs_clients@sema-10.html
- shard-apl: NOTRUN -> [SKIP][96] ([fdo#109271] / [i915#2994])
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-apl3/igt@sysfs_clients@sema-10.html
* igt@sysfs_clients@split-50:
- shard-skl: NOTRUN -> [SKIP][97] ([fdo#109271] / [i915#2994])
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-skl9/igt@sysfs_clients@split-50.html
* igt@sysfs_preempt_timeout@timeout@rcs0:
- shard-skl: [PASS][98] -> [FAIL][99] ([i915#3259])
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-skl8/igt@sysfs_preempt_timeout@timeout@rcs0.html
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-skl5/igt@sysfs_preempt_timeout@timeout@rcs0.html
#### Possible fixes ####
* igt@gem_eio@in-flight-1us:
- shard-tglb: [TIMEOUT][100] ([i915#3063]) -> [PASS][101]
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-tglb1/igt@gem_eio@in-flight-1us.html
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-tglb1/igt@gem_eio@in-flight-1us.html
* igt@gem_eio@unwedge-stress:
- shard-tglb: [TIMEOUT][102] ([i915#3063] / [i915#3648]) -> [PASS][103]
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-tglb7/igt@gem_eio@unwedge-stress.html
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-tglb7/igt@gem_eio@unwedge-stress.html
* igt@gem_exec_balancer@parallel-out-fence:
- shard-iclb: [SKIP][104] ([i915#4525]) -> [PASS][105]
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-iclb3/igt@gem_exec_balancer@parallel-out-fence.html
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-iclb2/igt@gem_exec_balancer@parallel-out-fence.html
* igt@gem_exec_fair@basic-none@vecs0:
- shard-kbl: [FAIL][106] ([i915#2842]) -> [PASS][107] +1 similar issue
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-kbl3/igt@gem_exec_fair@basic-none@vecs0.html
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-kbl7/igt@gem_exec_fair@basic-none@vecs0.html
- shard-apl: [FAIL][108] ([i915#2842]) -> [PASS][109]
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-apl4/igt@gem_exec_fair@basic-none@vecs0.html
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-apl1/igt@gem_exec_fair@basic-none@vecs0.html
* igt@gem_exec_fair@basic-pace@rcs0:
- shard-iclb: [FAIL][110] ([i915#2842]) -> [PASS][111]
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-iclb8/igt@gem_exec_fair@basic-pace@rcs0.html
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-iclb5/igt@gem_exec_fair@basic-pace@rcs0.html
* igt@gem_exec_fair@basic-throttle@rcs0:
- shard-iclb: [FAIL][112] ([i915#2849]) -> [PASS][113]
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-iclb5/igt@gem_exec_fair@basic-throttle@rcs0.html
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-iclb6/igt@gem_exec_fair@basic-throttle@rcs0.html
* igt@i915_suspend@fence-restore-tiled2untiled:
- shard-apl: [DMESG-WARN][114] ([i915#180]) -> [PASS][115] +2 similar issues
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-apl3/igt@i915_suspend@fence-restore-tiled2untiled.html
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-apl6/igt@i915_suspend@fence-restore-tiled2untiled.html
* igt@kms_big_fb@y-tiled-32bpp-rotate-0:
- shard-glk: [DMESG-WARN][116] ([i915#118]) -> [PASS][117]
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-glk2/igt@kms_big_fb@y-tiled-32bpp-rotate-0.html
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-glk9/igt@kms_big_fb@y-tiled-32bpp-rotate-0.html
* igt@kms_cursor_legacy@flip-vs-cursor-toggle:
- shard-iclb: [FAIL][118] ([i915#2346]) -> [PASS][119]
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-iclb7/igt@kms_cursor_legacy@flip-vs-cursor-toggle.html
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-iclb1/igt@kms_cursor_legacy@flip-vs-cursor-toggle.html
* igt@kms_fbcon_fbt@fbc-suspend:
- shard-apl: [INCOMPLETE][120] ([i915#180]) -> [PASS][121]
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-apl2/igt@kms_fbcon_fbt@fbc-suspend.html
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-apl3/igt@kms_fbcon_fbt@fbc-suspend.html
- shard-kbl: [INCOMPLETE][122] ([i915#180] / [i915#636]) -> [PASS][123]
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-kbl4/igt@kms_fbcon_fbt@fbc-suspend.html
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-kbl4/igt@kms_fbcon_fbt@fbc-suspend.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a2:
- shard-glk: [FAIL][124] ([i915#79]) -> [PASS][125]
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-glk9/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a2.html
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-glk5/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a2.html
* igt@kms_flip@flip-vs-expired-vblank@a-edp1:
- shard-skl: [FAIL][126] ([i915#79]) -> [PASS][127] +1 similar issue
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-skl9/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-skl4/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
* igt@kms_flip@flip-vs-suspend@c-dp1:
- shard-kbl: [DMESG-WARN][128] ([i915#180]) -> [PASS][129] +4 similar issues
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-kbl6/igt@kms_flip@flip-vs-suspend@c-dp1.html
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-kbl3/igt@kms_flip@flip-vs-suspend@c-dp1.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling:
- shard-glk: [FAIL][130] ([i915#4911]) -> [PASS][131]
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-glk8/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling.html
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-glk1/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling.html
* igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
- shard-skl: [FAIL][132] ([fdo#108145] / [i915#265]) -> [PASS][133] +1 similar issue
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-skl8/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-skl10/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
* igt@kms_psr@psr2_no_drrs:
- shard-iclb: [SKIP][134] ([fdo#109441]) -> [PASS][135] +4 similar issues
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-iclb1/igt@kms_psr@psr2_no_drrs.html
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-iclb2/igt@kms_psr@psr2_no_drrs.html
* igt@kms_vblank@pipe-a-ts-continuation-suspend:
- shard-kbl: [DMESG-WARN][136] ([i915#180] / [i915#295]) -> [PASS][137]
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-kbl6/igt@kms_vblank@pipe-a-ts-continuation-suspend.html
[137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/shard-kbl3/igt@kms_vblank@pipe-a-ts-continuation-suspend.html
#### Warnings ####
* igt@gem_exec_balancer@parallel-ordering:
- shard-iclb: [SKIP][138] ([i915#4525]) -> [FAIL][139] ([i915#4916])
[138]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11129/shard-iclb5/igt@gem_exec_balancer@parallel-ordering.html
[139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwor
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_22082/index.html
[-- Attachment #2: Type: text/html, Size: 33537 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2] drm/edid: Support type 7 timings
2022-01-23 19:19 ` Yaroslav Bolyukin
(?)
@ 2022-01-25 7:02 ` Jani Nikula
-1 siblings, 0 replies; 16+ messages in thread
From: Jani Nikula @ 2022-01-25 7:02 UTC (permalink / raw)
To: Yaroslav Bolyukin, linux-kernel, dri-devel
Cc: David Airlie, intel-gfx, Thomas Zimmermann, Yaroslav Bolyukin
On Sun, 23 Jan 2022, Yaroslav Bolyukin <iam@lach.pw> wrote:
> Per VESA DisplayID Standard v2.0: Type VII Timing – Detailed Timing Data
>
> Definitions were already provided as type I, but not used
>
> Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/drm_edid.c | 12 ++++++++----
> 1 file changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index 12893e7be..5f2ae5bfa 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -5405,7 +5405,8 @@ u32 drm_add_display_info(struct drm_connector *connector, const struct edid *edi
> }
>
> static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *dev,
> - struct displayid_detailed_timings_1 *timings)
> + struct displayid_detailed_timings_1 *timings,
> + bool type_7)
> {
> struct drm_display_mode *mode;
> unsigned pixel_clock = (timings->pixel_clock[0] |
> @@ -5426,7 +5427,8 @@ static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *d
> if (!mode)
> return NULL;
>
> - mode->clock = pixel_clock * 10;
> + /* resolution is kHz for type VII, and 10 kHz for type I */
> + mode->clock = type_7 ? pixel_clock : pixel_clock * 10;
> mode->hdisplay = hactive;
> mode->hsync_start = mode->hdisplay + hsync;
> mode->hsync_end = mode->hsync_start + hsync_width;
> @@ -5457,6 +5459,7 @@ static int add_displayid_detailed_1_modes(struct drm_connector *connector,
> int num_timings;
> struct drm_display_mode *newmode;
> int num_modes = 0;
> + bool type_7 = block->tag == DATA_BLOCK_2_TYPE_7_DETAILED_TIMING;
> /* blocks must be multiple of 20 bytes length */
> if (block->num_bytes % 20)
> return 0;
> @@ -5465,7 +5468,7 @@ static int add_displayid_detailed_1_modes(struct drm_connector *connector,
> for (i = 0; i < num_timings; i++) {
> struct displayid_detailed_timings_1 *timings = &det->timings[i];
>
> - newmode = drm_mode_displayid_detailed(connector->dev, timings);
> + newmode = drm_mode_displayid_detailed(connector->dev, timings, type_7);
> if (!newmode)
> continue;
>
> @@ -5484,7 +5487,8 @@ static int add_displayid_detailed_modes(struct drm_connector *connector,
>
> displayid_iter_edid_begin(edid, &iter);
> displayid_iter_for_each(block, &iter) {
> - if (block->tag == DATA_BLOCK_TYPE_1_DETAILED_TIMING)
> + if (block->tag == DATA_BLOCK_TYPE_1_DETAILED_TIMING ||
> + block->tag == DATA_BLOCK_2_TYPE_7_DETAILED_TIMING)
> num_modes += add_displayid_detailed_1_modes(connector, block);
> }
> displayid_iter_end(&iter);
>
> base-commit: 99613159ad749543621da8238acf1a122880144e
--
Jani Nikula, Intel Open Source Graphics Center
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Intel-gfx] [PATCH v2] drm/edid: Support type 7 timings
@ 2022-01-25 7:02 ` Jani Nikula
0 siblings, 0 replies; 16+ messages in thread
From: Jani Nikula @ 2022-01-25 7:02 UTC (permalink / raw)
To: Yaroslav Bolyukin, linux-kernel, dri-devel
Cc: David Airlie, intel-gfx, Maxime Ripard, Thomas Zimmermann,
Yaroslav Bolyukin
On Sun, 23 Jan 2022, Yaroslav Bolyukin <iam@lach.pw> wrote:
> Per VESA DisplayID Standard v2.0: Type VII Timing – Detailed Timing Data
>
> Definitions were already provided as type I, but not used
>
> Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/drm_edid.c | 12 ++++++++----
> 1 file changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index 12893e7be..5f2ae5bfa 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -5405,7 +5405,8 @@ u32 drm_add_display_info(struct drm_connector *connector, const struct edid *edi
> }
>
> static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *dev,
> - struct displayid_detailed_timings_1 *timings)
> + struct displayid_detailed_timings_1 *timings,
> + bool type_7)
> {
> struct drm_display_mode *mode;
> unsigned pixel_clock = (timings->pixel_clock[0] |
> @@ -5426,7 +5427,8 @@ static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *d
> if (!mode)
> return NULL;
>
> - mode->clock = pixel_clock * 10;
> + /* resolution is kHz for type VII, and 10 kHz for type I */
> + mode->clock = type_7 ? pixel_clock : pixel_clock * 10;
> mode->hdisplay = hactive;
> mode->hsync_start = mode->hdisplay + hsync;
> mode->hsync_end = mode->hsync_start + hsync_width;
> @@ -5457,6 +5459,7 @@ static int add_displayid_detailed_1_modes(struct drm_connector *connector,
> int num_timings;
> struct drm_display_mode *newmode;
> int num_modes = 0;
> + bool type_7 = block->tag == DATA_BLOCK_2_TYPE_7_DETAILED_TIMING;
> /* blocks must be multiple of 20 bytes length */
> if (block->num_bytes % 20)
> return 0;
> @@ -5465,7 +5468,7 @@ static int add_displayid_detailed_1_modes(struct drm_connector *connector,
> for (i = 0; i < num_timings; i++) {
> struct displayid_detailed_timings_1 *timings = &det->timings[i];
>
> - newmode = drm_mode_displayid_detailed(connector->dev, timings);
> + newmode = drm_mode_displayid_detailed(connector->dev, timings, type_7);
> if (!newmode)
> continue;
>
> @@ -5484,7 +5487,8 @@ static int add_displayid_detailed_modes(struct drm_connector *connector,
>
> displayid_iter_edid_begin(edid, &iter);
> displayid_iter_for_each(block, &iter) {
> - if (block->tag == DATA_BLOCK_TYPE_1_DETAILED_TIMING)
> + if (block->tag == DATA_BLOCK_TYPE_1_DETAILED_TIMING ||
> + block->tag == DATA_BLOCK_2_TYPE_7_DETAILED_TIMING)
> num_modes += add_displayid_detailed_1_modes(connector, block);
> }
> displayid_iter_end(&iter);
>
> base-commit: 99613159ad749543621da8238acf1a122880144e
--
Jani Nikula, Intel Open Source Graphics Center
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2] drm/edid: Support type 7 timings
@ 2022-01-25 7:02 ` Jani Nikula
0 siblings, 0 replies; 16+ messages in thread
From: Jani Nikula @ 2022-01-25 7:02 UTC (permalink / raw)
To: Yaroslav Bolyukin, linux-kernel, dri-devel
Cc: intel-gfx, Daniel Vetter, David Airlie, Thomas Zimmermann,
Maxime Ripard, Maarten Lankhorst, Yaroslav Bolyukin
On Sun, 23 Jan 2022, Yaroslav Bolyukin <iam@lach.pw> wrote:
> Per VESA DisplayID Standard v2.0: Type VII Timing – Detailed Timing Data
>
> Definitions were already provided as type I, but not used
>
> Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> ---
> drivers/gpu/drm/drm_edid.c | 12 ++++++++----
> 1 file changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index 12893e7be..5f2ae5bfa 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -5405,7 +5405,8 @@ u32 drm_add_display_info(struct drm_connector *connector, const struct edid *edi
> }
>
> static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *dev,
> - struct displayid_detailed_timings_1 *timings)
> + struct displayid_detailed_timings_1 *timings,
> + bool type_7)
> {
> struct drm_display_mode *mode;
> unsigned pixel_clock = (timings->pixel_clock[0] |
> @@ -5426,7 +5427,8 @@ static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *d
> if (!mode)
> return NULL;
>
> - mode->clock = pixel_clock * 10;
> + /* resolution is kHz for type VII, and 10 kHz for type I */
> + mode->clock = type_7 ? pixel_clock : pixel_clock * 10;
> mode->hdisplay = hactive;
> mode->hsync_start = mode->hdisplay + hsync;
> mode->hsync_end = mode->hsync_start + hsync_width;
> @@ -5457,6 +5459,7 @@ static int add_displayid_detailed_1_modes(struct drm_connector *connector,
> int num_timings;
> struct drm_display_mode *newmode;
> int num_modes = 0;
> + bool type_7 = block->tag == DATA_BLOCK_2_TYPE_7_DETAILED_TIMING;
> /* blocks must be multiple of 20 bytes length */
> if (block->num_bytes % 20)
> return 0;
> @@ -5465,7 +5468,7 @@ static int add_displayid_detailed_1_modes(struct drm_connector *connector,
> for (i = 0; i < num_timings; i++) {
> struct displayid_detailed_timings_1 *timings = &det->timings[i];
>
> - newmode = drm_mode_displayid_detailed(connector->dev, timings);
> + newmode = drm_mode_displayid_detailed(connector->dev, timings, type_7);
> if (!newmode)
> continue;
>
> @@ -5484,7 +5487,8 @@ static int add_displayid_detailed_modes(struct drm_connector *connector,
>
> displayid_iter_edid_begin(edid, &iter);
> displayid_iter_for_each(block, &iter) {
> - if (block->tag == DATA_BLOCK_TYPE_1_DETAILED_TIMING)
> + if (block->tag == DATA_BLOCK_TYPE_1_DETAILED_TIMING ||
> + block->tag == DATA_BLOCK_2_TYPE_7_DETAILED_TIMING)
> num_modes += add_displayid_detailed_1_modes(connector, block);
> }
> displayid_iter_end(&iter);
>
> base-commit: 99613159ad749543621da8238acf1a122880144e
--
Jani Nikula, Intel Open Source Graphics Center
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2] drm/edid: Support type 7 timings
2022-01-25 7:02 ` [Intel-gfx] " Jani Nikula
(?)
@ 2022-01-25 12:35 ` Jani Nikula
-1 siblings, 0 replies; 16+ messages in thread
From: Jani Nikula @ 2022-01-25 12:35 UTC (permalink / raw)
To: Yaroslav Bolyukin, linux-kernel, dri-devel
Cc: David Airlie, intel-gfx, Thomas Zimmermann, Yaroslav Bolyukin
On Tue, 25 Jan 2022, Jani Nikula <jani.nikula@linux.intel.com> wrote:
> On Sun, 23 Jan 2022, Yaroslav Bolyukin <iam@lach.pw> wrote:
>> Per VESA DisplayID Standard v2.0: Type VII Timing – Detailed Timing Data
>>
>> Definitions were already provided as type I, but not used
>>
>> Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>
>
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
And pushed to drm-misc-next, thanks for the patch.
BR,
Jani.
>
>> ---
>> drivers/gpu/drm/drm_edid.c | 12 ++++++++----
>> 1 file changed, 8 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
>> index 12893e7be..5f2ae5bfa 100644
>> --- a/drivers/gpu/drm/drm_edid.c
>> +++ b/drivers/gpu/drm/drm_edid.c
>> @@ -5405,7 +5405,8 @@ u32 drm_add_display_info(struct drm_connector *connector, const struct edid *edi
>> }
>>
>> static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *dev,
>> - struct displayid_detailed_timings_1 *timings)
>> + struct displayid_detailed_timings_1 *timings,
>> + bool type_7)
>> {
>> struct drm_display_mode *mode;
>> unsigned pixel_clock = (timings->pixel_clock[0] |
>> @@ -5426,7 +5427,8 @@ static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *d
>> if (!mode)
>> return NULL;
>>
>> - mode->clock = pixel_clock * 10;
>> + /* resolution is kHz for type VII, and 10 kHz for type I */
>> + mode->clock = type_7 ? pixel_clock : pixel_clock * 10;
>> mode->hdisplay = hactive;
>> mode->hsync_start = mode->hdisplay + hsync;
>> mode->hsync_end = mode->hsync_start + hsync_width;
>> @@ -5457,6 +5459,7 @@ static int add_displayid_detailed_1_modes(struct drm_connector *connector,
>> int num_timings;
>> struct drm_display_mode *newmode;
>> int num_modes = 0;
>> + bool type_7 = block->tag == DATA_BLOCK_2_TYPE_7_DETAILED_TIMING;
>> /* blocks must be multiple of 20 bytes length */
>> if (block->num_bytes % 20)
>> return 0;
>> @@ -5465,7 +5468,7 @@ static int add_displayid_detailed_1_modes(struct drm_connector *connector,
>> for (i = 0; i < num_timings; i++) {
>> struct displayid_detailed_timings_1 *timings = &det->timings[i];
>>
>> - newmode = drm_mode_displayid_detailed(connector->dev, timings);
>> + newmode = drm_mode_displayid_detailed(connector->dev, timings, type_7);
>> if (!newmode)
>> continue;
>>
>> @@ -5484,7 +5487,8 @@ static int add_displayid_detailed_modes(struct drm_connector *connector,
>>
>> displayid_iter_edid_begin(edid, &iter);
>> displayid_iter_for_each(block, &iter) {
>> - if (block->tag == DATA_BLOCK_TYPE_1_DETAILED_TIMING)
>> + if (block->tag == DATA_BLOCK_TYPE_1_DETAILED_TIMING ||
>> + block->tag == DATA_BLOCK_2_TYPE_7_DETAILED_TIMING)
>> num_modes += add_displayid_detailed_1_modes(connector, block);
>> }
>> displayid_iter_end(&iter);
>>
>> base-commit: 99613159ad749543621da8238acf1a122880144e
--
Jani Nikula, Intel Open Source Graphics Center
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Intel-gfx] [PATCH v2] drm/edid: Support type 7 timings
@ 2022-01-25 12:35 ` Jani Nikula
0 siblings, 0 replies; 16+ messages in thread
From: Jani Nikula @ 2022-01-25 12:35 UTC (permalink / raw)
To: Yaroslav Bolyukin, linux-kernel, dri-devel
Cc: David Airlie, intel-gfx, Maxime Ripard, Thomas Zimmermann,
Yaroslav Bolyukin
On Tue, 25 Jan 2022, Jani Nikula <jani.nikula@linux.intel.com> wrote:
> On Sun, 23 Jan 2022, Yaroslav Bolyukin <iam@lach.pw> wrote:
>> Per VESA DisplayID Standard v2.0: Type VII Timing – Detailed Timing Data
>>
>> Definitions were already provided as type I, but not used
>>
>> Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>
>
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
And pushed to drm-misc-next, thanks for the patch.
BR,
Jani.
>
>> ---
>> drivers/gpu/drm/drm_edid.c | 12 ++++++++----
>> 1 file changed, 8 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
>> index 12893e7be..5f2ae5bfa 100644
>> --- a/drivers/gpu/drm/drm_edid.c
>> +++ b/drivers/gpu/drm/drm_edid.c
>> @@ -5405,7 +5405,8 @@ u32 drm_add_display_info(struct drm_connector *connector, const struct edid *edi
>> }
>>
>> static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *dev,
>> - struct displayid_detailed_timings_1 *timings)
>> + struct displayid_detailed_timings_1 *timings,
>> + bool type_7)
>> {
>> struct drm_display_mode *mode;
>> unsigned pixel_clock = (timings->pixel_clock[0] |
>> @@ -5426,7 +5427,8 @@ static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *d
>> if (!mode)
>> return NULL;
>>
>> - mode->clock = pixel_clock * 10;
>> + /* resolution is kHz for type VII, and 10 kHz for type I */
>> + mode->clock = type_7 ? pixel_clock : pixel_clock * 10;
>> mode->hdisplay = hactive;
>> mode->hsync_start = mode->hdisplay + hsync;
>> mode->hsync_end = mode->hsync_start + hsync_width;
>> @@ -5457,6 +5459,7 @@ static int add_displayid_detailed_1_modes(struct drm_connector *connector,
>> int num_timings;
>> struct drm_display_mode *newmode;
>> int num_modes = 0;
>> + bool type_7 = block->tag == DATA_BLOCK_2_TYPE_7_DETAILED_TIMING;
>> /* blocks must be multiple of 20 bytes length */
>> if (block->num_bytes % 20)
>> return 0;
>> @@ -5465,7 +5468,7 @@ static int add_displayid_detailed_1_modes(struct drm_connector *connector,
>> for (i = 0; i < num_timings; i++) {
>> struct displayid_detailed_timings_1 *timings = &det->timings[i];
>>
>> - newmode = drm_mode_displayid_detailed(connector->dev, timings);
>> + newmode = drm_mode_displayid_detailed(connector->dev, timings, type_7);
>> if (!newmode)
>> continue;
>>
>> @@ -5484,7 +5487,8 @@ static int add_displayid_detailed_modes(struct drm_connector *connector,
>>
>> displayid_iter_edid_begin(edid, &iter);
>> displayid_iter_for_each(block, &iter) {
>> - if (block->tag == DATA_BLOCK_TYPE_1_DETAILED_TIMING)
>> + if (block->tag == DATA_BLOCK_TYPE_1_DETAILED_TIMING ||
>> + block->tag == DATA_BLOCK_2_TYPE_7_DETAILED_TIMING)
>> num_modes += add_displayid_detailed_1_modes(connector, block);
>> }
>> displayid_iter_end(&iter);
>>
>> base-commit: 99613159ad749543621da8238acf1a122880144e
--
Jani Nikula, Intel Open Source Graphics Center
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2] drm/edid: Support type 7 timings
@ 2022-01-25 12:35 ` Jani Nikula
0 siblings, 0 replies; 16+ messages in thread
From: Jani Nikula @ 2022-01-25 12:35 UTC (permalink / raw)
To: Yaroslav Bolyukin, linux-kernel, dri-devel
Cc: intel-gfx, Daniel Vetter, David Airlie, Thomas Zimmermann,
Maxime Ripard, Maarten Lankhorst, Yaroslav Bolyukin
On Tue, 25 Jan 2022, Jani Nikula <jani.nikula@linux.intel.com> wrote:
> On Sun, 23 Jan 2022, Yaroslav Bolyukin <iam@lach.pw> wrote:
>> Per VESA DisplayID Standard v2.0: Type VII Timing – Detailed Timing Data
>>
>> Definitions were already provided as type I, but not used
>>
>> Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>
>
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
And pushed to drm-misc-next, thanks for the patch.
BR,
Jani.
>
>> ---
>> drivers/gpu/drm/drm_edid.c | 12 ++++++++----
>> 1 file changed, 8 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
>> index 12893e7be..5f2ae5bfa 100644
>> --- a/drivers/gpu/drm/drm_edid.c
>> +++ b/drivers/gpu/drm/drm_edid.c
>> @@ -5405,7 +5405,8 @@ u32 drm_add_display_info(struct drm_connector *connector, const struct edid *edi
>> }
>>
>> static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *dev,
>> - struct displayid_detailed_timings_1 *timings)
>> + struct displayid_detailed_timings_1 *timings,
>> + bool type_7)
>> {
>> struct drm_display_mode *mode;
>> unsigned pixel_clock = (timings->pixel_clock[0] |
>> @@ -5426,7 +5427,8 @@ static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *d
>> if (!mode)
>> return NULL;
>>
>> - mode->clock = pixel_clock * 10;
>> + /* resolution is kHz for type VII, and 10 kHz for type I */
>> + mode->clock = type_7 ? pixel_clock : pixel_clock * 10;
>> mode->hdisplay = hactive;
>> mode->hsync_start = mode->hdisplay + hsync;
>> mode->hsync_end = mode->hsync_start + hsync_width;
>> @@ -5457,6 +5459,7 @@ static int add_displayid_detailed_1_modes(struct drm_connector *connector,
>> int num_timings;
>> struct drm_display_mode *newmode;
>> int num_modes = 0;
>> + bool type_7 = block->tag == DATA_BLOCK_2_TYPE_7_DETAILED_TIMING;
>> /* blocks must be multiple of 20 bytes length */
>> if (block->num_bytes % 20)
>> return 0;
>> @@ -5465,7 +5468,7 @@ static int add_displayid_detailed_1_modes(struct drm_connector *connector,
>> for (i = 0; i < num_timings; i++) {
>> struct displayid_detailed_timings_1 *timings = &det->timings[i];
>>
>> - newmode = drm_mode_displayid_detailed(connector->dev, timings);
>> + newmode = drm_mode_displayid_detailed(connector->dev, timings, type_7);
>> if (!newmode)
>> continue;
>>
>> @@ -5484,7 +5487,8 @@ static int add_displayid_detailed_modes(struct drm_connector *connector,
>>
>> displayid_iter_edid_begin(edid, &iter);
>> displayid_iter_for_each(block, &iter) {
>> - if (block->tag == DATA_BLOCK_TYPE_1_DETAILED_TIMING)
>> + if (block->tag == DATA_BLOCK_TYPE_1_DETAILED_TIMING ||
>> + block->tag == DATA_BLOCK_2_TYPE_7_DETAILED_TIMING)
>> num_modes += add_displayid_detailed_1_modes(connector, block);
>> }
>> displayid_iter_end(&iter);
>>
>> base-commit: 99613159ad749543621da8238acf1a122880144e
--
Jani Nikula, Intel Open Source Graphics Center
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2022-01-25 12:40 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-18 21:59 [PATCH] drm/edid: Support type 7 timings Yaroslav Bolyukin
2022-01-18 21:59 ` Yaroslav Bolyukin
2022-01-19 9:35 ` Jani Nikula
2022-01-19 9:35 ` Jani Nikula
2022-01-23 19:19 ` [PATCH v2] " Yaroslav Bolyukin
2022-01-23 19:19 ` [Intel-gfx] " Yaroslav Bolyukin
2022-01-23 19:19 ` Yaroslav Bolyukin
2022-01-25 7:02 ` Jani Nikula
2022-01-25 7:02 ` Jani Nikula
2022-01-25 7:02 ` [Intel-gfx] " Jani Nikula
2022-01-25 12:35 ` Jani Nikula
2022-01-25 12:35 ` Jani Nikula
2022-01-25 12:35 ` [Intel-gfx] " Jani Nikula
2022-01-24 21:06 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
2022-01-24 21:38 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-01-25 3:01 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
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.