* [PATCH 0/5] drm/i915/bios: Refactor ROM access
@ 2024-09-10 13:42 Ville Syrjala
2024-09-10 13:42 ` [PATCH 1/5] drm/i915/bios: Add some size checks to SPI VBT read Ville Syrjala
` (8 more replies)
0 siblings, 9 replies; 23+ messages in thread
From: Ville Syrjala @ 2024-09-10 13:42 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Unify the behaviour of the PCI ROM vs. SPI flash VBT
read codepaths, and relocate out the low level nuts details
from intel_bios.c into a new soc/intel_rom.c file.
Ville Syrjälä (5):
drm/i915/bios: Add some size checks to SPI VBT read
drm/i915/bios: Round PCI ROM VBT allocation to multiple of 4
drm/i915/bios: Extract intel_spi_read16()
drm/i915/bios: Extract vbt_signature[]
drm/i915/bios: Extract soc/intel_rom.c
drivers/gpu/drm/i915/Makefile | 3 +-
drivers/gpu/drm/i915/display/intel_bios.c | 141 ++++-----------
drivers/gpu/drm/i915/soc/intel_rom.c | 160 ++++++++++++++++++
drivers/gpu/drm/i915/soc/intel_rom.h | 25 +++
drivers/gpu/drm/xe/Makefile | 3 +-
.../xe/compat-i915-headers/soc/intel_rom.h | 6 +
6 files changed, 230 insertions(+), 108 deletions(-)
create mode 100644 drivers/gpu/drm/i915/soc/intel_rom.c
create mode 100644 drivers/gpu/drm/i915/soc/intel_rom.h
create mode 100644 drivers/gpu/drm/xe/compat-i915-headers/soc/intel_rom.h
--
2.44.2
^ permalink raw reply [flat|nested] 23+ messages in thread* [PATCH 1/5] drm/i915/bios: Add some size checks to SPI VBT read 2024-09-10 13:42 [PATCH 0/5] drm/i915/bios: Refactor ROM access Ville Syrjala @ 2024-09-10 13:42 ` Ville Syrjala 2024-09-12 11:56 ` Jani Nikula 2024-09-10 13:42 ` [PATCH 2/5] drm/i915/bios: Round PCI ROM VBT allocation to multiple of 4 Ville Syrjala ` (7 subsequent siblings) 8 siblings, 1 reply; 23+ messages in thread From: Ville Syrjala @ 2024-09-10 13:42 UTC (permalink / raw) To: intel-gfx; +Cc: intel-xe From: Ville Syrjälä <ville.syrjala@linux.intel.com> Unify the SPI vs. PCI ROM VBT read codepaths a bit by pulling some size overflow checks from the PCI side into the SPI side. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/i915/display/intel_bios.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c index cd32c9cd38a9..86b81fd23f58 100644 --- a/drivers/gpu/drm/i915/display/intel_bios.c +++ b/drivers/gpu/drm/i915/display/intel_bios.c @@ -3088,11 +3088,22 @@ static struct vbt_header *spi_oprom_get_vbt(struct intel_display *display, if (count >= oprom_size) goto err_not_found; + if (sizeof(struct vbt_header) > oprom_size - count) { + drm_dbg(display->drm, "VBT header incomplete\n"); + goto err_not_found; + } + /* Get VBT size and allocate space for the VBT */ vbt_size = intel_spi_read(&i915->uncore, found + offsetof(struct vbt_header, vbt_size)); vbt_size &= 0xffff; + if (vbt_size > oprom_size - count) { + drm_dbg(display->drm, + "VBT incomplete (vbt_size overflows)\n"); + goto err_not_found; + } + vbt = kzalloc(round_up(vbt_size, 4), GFP_KERNEL); if (!vbt) goto err_not_found; -- 2.44.2 ^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: [PATCH 1/5] drm/i915/bios: Add some size checks to SPI VBT read 2024-09-10 13:42 ` [PATCH 1/5] drm/i915/bios: Add some size checks to SPI VBT read Ville Syrjala @ 2024-09-12 11:56 ` Jani Nikula 0 siblings, 0 replies; 23+ messages in thread From: Jani Nikula @ 2024-09-12 11:56 UTC (permalink / raw) To: Ville Syrjala, intel-gfx; +Cc: intel-xe On Tue, 10 Sep 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Unify the SPI vs. PCI ROM VBT read codepaths a bit by > pulling some size overflow checks from the PCI side > into the SPI side. > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Jani Nikula <jani.nikula@intel.com> > --- > drivers/gpu/drm/i915/display/intel_bios.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c > index cd32c9cd38a9..86b81fd23f58 100644 > --- a/drivers/gpu/drm/i915/display/intel_bios.c > +++ b/drivers/gpu/drm/i915/display/intel_bios.c > @@ -3088,11 +3088,22 @@ static struct vbt_header *spi_oprom_get_vbt(struct intel_display *display, > if (count >= oprom_size) > goto err_not_found; > > + if (sizeof(struct vbt_header) > oprom_size - count) { > + drm_dbg(display->drm, "VBT header incomplete\n"); > + goto err_not_found; > + } > + > /* Get VBT size and allocate space for the VBT */ > vbt_size = intel_spi_read(&i915->uncore, > found + offsetof(struct vbt_header, vbt_size)); > vbt_size &= 0xffff; > > + if (vbt_size > oprom_size - count) { > + drm_dbg(display->drm, > + "VBT incomplete (vbt_size overflows)\n"); > + goto err_not_found; > + } > + > vbt = kzalloc(round_up(vbt_size, 4), GFP_KERNEL); > if (!vbt) > goto err_not_found; -- Jani Nikula, Intel ^ permalink raw reply [flat|nested] 23+ messages in thread
* [PATCH 2/5] drm/i915/bios: Round PCI ROM VBT allocation to multiple of 4 2024-09-10 13:42 [PATCH 0/5] drm/i915/bios: Refactor ROM access Ville Syrjala 2024-09-10 13:42 ` [PATCH 1/5] drm/i915/bios: Add some size checks to SPI VBT read Ville Syrjala @ 2024-09-10 13:42 ` Ville Syrjala 2024-09-12 11:57 ` Jani Nikula 2024-09-10 13:42 ` [PATCH 3/5] drm/i915/bios: Extract intel_spi_read16() Ville Syrjala ` (6 subsequent siblings) 8 siblings, 1 reply; 23+ messages in thread From: Ville Syrjala @ 2024-09-10 13:42 UTC (permalink / raw) To: intel-gfx; +Cc: intel-xe From: Ville Syrjälä <ville.syrjala@linux.intel.com> The SPI code rounds the VBT allocation to a multiple of four bytes (presumably because it reads the VBT 4 bytes at a time). Do the same for the PCI ROM side to eliminate pointless differences between the two codepaths. This will make no functional difference. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/i915/display/intel_bios.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c index 86b81fd23f58..cc4a4cc2bf3e 100644 --- a/drivers/gpu/drm/i915/display/intel_bios.c +++ b/drivers/gpu/drm/i915/display/intel_bios.c @@ -3166,7 +3166,7 @@ static struct vbt_header *oprom_get_vbt(struct intel_display *display, } /* The rest will be validated by intel_bios_is_valid_vbt() */ - vbt = kmalloc(vbt_size, GFP_KERNEL); + vbt = kmalloc(round_up(vbt_size, 4), GFP_KERNEL); if (!vbt) goto err_unmap_oprom; -- 2.44.2 ^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: [PATCH 2/5] drm/i915/bios: Round PCI ROM VBT allocation to multiple of 4 2024-09-10 13:42 ` [PATCH 2/5] drm/i915/bios: Round PCI ROM VBT allocation to multiple of 4 Ville Syrjala @ 2024-09-12 11:57 ` Jani Nikula 0 siblings, 0 replies; 23+ messages in thread From: Jani Nikula @ 2024-09-12 11:57 UTC (permalink / raw) To: Ville Syrjala, intel-gfx; +Cc: intel-xe On Tue, 10 Sep 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > The SPI code rounds the VBT allocation to a multiple of four bytes > (presumably because it reads the VBT 4 bytes at a time). Do the > same for the PCI ROM side to eliminate pointless differences between > the two codepaths. This will make no functional difference. > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Jani Nikula <jani.nikula@intel.com> > --- > drivers/gpu/drm/i915/display/intel_bios.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c > index 86b81fd23f58..cc4a4cc2bf3e 100644 > --- a/drivers/gpu/drm/i915/display/intel_bios.c > +++ b/drivers/gpu/drm/i915/display/intel_bios.c > @@ -3166,7 +3166,7 @@ static struct vbt_header *oprom_get_vbt(struct intel_display *display, > } > > /* The rest will be validated by intel_bios_is_valid_vbt() */ > - vbt = kmalloc(vbt_size, GFP_KERNEL); > + vbt = kmalloc(round_up(vbt_size, 4), GFP_KERNEL); > if (!vbt) > goto err_unmap_oprom; -- Jani Nikula, Intel ^ permalink raw reply [flat|nested] 23+ messages in thread
* [PATCH 3/5] drm/i915/bios: Extract intel_spi_read16() 2024-09-10 13:42 [PATCH 0/5] drm/i915/bios: Refactor ROM access Ville Syrjala 2024-09-10 13:42 ` [PATCH 1/5] drm/i915/bios: Add some size checks to SPI VBT read Ville Syrjala 2024-09-10 13:42 ` [PATCH 2/5] drm/i915/bios: Round PCI ROM VBT allocation to multiple of 4 Ville Syrjala @ 2024-09-10 13:42 ` Ville Syrjala 2024-09-12 12:02 ` Jani Nikula 2024-09-10 13:42 ` [PATCH 4/5] drm/i915/bios: Extract vbt_signature[] Ville Syrjala ` (5 subsequent siblings) 8 siblings, 1 reply; 23+ messages in thread From: Ville Syrjala @ 2024-09-10 13:42 UTC (permalink / raw) To: intel-gfx; +Cc: intel-xe From: Ville Syrjälä <ville.syrjala@linux.intel.com> The SPI VBT codepath only knows how to read 4 bytes at a time. So to read the 2 byte vbt_size it masks out the unwanted msbs. Hide that little implementation detail inside a new intel_spi_read16() helper. Alse rename the existing intel_spi_read() to intel_spi_read32() to make it clear what it does. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/i915/display/intel_bios.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c index cc4a4cc2bf3e..cbbda94c3dab 100644 --- a/drivers/gpu/drm/i915/display/intel_bios.c +++ b/drivers/gpu/drm/i915/display/intel_bios.c @@ -3053,13 +3053,18 @@ static struct vbt_header *firmware_get_vbt(struct intel_display *display, return vbt; } -static u32 intel_spi_read(struct intel_uncore *uncore, u32 offset) +static u32 intel_spi_read32(struct intel_uncore *uncore, u32 offset) { intel_uncore_write(uncore, PRIMARY_SPI_ADDRESS, offset); return intel_uncore_read(uncore, PRIMARY_SPI_TRIGGER); } +static u16 intel_spi_read16(struct intel_uncore *uncore, u32 offset) +{ + return intel_spi_read32(uncore, offset) & 0xffff; +} + static struct vbt_header *spi_oprom_get_vbt(struct intel_display *display, size_t *size) { @@ -3078,7 +3083,7 @@ static struct vbt_header *spi_oprom_get_vbt(struct intel_display *display, oprom_offset &= OROM_OFFSET_MASK; for (count = 0; count < oprom_size; count += 4) { - data = intel_spi_read(&i915->uncore, oprom_offset + count); + data = intel_spi_read32(&i915->uncore, oprom_offset + count); if (data == *((const u32 *)"$VBT")) { found = oprom_offset + count; break; @@ -3094,9 +3099,8 @@ static struct vbt_header *spi_oprom_get_vbt(struct intel_display *display, } /* Get VBT size and allocate space for the VBT */ - vbt_size = intel_spi_read(&i915->uncore, - found + offsetof(struct vbt_header, vbt_size)); - vbt_size &= 0xffff; + vbt_size = intel_spi_read16(&i915->uncore, + found + offsetof(struct vbt_header, vbt_size)); if (vbt_size > oprom_size - count) { drm_dbg(display->drm, @@ -3109,7 +3113,7 @@ static struct vbt_header *spi_oprom_get_vbt(struct intel_display *display, goto err_not_found; for (count = 0; count < vbt_size; count += 4) - *(vbt + store++) = intel_spi_read(&i915->uncore, found + count); + *(vbt + store++) = intel_spi_read32(&i915->uncore, found + count); if (!intel_bios_is_valid_vbt(display, vbt, vbt_size)) goto err_free_vbt; -- 2.44.2 ^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: [PATCH 3/5] drm/i915/bios: Extract intel_spi_read16() 2024-09-10 13:42 ` [PATCH 3/5] drm/i915/bios: Extract intel_spi_read16() Ville Syrjala @ 2024-09-12 12:02 ` Jani Nikula 2024-09-20 17:00 ` Ville Syrjälä 0 siblings, 1 reply; 23+ messages in thread From: Jani Nikula @ 2024-09-12 12:02 UTC (permalink / raw) To: Ville Syrjala, intel-gfx; +Cc: intel-xe On Tue, 10 Sep 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > The SPI VBT codepath only knows how to read 4 bytes at a time. > So to read the 2 byte vbt_size it masks out the unwanted msbs. > Hide that little implementation detail inside a new intel_spi_read16() > helper. Alse rename the existing intel_spi_read() to intel_spi_read32() > to make it clear what it does. > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > --- > drivers/gpu/drm/i915/display/intel_bios.c | 16 ++++++++++------ > 1 file changed, 10 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c > index cc4a4cc2bf3e..cbbda94c3dab 100644 > --- a/drivers/gpu/drm/i915/display/intel_bios.c > +++ b/drivers/gpu/drm/i915/display/intel_bios.c > @@ -3053,13 +3053,18 @@ static struct vbt_header *firmware_get_vbt(struct intel_display *display, > return vbt; > } > > -static u32 intel_spi_read(struct intel_uncore *uncore, u32 offset) > +static u32 intel_spi_read32(struct intel_uncore *uncore, u32 offset) > { > intel_uncore_write(uncore, PRIMARY_SPI_ADDRESS, offset); > > return intel_uncore_read(uncore, PRIMARY_SPI_TRIGGER); > } > > +static u16 intel_spi_read16(struct intel_uncore *uncore, u32 offset) > +{ > + return intel_spi_read32(uncore, offset) & 0xffff; > +} > + > static struct vbt_header *spi_oprom_get_vbt(struct intel_display *display, > size_t *size) > { > @@ -3078,7 +3083,7 @@ static struct vbt_header *spi_oprom_get_vbt(struct intel_display *display, > oprom_offset &= OROM_OFFSET_MASK; > > for (count = 0; count < oprom_size; count += 4) { > - data = intel_spi_read(&i915->uncore, oprom_offset + count); > + data = intel_spi_read32(&i915->uncore, oprom_offset + count); > if (data == *((const u32 *)"$VBT")) { > found = oprom_offset + count; > break; > @@ -3094,9 +3099,8 @@ static struct vbt_header *spi_oprom_get_vbt(struct intel_display *display, > } > > /* Get VBT size and allocate space for the VBT */ > - vbt_size = intel_spi_read(&i915->uncore, > - found + offsetof(struct vbt_header, vbt_size)); > - vbt_size &= 0xffff; > + vbt_size = intel_spi_read16(&i915->uncore, > + found + offsetof(struct vbt_header, vbt_size)); Pedantically if vbt_size was the last member of struct vbt_header this could read past the checked size, but it's not and meh. Also nothing to do with this change, apart from this hiding the detail. Still meh. Reviewed-by: Jani Nikula <jani.nikula@intel.com> > > if (vbt_size > oprom_size - count) { > drm_dbg(display->drm, > @@ -3109,7 +3113,7 @@ static struct vbt_header *spi_oprom_get_vbt(struct intel_display *display, > goto err_not_found; > > for (count = 0; count < vbt_size; count += 4) > - *(vbt + store++) = intel_spi_read(&i915->uncore, found + count); > + *(vbt + store++) = intel_spi_read32(&i915->uncore, found + count); > > if (!intel_bios_is_valid_vbt(display, vbt, vbt_size)) > goto err_free_vbt; -- Jani Nikula, Intel ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 3/5] drm/i915/bios: Extract intel_spi_read16() 2024-09-12 12:02 ` Jani Nikula @ 2024-09-20 17:00 ` Ville Syrjälä 0 siblings, 0 replies; 23+ messages in thread From: Ville Syrjälä @ 2024-09-20 17:00 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx, intel-xe On Thu, Sep 12, 2024 at 03:02:03PM +0300, Jani Nikula wrote: > On Tue, 10 Sep 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote: > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > > The SPI VBT codepath only knows how to read 4 bytes at a time. > > So to read the 2 byte vbt_size it masks out the unwanted msbs. > > Hide that little implementation detail inside a new intel_spi_read16() > > helper. Alse rename the existing intel_spi_read() to intel_spi_read32() > > to make it clear what it does. > > > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > > --- > > drivers/gpu/drm/i915/display/intel_bios.c | 16 ++++++++++------ > > 1 file changed, 10 insertions(+), 6 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c > > index cc4a4cc2bf3e..cbbda94c3dab 100644 > > --- a/drivers/gpu/drm/i915/display/intel_bios.c > > +++ b/drivers/gpu/drm/i915/display/intel_bios.c > > @@ -3053,13 +3053,18 @@ static struct vbt_header *firmware_get_vbt(struct intel_display *display, > > return vbt; > > } > > > > -static u32 intel_spi_read(struct intel_uncore *uncore, u32 offset) > > +static u32 intel_spi_read32(struct intel_uncore *uncore, u32 offset) > > { > > intel_uncore_write(uncore, PRIMARY_SPI_ADDRESS, offset); > > > > return intel_uncore_read(uncore, PRIMARY_SPI_TRIGGER); > > } > > > > +static u16 intel_spi_read16(struct intel_uncore *uncore, u32 offset) > > +{ > > + return intel_spi_read32(uncore, offset) & 0xffff; > > +} > > + > > static struct vbt_header *spi_oprom_get_vbt(struct intel_display *display, > > size_t *size) > > { > > @@ -3078,7 +3083,7 @@ static struct vbt_header *spi_oprom_get_vbt(struct intel_display *display, > > oprom_offset &= OROM_OFFSET_MASK; > > > > for (count = 0; count < oprom_size; count += 4) { > > - data = intel_spi_read(&i915->uncore, oprom_offset + count); > > + data = intel_spi_read32(&i915->uncore, oprom_offset + count); > > if (data == *((const u32 *)"$VBT")) { > > found = oprom_offset + count; > > break; > > @@ -3094,9 +3099,8 @@ static struct vbt_header *spi_oprom_get_vbt(struct intel_display *display, > > } > > > > /* Get VBT size and allocate space for the VBT */ > > - vbt_size = intel_spi_read(&i915->uncore, > > - found + offsetof(struct vbt_header, vbt_size)); > > - vbt_size &= 0xffff; > > + vbt_size = intel_spi_read16(&i915->uncore, > > + found + offsetof(struct vbt_header, vbt_size)); > > Pedantically if vbt_size was the last member of struct vbt_header this > could read past the checked size, but it's not and meh. Also nothing to > do with this change, apart from this hiding the detail. Still meh. This code raises a lot of other lingering questions as well: - do 8/16 bit accesses not work at all? - what happens on an unaligned 32bit access? > > Reviewed-by: Jani Nikula <jani.nikula@intel.com> > > > > > > if (vbt_size > oprom_size - count) { > > drm_dbg(display->drm, > > @@ -3109,7 +3113,7 @@ static struct vbt_header *spi_oprom_get_vbt(struct intel_display *display, > > goto err_not_found; > > > > for (count = 0; count < vbt_size; count += 4) > > - *(vbt + store++) = intel_spi_read(&i915->uncore, found + count); > > + *(vbt + store++) = intel_spi_read32(&i915->uncore, found + count); > > > > if (!intel_bios_is_valid_vbt(display, vbt, vbt_size)) > > goto err_free_vbt; > > -- > Jani Nikula, Intel -- Ville Syrjälä Intel ^ permalink raw reply [flat|nested] 23+ messages in thread
* [PATCH 4/5] drm/i915/bios: Extract vbt_signature[] 2024-09-10 13:42 [PATCH 0/5] drm/i915/bios: Refactor ROM access Ville Syrjala ` (2 preceding siblings ...) 2024-09-10 13:42 ` [PATCH 3/5] drm/i915/bios: Extract intel_spi_read16() Ville Syrjala @ 2024-09-10 13:42 ` Ville Syrjala 2024-09-12 12:15 ` Jani Nikula 2024-09-10 13:42 ` [PATCH 5/5] drm/i915/bios: Extract soc/intel_rom.c Ville Syrjala ` (4 subsequent siblings) 8 siblings, 1 reply; 23+ messages in thread From: Ville Syrjala @ 2024-09-10 13:42 UTC (permalink / raw) To: intel-gfx; +Cc: intel-xe From: Ville Syrjälä <ville.syrjala@linux.intel.com> Replace the three hand rolled "$VBT"s with a vbt_signature[] to avoid accidents. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/i915/display/intel_bios.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c index cbbda94c3dab..0b92b494117f 100644 --- a/drivers/gpu/drm/i915/display/intel_bios.c +++ b/drivers/gpu/drm/i915/display/intel_bios.c @@ -2964,6 +2964,8 @@ static const struct bdb_header *get_bdb_header(const struct vbt_header *vbt) return _vbt + vbt->bdb_offset; } +static const char vbt_signature[4] = "$VBT"; + /** * intel_bios_is_valid_vbt - does the given buffer contain a valid VBT * @display: display device @@ -2986,7 +2988,7 @@ bool intel_bios_is_valid_vbt(struct intel_display *display, return false; } - if (memcmp(vbt->signature, "$VBT", 4)) { + if (memcmp(vbt->signature, vbt_signature, sizeof(vbt_signature))) { drm_dbg_kms(display->drm, "VBT invalid signature\n"); return false; } @@ -3082,9 +3084,11 @@ static struct vbt_header *spi_oprom_get_vbt(struct intel_display *display, oprom_offset = intel_uncore_read(&i915->uncore, OROM_OFFSET); oprom_offset &= OROM_OFFSET_MASK; + BUILD_BUG_ON(sizeof(vbt_signature) != sizeof(u32)); + for (count = 0; count < oprom_size; count += 4) { data = intel_spi_read32(&i915->uncore, oprom_offset + count); - if (data == *((const u32 *)"$VBT")) { + if (data == *((const u32 *)vbt_signature)) { found = oprom_offset + count; break; } @@ -3144,9 +3148,11 @@ static struct vbt_header *oprom_get_vbt(struct intel_display *display, if (!oprom) return NULL; + BUILD_BUG_ON(sizeof(vbt_signature) != sizeof(u32)); + /* Scour memory looking for the VBT signature. */ for (i = 0; i + 4 < size; i += 4) { - if (ioread32(oprom + i) != *((const u32 *)"$VBT")) + if (ioread32(oprom + i) != *((const u32 *)vbt_signature)) continue; p = oprom + i; -- 2.44.2 ^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: [PATCH 4/5] drm/i915/bios: Extract vbt_signature[] 2024-09-10 13:42 ` [PATCH 4/5] drm/i915/bios: Extract vbt_signature[] Ville Syrjala @ 2024-09-12 12:15 ` Jani Nikula 2024-09-20 16:59 ` Ville Syrjälä 0 siblings, 1 reply; 23+ messages in thread From: Jani Nikula @ 2024-09-12 12:15 UTC (permalink / raw) To: Ville Syrjala, intel-gfx; +Cc: intel-xe On Tue, 10 Sep 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Replace the three hand rolled "$VBT"s with a vbt_signature[] > to avoid accidents. > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > --- > drivers/gpu/drm/i915/display/intel_bios.c | 12 +++++++++--- > 1 file changed, 9 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c > index cbbda94c3dab..0b92b494117f 100644 > --- a/drivers/gpu/drm/i915/display/intel_bios.c > +++ b/drivers/gpu/drm/i915/display/intel_bios.c > @@ -2964,6 +2964,8 @@ static const struct bdb_header *get_bdb_header(const struct vbt_header *vbt) > return _vbt + vbt->bdb_offset; > } > > +static const char vbt_signature[4] = "$VBT"; Always a bit scary to add strings without termination, but I guess it's justified here. Reviewed-by: Jani Nikula <jani.nikula@intel.com> > + > /** > * intel_bios_is_valid_vbt - does the given buffer contain a valid VBT > * @display: display device > @@ -2986,7 +2988,7 @@ bool intel_bios_is_valid_vbt(struct intel_display *display, > return false; > } > > - if (memcmp(vbt->signature, "$VBT", 4)) { > + if (memcmp(vbt->signature, vbt_signature, sizeof(vbt_signature))) { > drm_dbg_kms(display->drm, "VBT invalid signature\n"); > return false; > } > @@ -3082,9 +3084,11 @@ static struct vbt_header *spi_oprom_get_vbt(struct intel_display *display, > oprom_offset = intel_uncore_read(&i915->uncore, OROM_OFFSET); > oprom_offset &= OROM_OFFSET_MASK; > > + BUILD_BUG_ON(sizeof(vbt_signature) != sizeof(u32)); > + > for (count = 0; count < oprom_size; count += 4) { > data = intel_spi_read32(&i915->uncore, oprom_offset + count); > - if (data == *((const u32 *)"$VBT")) { > + if (data == *((const u32 *)vbt_signature)) { > found = oprom_offset + count; > break; > } > @@ -3144,9 +3148,11 @@ static struct vbt_header *oprom_get_vbt(struct intel_display *display, > if (!oprom) > return NULL; > > + BUILD_BUG_ON(sizeof(vbt_signature) != sizeof(u32)); > + > /* Scour memory looking for the VBT signature. */ > for (i = 0; i + 4 < size; i += 4) { > - if (ioread32(oprom + i) != *((const u32 *)"$VBT")) > + if (ioread32(oprom + i) != *((const u32 *)vbt_signature)) > continue; > > p = oprom + i; -- Jani Nikula, Intel ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 4/5] drm/i915/bios: Extract vbt_signature[] 2024-09-12 12:15 ` Jani Nikula @ 2024-09-20 16:59 ` Ville Syrjälä 2024-09-23 9:12 ` Jani Nikula 0 siblings, 1 reply; 23+ messages in thread From: Ville Syrjälä @ 2024-09-20 16:59 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx, intel-xe On Thu, Sep 12, 2024 at 03:15:52PM +0300, Jani Nikula wrote: > On Tue, 10 Sep 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote: > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > > Replace the three hand rolled "$VBT"s with a vbt_signature[] > > to avoid accidents. > > > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > > --- > > drivers/gpu/drm/i915/display/intel_bios.c | 12 +++++++++--- > > 1 file changed, 9 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c > > index cbbda94c3dab..0b92b494117f 100644 > > --- a/drivers/gpu/drm/i915/display/intel_bios.c > > +++ b/drivers/gpu/drm/i915/display/intel_bios.c > > @@ -2964,6 +2964,8 @@ static const struct bdb_header *get_bdb_header(const struct vbt_header *vbt) > > return _vbt + vbt->bdb_offset; > > } > > > > +static const char vbt_signature[4] = "$VBT"; > > Always a bit scary to add strings without termination, but I guess it's > justified here. I guess we could make it look less like a string with eg. static const u8 vbt_signature[] = { '$', 'V', 'B', 'T' }; ? > Reviewed-by: Jani Nikula <jani.nikula@intel.com> > > > > + > > /** > > * intel_bios_is_valid_vbt - does the given buffer contain a valid VBT > > * @display: display device > > @@ -2986,7 +2988,7 @@ bool intel_bios_is_valid_vbt(struct intel_display *display, > > return false; > > } > > > > - if (memcmp(vbt->signature, "$VBT", 4)) { > > + if (memcmp(vbt->signature, vbt_signature, sizeof(vbt_signature))) { > > drm_dbg_kms(display->drm, "VBT invalid signature\n"); > > return false; > > } > > @@ -3082,9 +3084,11 @@ static struct vbt_header *spi_oprom_get_vbt(struct intel_display *display, > > oprom_offset = intel_uncore_read(&i915->uncore, OROM_OFFSET); > > oprom_offset &= OROM_OFFSET_MASK; > > > > + BUILD_BUG_ON(sizeof(vbt_signature) != sizeof(u32)); > > + > > for (count = 0; count < oprom_size; count += 4) { > > data = intel_spi_read32(&i915->uncore, oprom_offset + count); > > - if (data == *((const u32 *)"$VBT")) { > > + if (data == *((const u32 *)vbt_signature)) { > > found = oprom_offset + count; > > break; > > } > > @@ -3144,9 +3148,11 @@ static struct vbt_header *oprom_get_vbt(struct intel_display *display, > > if (!oprom) > > return NULL; > > > > + BUILD_BUG_ON(sizeof(vbt_signature) != sizeof(u32)); > > + > > /* Scour memory looking for the VBT signature. */ > > for (i = 0; i + 4 < size; i += 4) { > > - if (ioread32(oprom + i) != *((const u32 *)"$VBT")) > > + if (ioread32(oprom + i) != *((const u32 *)vbt_signature)) > > continue; > > > > p = oprom + i; > > -- > Jani Nikula, Intel -- Ville Syrjälä Intel ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 4/5] drm/i915/bios: Extract vbt_signature[] 2024-09-20 16:59 ` Ville Syrjälä @ 2024-09-23 9:12 ` Jani Nikula 2024-09-23 14:22 ` Ville Syrjälä 0 siblings, 1 reply; 23+ messages in thread From: Jani Nikula @ 2024-09-23 9:12 UTC (permalink / raw) To: Ville Syrjälä; +Cc: intel-gfx, intel-xe On Fri, 20 Sep 2024, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote: > On Thu, Sep 12, 2024 at 03:15:52PM +0300, Jani Nikula wrote: >> On Tue, 10 Sep 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote: >> > From: Ville Syrjälä <ville.syrjala@linux.intel.com> >> > >> > Replace the three hand rolled "$VBT"s with a vbt_signature[] >> > to avoid accidents. >> > >> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> >> > --- >> > drivers/gpu/drm/i915/display/intel_bios.c | 12 +++++++++--- >> > 1 file changed, 9 insertions(+), 3 deletions(-) >> > >> > diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c >> > index cbbda94c3dab..0b92b494117f 100644 >> > --- a/drivers/gpu/drm/i915/display/intel_bios.c >> > +++ b/drivers/gpu/drm/i915/display/intel_bios.c >> > @@ -2964,6 +2964,8 @@ static const struct bdb_header *get_bdb_header(const struct vbt_header *vbt) >> > return _vbt + vbt->bdb_offset; >> > } >> > >> > +static const char vbt_signature[4] = "$VBT"; >> >> Always a bit scary to add strings without termination, but I guess it's >> justified here. > > I guess we could make it look less like a string with eg. > static const u8 vbt_signature[] = { '$', 'V', 'B', 'T' }; > ? Alternatively, static const char *vbt_signature = "$VBT"; > >> Reviewed-by: Jani Nikula <jani.nikula@intel.com> >> >> >> > + >> > /** >> > * intel_bios_is_valid_vbt - does the given buffer contain a valid VBT >> > * @display: display device >> > @@ -2986,7 +2988,7 @@ bool intel_bios_is_valid_vbt(struct intel_display *display, >> > return false; >> > } >> > >> > - if (memcmp(vbt->signature, "$VBT", 4)) { >> > + if (memcmp(vbt->signature, vbt_signature, sizeof(vbt_signature))) { But then this would need strlen() >> > drm_dbg_kms(display->drm, "VBT invalid signature\n"); >> > return false; >> > } >> > @@ -3082,9 +3084,11 @@ static struct vbt_header *spi_oprom_get_vbt(struct intel_display *display, >> > oprom_offset = intel_uncore_read(&i915->uncore, OROM_OFFSET); >> > oprom_offset &= OROM_OFFSET_MASK; >> > >> > + BUILD_BUG_ON(sizeof(vbt_signature) != sizeof(u32)); And maybe this could be sizeof(vbt_signature) < sizeof(u32) All of the alternatives are a bit disappointing, so maybe let's just roll with the patch you already have here? BR, Jani. >> > + >> > for (count = 0; count < oprom_size; count += 4) { >> > data = intel_spi_read32(&i915->uncore, oprom_offset + count); >> > - if (data == *((const u32 *)"$VBT")) { >> > + if (data == *((const u32 *)vbt_signature)) { >> > found = oprom_offset + count; >> > break; >> > } >> > @@ -3144,9 +3148,11 @@ static struct vbt_header *oprom_get_vbt(struct intel_display *display, >> > if (!oprom) >> > return NULL; >> > >> > + BUILD_BUG_ON(sizeof(vbt_signature) != sizeof(u32)); >> > + >> > /* Scour memory looking for the VBT signature. */ >> > for (i = 0; i + 4 < size; i += 4) { >> > - if (ioread32(oprom + i) != *((const u32 *)"$VBT")) >> > + if (ioread32(oprom + i) != *((const u32 *)vbt_signature)) >> > continue; >> > >> > p = oprom + i; >> >> -- >> Jani Nikula, Intel -- Jani Nikula, Intel ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 4/5] drm/i915/bios: Extract vbt_signature[] 2024-09-23 9:12 ` Jani Nikula @ 2024-09-23 14:22 ` Ville Syrjälä 2024-09-23 14:24 ` Jani Nikula 0 siblings, 1 reply; 23+ messages in thread From: Ville Syrjälä @ 2024-09-23 14:22 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx, intel-xe On Mon, Sep 23, 2024 at 12:12:39PM +0300, Jani Nikula wrote: > On Fri, 20 Sep 2024, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote: > > On Thu, Sep 12, 2024 at 03:15:52PM +0300, Jani Nikula wrote: > >> On Tue, 10 Sep 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote: > >> > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > >> > > >> > Replace the three hand rolled "$VBT"s with a vbt_signature[] > >> > to avoid accidents. > >> > > >> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > >> > --- > >> > drivers/gpu/drm/i915/display/intel_bios.c | 12 +++++++++--- > >> > 1 file changed, 9 insertions(+), 3 deletions(-) > >> > > >> > diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c > >> > index cbbda94c3dab..0b92b494117f 100644 > >> > --- a/drivers/gpu/drm/i915/display/intel_bios.c > >> > +++ b/drivers/gpu/drm/i915/display/intel_bios.c > >> > @@ -2964,6 +2964,8 @@ static const struct bdb_header *get_bdb_header(const struct vbt_header *vbt) > >> > return _vbt + vbt->bdb_offset; > >> > } > >> > > >> > +static const char vbt_signature[4] = "$VBT"; > >> > >> Always a bit scary to add strings without termination, but I guess it's > >> justified here. > > > > I guess we could make it look less like a string with eg. > > static const u8 vbt_signature[] = { '$', 'V', 'B', 'T' }; > > ? > > Alternatively, > > static const char *vbt_signature = "$VBT"; Or could just be something like: static const char vbt_signature[] = "$VBT"; static const int vbt_signature_len = 4; BUILD_BUG_ON(vbt_signature_len != sizeof(vbt_signature) - 1); BUILD_BUG_ON(vbt_signature_len != sizeof(u32)); and use vbt_signature_len instead sizeof(vbt_signature) everwhere. > > > > >> Reviewed-by: Jani Nikula <jani.nikula@intel.com> > >> > >> > >> > + > >> > /** > >> > * intel_bios_is_valid_vbt - does the given buffer contain a valid VBT > >> > * @display: display device > >> > @@ -2986,7 +2988,7 @@ bool intel_bios_is_valid_vbt(struct intel_display *display, > >> > return false; > >> > } > >> > > >> > - if (memcmp(vbt->signature, "$VBT", 4)) { > >> > + if (memcmp(vbt->signature, vbt_signature, sizeof(vbt_signature))) { > > But then this would need strlen() > > >> > drm_dbg_kms(display->drm, "VBT invalid signature\n"); > >> > return false; > >> > } > >> > @@ -3082,9 +3084,11 @@ static struct vbt_header *spi_oprom_get_vbt(struct intel_display *display, > >> > oprom_offset = intel_uncore_read(&i915->uncore, OROM_OFFSET); > >> > oprom_offset &= OROM_OFFSET_MASK; > >> > > >> > + BUILD_BUG_ON(sizeof(vbt_signature) != sizeof(u32)); > > And maybe this could be sizeof(vbt_signature) < sizeof(u32) > > All of the alternatives are a bit disappointing, so maybe let's just > roll with the patch you already have here? > > BR, > Jani. > > >> > + > >> > for (count = 0; count < oprom_size; count += 4) { > >> > data = intel_spi_read32(&i915->uncore, oprom_offset + count); > >> > - if (data == *((const u32 *)"$VBT")) { > >> > + if (data == *((const u32 *)vbt_signature)) { > >> > found = oprom_offset + count; > >> > break; > >> > } > >> > @@ -3144,9 +3148,11 @@ static struct vbt_header *oprom_get_vbt(struct intel_display *display, > >> > if (!oprom) > >> > return NULL; > >> > > >> > + BUILD_BUG_ON(sizeof(vbt_signature) != sizeof(u32)); > >> > + > >> > /* Scour memory looking for the VBT signature. */ > >> > for (i = 0; i + 4 < size; i += 4) { > >> > - if (ioread32(oprom + i) != *((const u32 *)"$VBT")) > >> > + if (ioread32(oprom + i) != *((const u32 *)vbt_signature)) > >> > continue; > >> > > >> > p = oprom + i; > >> > >> -- > >> Jani Nikula, Intel > > -- > Jani Nikula, Intel -- Ville Syrjälä Intel ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 4/5] drm/i915/bios: Extract vbt_signature[] 2024-09-23 14:22 ` Ville Syrjälä @ 2024-09-23 14:24 ` Jani Nikula 2024-09-23 14:29 ` Ville Syrjälä 0 siblings, 1 reply; 23+ messages in thread From: Jani Nikula @ 2024-09-23 14:24 UTC (permalink / raw) To: Ville Syrjälä; +Cc: intel-gfx, intel-xe On Mon, 23 Sep 2024, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote: > On Mon, Sep 23, 2024 at 12:12:39PM +0300, Jani Nikula wrote: >> On Fri, 20 Sep 2024, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote: >> > On Thu, Sep 12, 2024 at 03:15:52PM +0300, Jani Nikula wrote: >> >> On Tue, 10 Sep 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote: >> >> > From: Ville Syrjälä <ville.syrjala@linux.intel.com> >> >> > >> >> > Replace the three hand rolled "$VBT"s with a vbt_signature[] >> >> > to avoid accidents. >> >> > >> >> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> >> >> > --- >> >> > drivers/gpu/drm/i915/display/intel_bios.c | 12 +++++++++--- >> >> > 1 file changed, 9 insertions(+), 3 deletions(-) >> >> > >> >> > diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c >> >> > index cbbda94c3dab..0b92b494117f 100644 >> >> > --- a/drivers/gpu/drm/i915/display/intel_bios.c >> >> > +++ b/drivers/gpu/drm/i915/display/intel_bios.c >> >> > @@ -2964,6 +2964,8 @@ static const struct bdb_header *get_bdb_header(const struct vbt_header *vbt) >> >> > return _vbt + vbt->bdb_offset; >> >> > } >> >> > >> >> > +static const char vbt_signature[4] = "$VBT"; >> >> >> >> Always a bit scary to add strings without termination, but I guess it's >> >> justified here. >> > >> > I guess we could make it look less like a string with eg. >> > static const u8 vbt_signature[] = { '$', 'V', 'B', 'T' }; >> > ? >> >> Alternatively, >> >> static const char *vbt_signature = "$VBT"; > > Or could just be something like: > > static const char vbt_signature[] = "$VBT"; > static const int vbt_signature_len = 4; > > BUILD_BUG_ON(vbt_signature_len != sizeof(vbt_signature) - 1); > BUILD_BUG_ON(vbt_signature_len != sizeof(u32)); > > and use vbt_signature_len instead sizeof(vbt_signature) everwhere. Works for me, up to you. BR, Jani. > >> >> > >> >> Reviewed-by: Jani Nikula <jani.nikula@intel.com> >> >> >> >> >> >> > + >> >> > /** >> >> > * intel_bios_is_valid_vbt - does the given buffer contain a valid VBT >> >> > * @display: display device >> >> > @@ -2986,7 +2988,7 @@ bool intel_bios_is_valid_vbt(struct intel_display *display, >> >> > return false; >> >> > } >> >> > >> >> > - if (memcmp(vbt->signature, "$VBT", 4)) { >> >> > + if (memcmp(vbt->signature, vbt_signature, sizeof(vbt_signature))) { >> >> But then this would need strlen() >> >> >> > drm_dbg_kms(display->drm, "VBT invalid signature\n"); >> >> > return false; >> >> > } >> >> > @@ -3082,9 +3084,11 @@ static struct vbt_header *spi_oprom_get_vbt(struct intel_display *display, >> >> > oprom_offset = intel_uncore_read(&i915->uncore, OROM_OFFSET); >> >> > oprom_offset &= OROM_OFFSET_MASK; >> >> > >> >> > + BUILD_BUG_ON(sizeof(vbt_signature) != sizeof(u32)); >> >> And maybe this could be sizeof(vbt_signature) < sizeof(u32) >> >> All of the alternatives are a bit disappointing, so maybe let's just >> roll with the patch you already have here? >> >> BR, >> Jani. >> >> >> > + >> >> > for (count = 0; count < oprom_size; count += 4) { >> >> > data = intel_spi_read32(&i915->uncore, oprom_offset + count); >> >> > - if (data == *((const u32 *)"$VBT")) { >> >> > + if (data == *((const u32 *)vbt_signature)) { >> >> > found = oprom_offset + count; >> >> > break; >> >> > } >> >> > @@ -3144,9 +3148,11 @@ static struct vbt_header *oprom_get_vbt(struct intel_display *display, >> >> > if (!oprom) >> >> > return NULL; >> >> > >> >> > + BUILD_BUG_ON(sizeof(vbt_signature) != sizeof(u32)); >> >> > + >> >> > /* Scour memory looking for the VBT signature. */ >> >> > for (i = 0; i + 4 < size; i += 4) { >> >> > - if (ioread32(oprom + i) != *((const u32 *)"$VBT")) >> >> > + if (ioread32(oprom + i) != *((const u32 *)vbt_signature)) >> >> > continue; >> >> > >> >> > p = oprom + i; >> >> >> >> -- >> >> Jani Nikula, Intel >> >> -- >> Jani Nikula, Intel -- Jani Nikula, Intel ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 4/5] drm/i915/bios: Extract vbt_signature[] 2024-09-23 14:24 ` Jani Nikula @ 2024-09-23 14:29 ` Ville Syrjälä 0 siblings, 0 replies; 23+ messages in thread From: Ville Syrjälä @ 2024-09-23 14:29 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx, intel-xe On Mon, Sep 23, 2024 at 05:24:46PM +0300, Jani Nikula wrote: > On Mon, 23 Sep 2024, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote: > > On Mon, Sep 23, 2024 at 12:12:39PM +0300, Jani Nikula wrote: > >> On Fri, 20 Sep 2024, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote: > >> > On Thu, Sep 12, 2024 at 03:15:52PM +0300, Jani Nikula wrote: > >> >> On Tue, 10 Sep 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote: > >> >> > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > >> >> > > >> >> > Replace the three hand rolled "$VBT"s with a vbt_signature[] > >> >> > to avoid accidents. > >> >> > > >> >> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > >> >> > --- > >> >> > drivers/gpu/drm/i915/display/intel_bios.c | 12 +++++++++--- > >> >> > 1 file changed, 9 insertions(+), 3 deletions(-) > >> >> > > >> >> > diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c > >> >> > index cbbda94c3dab..0b92b494117f 100644 > >> >> > --- a/drivers/gpu/drm/i915/display/intel_bios.c > >> >> > +++ b/drivers/gpu/drm/i915/display/intel_bios.c > >> >> > @@ -2964,6 +2964,8 @@ static const struct bdb_header *get_bdb_header(const struct vbt_header *vbt) > >> >> > return _vbt + vbt->bdb_offset; > >> >> > } > >> >> > > >> >> > +static const char vbt_signature[4] = "$VBT"; > >> >> > >> >> Always a bit scary to add strings without termination, but I guess it's > >> >> justified here. > >> > > >> > I guess we could make it look less like a string with eg. > >> > static const u8 vbt_signature[] = { '$', 'V', 'B', 'T' }; > >> > ? > >> > >> Alternatively, > >> > >> static const char *vbt_signature = "$VBT"; > > > > Or could just be something like: > > > > static const char vbt_signature[] = "$VBT"; > > static const int vbt_signature_len = 4; > > > > BUILD_BUG_ON(vbt_signature_len != sizeof(vbt_signature) - 1); > > BUILD_BUG_ON(vbt_signature_len != sizeof(u32)); > > > > and use vbt_signature_len instead sizeof(vbt_signature) everwhere. > > Works for me, up to you. I'll roll with that. I guess it's safer to have the '\0' in case someone gets the urge to do something like printk("Unable to find %s ...\n", vbt_signature) etc. -- Ville Syrjälä Intel ^ permalink raw reply [flat|nested] 23+ messages in thread
* [PATCH 5/5] drm/i915/bios: Extract soc/intel_rom.c 2024-09-10 13:42 [PATCH 0/5] drm/i915/bios: Refactor ROM access Ville Syrjala ` (3 preceding siblings ...) 2024-09-10 13:42 ` [PATCH 4/5] drm/i915/bios: Extract vbt_signature[] Ville Syrjala @ 2024-09-10 13:42 ` Ville Syrjala 2024-09-12 12:44 ` Jani Nikula 2024-09-10 17:29 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915/bios: Refactor ROM access Patchwork ` (3 subsequent siblings) 8 siblings, 1 reply; 23+ messages in thread From: Ville Syrjala @ 2024-09-10 13:42 UTC (permalink / raw) To: intel-gfx; +Cc: intel-xe From: Ville Syrjälä <ville.syrjala@linux.intel.com> Abstract away the nuts and bolts of the SPI vs. PCI ROM stuff, and hide it all in soc/intel_rom.c so that the VBT code doesn't have to care about this stuff. This leaves intel_bios.c with a single codepath that can focus on the details related to the VBT layout. This should have no functional changes. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/i915/Makefile | 3 +- drivers/gpu/drm/i915/display/intel_bios.c | 150 ++++------------ drivers/gpu/drm/i915/soc/intel_rom.c | 160 ++++++++++++++++++ drivers/gpu/drm/i915/soc/intel_rom.h | 25 +++ drivers/gpu/drm/xe/Makefile | 3 +- .../xe/compat-i915-headers/soc/intel_rom.h | 6 + 6 files changed, 224 insertions(+), 123 deletions(-) create mode 100644 drivers/gpu/drm/i915/soc/intel_rom.c create mode 100644 drivers/gpu/drm/i915/soc/intel_rom.h create mode 100644 drivers/gpu/drm/xe/compat-i915-headers/soc/intel_rom.h diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile index c63fa2133ccb..d14c8870aecb 100644 --- a/drivers/gpu/drm/i915/Makefile +++ b/drivers/gpu/drm/i915/Makefile @@ -51,7 +51,8 @@ i915-y += \ i915-y += \ soc/intel_dram.o \ soc/intel_gmch.o \ - soc/intel_pch.o + soc/intel_pch.o \ + soc/intel_rom.o # core library code i915-y += \ diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c index 0b92b494117f..37d4b4ddfa95 100644 --- a/drivers/gpu/drm/i915/display/intel_bios.c +++ b/drivers/gpu/drm/i915/display/intel_bios.c @@ -33,12 +33,12 @@ #include <drm/drm_edid.h> #include <drm/drm_fixed.h> +#include "soc/intel_rom.h" + #include "i915_drv.h" -#include "i915_reg.h" #include "intel_display.h" #include "intel_display_types.h" #include "intel_gmbus.h" -#include "intel_uncore.h" #define _INTEL_BIOS_PRIVATE #include "intel_vbt_defs.h" @@ -3055,150 +3055,58 @@ static struct vbt_header *firmware_get_vbt(struct intel_display *display, return vbt; } -static u32 intel_spi_read32(struct intel_uncore *uncore, u32 offset) +static struct vbt_header *oprom_get_vbt(struct intel_display *display, + struct intel_rom *rom, + size_t *size, const char *type) { - intel_uncore_write(uncore, PRIMARY_SPI_ADDRESS, offset); + struct vbt_header *vbt; + size_t vbt_size; + loff_t offset; - return intel_uncore_read(uncore, PRIMARY_SPI_TRIGGER); -} - -static u16 intel_spi_read16(struct intel_uncore *uncore, u32 offset) -{ - return intel_spi_read32(uncore, offset) & 0xffff; -} - -static struct vbt_header *spi_oprom_get_vbt(struct intel_display *display, - size_t *size) -{ - struct drm_i915_private *i915 = to_i915(display->drm); - u32 count, data, found, store = 0; - u32 static_region, oprom_offset; - u32 oprom_size = 0x200000; - u16 vbt_size; - u32 *vbt; - - static_region = intel_uncore_read(&i915->uncore, SPI_STATIC_REGIONS); - static_region &= OPTIONROM_SPI_REGIONID_MASK; - intel_uncore_write(&i915->uncore, PRIMARY_SPI_REGIONID, static_region); - - oprom_offset = intel_uncore_read(&i915->uncore, OROM_OFFSET); - oprom_offset &= OROM_OFFSET_MASK; + if (!rom) + return NULL; BUILD_BUG_ON(sizeof(vbt_signature) != sizeof(u32)); - for (count = 0; count < oprom_size; count += 4) { - data = intel_spi_read32(&i915->uncore, oprom_offset + count); - if (data == *((const u32 *)vbt_signature)) { - found = oprom_offset + count; - break; - } - } + offset = intel_rom_find(rom, *(const u32 *)vbt_signature); + if (offset < 0) + goto err_free_rom; - if (count >= oprom_size) - goto err_not_found; - - if (sizeof(struct vbt_header) > oprom_size - count) { + if (sizeof(struct vbt_header) > intel_rom_size(rom) - offset) { drm_dbg(display->drm, "VBT header incomplete\n"); - goto err_not_found; + goto err_free_rom; } - /* Get VBT size and allocate space for the VBT */ - vbt_size = intel_spi_read16(&i915->uncore, - found + offsetof(struct vbt_header, vbt_size)); + BUILD_BUG_ON(sizeof(vbt->vbt_size) != sizeof(u16)); - if (vbt_size > oprom_size - count) { - drm_dbg(display->drm, - "VBT incomplete (vbt_size overflows)\n"); - goto err_not_found; + vbt_size = intel_rom_read16(rom, offset + offsetof(struct vbt_header, vbt_size)); + if (vbt_size > intel_rom_size(rom) - offset) { + drm_dbg(display->drm, "VBT incomplete (vbt_size overflows)\n"); + goto err_free_rom; } vbt = kzalloc(round_up(vbt_size, 4), GFP_KERNEL); if (!vbt) - goto err_not_found; + goto err_free_rom; - for (count = 0; count < vbt_size; count += 4) - *(vbt + store++) = intel_spi_read32(&i915->uncore, found + count); + intel_rom_read_block(rom, vbt, offset, vbt_size); if (!intel_bios_is_valid_vbt(display, vbt, vbt_size)) goto err_free_vbt; - drm_dbg_kms(display->drm, "Found valid VBT in SPI flash\n"); + drm_dbg_kms(display->drm, "Found valid VBT in %s\n", type); if (size) *size = vbt_size; + intel_rom_free(rom); + return (struct vbt_header *)vbt; err_free_vbt: kfree(vbt); -err_not_found: - return NULL; -} - -static struct vbt_header *oprom_get_vbt(struct intel_display *display, - size_t *sizep) -{ - struct pci_dev *pdev = to_pci_dev(display->drm->dev); - void __iomem *p = NULL, *oprom; - struct vbt_header *vbt; - u16 vbt_size; - size_t i, size; - - oprom = pci_map_rom(pdev, &size); - if (!oprom) - return NULL; - - BUILD_BUG_ON(sizeof(vbt_signature) != sizeof(u32)); - - /* Scour memory looking for the VBT signature. */ - for (i = 0; i + 4 < size; i += 4) { - if (ioread32(oprom + i) != *((const u32 *)vbt_signature)) - continue; - - p = oprom + i; - size -= i; - break; - } - - if (!p) - goto err_unmap_oprom; - - if (sizeof(struct vbt_header) > size) { - drm_dbg(display->drm, "VBT header incomplete\n"); - goto err_unmap_oprom; - } - - vbt_size = ioread16(p + offsetof(struct vbt_header, vbt_size)); - if (vbt_size > size) { - drm_dbg(display->drm, - "VBT incomplete (vbt_size overflows)\n"); - goto err_unmap_oprom; - } - - /* The rest will be validated by intel_bios_is_valid_vbt() */ - vbt = kmalloc(round_up(vbt_size, 4), GFP_KERNEL); - if (!vbt) - goto err_unmap_oprom; - - memcpy_fromio(vbt, p, vbt_size); - - if (!intel_bios_is_valid_vbt(display, vbt, vbt_size)) - goto err_free_vbt; - - pci_unmap_rom(pdev, oprom); - - if (sizep) - *sizep = vbt_size; - - drm_dbg_kms(display->drm, "Found valid VBT in PCI ROM\n"); - - return vbt; - -err_free_vbt: - kfree(vbt); -err_unmap_oprom: - pci_unmap_rom(pdev, oprom); - +err_free_rom: + intel_rom_free(rom); return NULL; } @@ -3220,11 +3128,11 @@ static const struct vbt_header *intel_bios_get_vbt(struct intel_display *display */ if (!vbt && IS_DGFX(i915)) with_intel_runtime_pm(&i915->runtime_pm, wakeref) - vbt = spi_oprom_get_vbt(display, sizep); + vbt = oprom_get_vbt(display, intel_rom_spi(i915), sizep, "SPI flash"); if (!vbt) with_intel_runtime_pm(&i915->runtime_pm, wakeref) - vbt = oprom_get_vbt(display, sizep); + vbt = oprom_get_vbt(display, intel_rom_pci(i915), sizep, "PCI ROM"); return vbt; } diff --git a/drivers/gpu/drm/i915/soc/intel_rom.c b/drivers/gpu/drm/i915/soc/intel_rom.c new file mode 100644 index 000000000000..243d98cab8c3 --- /dev/null +++ b/drivers/gpu/drm/i915/soc/intel_rom.c @@ -0,0 +1,160 @@ +// SPDX-License-Identifier: MIT +/* + * Copyright © 2024 Intel Corporation + */ + +#include "i915_drv.h" +#include "i915_reg.h" + +#include "intel_rom.h" +#include "intel_uncore.h" + +struct intel_rom { + /* for PCI ROM */ + struct pci_dev *pdev; + void __iomem *oprom; + + /* for SPI */ + struct intel_uncore *uncore; + loff_t offset; + + size_t size; + + u32 (*read32)(struct intel_rom *rom, loff_t offset); + u16 (*read16)(struct intel_rom *rom, loff_t offset); + void (*read_block)(struct intel_rom *rom, void *data, loff_t offset, size_t size); + void (*free)(struct intel_rom *rom); +}; + +static u32 spi_read32(struct intel_rom *rom, loff_t offset) +{ + intel_uncore_write(rom->uncore, PRIMARY_SPI_ADDRESS, + rom->offset + offset); + + return intel_uncore_read(rom->uncore, PRIMARY_SPI_TRIGGER); +} + +static u16 spi_read16(struct intel_rom *rom, loff_t offset) +{ + return spi_read32(rom, offset) & 0xffff; +} + +struct intel_rom *intel_rom_spi(struct drm_i915_private *i915) +{ + struct intel_rom *rom; + u32 static_region; + + rom = kzalloc(sizeof(*rom), GFP_KERNEL); + if (!rom) + return NULL; + + rom->uncore = &i915->uncore; + + static_region = intel_uncore_read(rom->uncore, SPI_STATIC_REGIONS); + static_region &= OPTIONROM_SPI_REGIONID_MASK; + intel_uncore_write(rom->uncore, PRIMARY_SPI_REGIONID, static_region); + + rom->offset = intel_uncore_read(rom->uncore, OROM_OFFSET) & OROM_OFFSET_MASK; + + rom->size = 0x200000; + + rom->read32 = spi_read32; + rom->read16 = spi_read16; + + return rom; +} + +static u32 pci_read32(struct intel_rom *rom, loff_t offset) +{ + return ioread32(rom->oprom + offset); +} + +static u16 pci_read16(struct intel_rom *rom, loff_t offset) +{ + return ioread16(rom->oprom + offset); +} + +static void pci_read_block(struct intel_rom *rom, void *data, + loff_t offset, size_t size) +{ + memcpy_fromio(data, rom->oprom + offset, size); +} + +static void pci_free(struct intel_rom *rom) +{ + pci_unmap_rom(rom->pdev, rom->oprom); +} + +struct intel_rom *intel_rom_pci(struct drm_i915_private *i915) +{ + struct intel_rom *rom; + + rom = kzalloc(sizeof(*rom), GFP_KERNEL); + if (!rom) + return NULL; + + rom->pdev = to_pci_dev(i915->drm.dev); + + rom->oprom = pci_map_rom(rom->pdev, &rom->size); + if (!rom->oprom) { + kfree(rom); + return NULL; + } + + rom->read32 = pci_read32; + rom->read16 = pci_read16; + rom->read_block = pci_read_block; + rom->free = pci_free; + + return rom; +} + +u32 intel_rom_read32(struct intel_rom *rom, loff_t offset) +{ + return rom->read32(rom, offset); +} + +u16 intel_rom_read16(struct intel_rom *rom, loff_t offset) +{ + return rom->read16(rom, offset); +} + +void intel_rom_read_block(struct intel_rom *rom, void *data, + loff_t offset, size_t size) +{ + u32 *ptr = data; + loff_t index; + + if (rom->read_block) { + rom->read_block(rom, data, offset, size); + return; + } + + for (index = 0; index < size; index += 4) + *ptr++ = rom->read32(rom, offset + index); +} + +loff_t intel_rom_find(struct intel_rom *rom, u32 needle) +{ + loff_t offset; + + for (offset = 0; offset < rom->size; offset += 4) { + if (rom->read32(rom, offset) == needle) + return offset; + } + + return -ENOENT; +} + +size_t intel_rom_size(struct intel_rom *rom) +{ + return rom->size; +} + +void intel_rom_free(struct intel_rom *rom) +{ + if (rom && rom->free) + rom->free(rom); + + kfree(rom); +} diff --git a/drivers/gpu/drm/i915/soc/intel_rom.h b/drivers/gpu/drm/i915/soc/intel_rom.h new file mode 100644 index 000000000000..fb2979c8ef7f --- /dev/null +++ b/drivers/gpu/drm/i915/soc/intel_rom.h @@ -0,0 +1,25 @@ +/* SPDX-License-Identifier: MIT */ +/* + * Copyright © 2024 Intel Corporation + */ + +#ifndef __INTEL_ROM_H__ +#define __INTEL_ROM_H__ + +#include <linux/types.h> + +struct drm_i915_private; +struct intel_rom; + +struct intel_rom *intel_rom_spi(struct drm_i915_private *i915); +struct intel_rom *intel_rom_pci(struct drm_i915_private *i915); + +u32 intel_rom_read32(struct intel_rom *rom, loff_t offset); +u16 intel_rom_read16(struct intel_rom *rom, loff_t offset); +void intel_rom_read_block(struct intel_rom *rom, void *data, + loff_t offset, size_t size); +loff_t intel_rom_find(struct intel_rom *rom, u32 needle); +size_t intel_rom_size(struct intel_rom *rom); +void intel_rom_free(struct intel_rom *rom); + +#endif /* __INTEL_ROM_H__ */ diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile index edfd812e0f41..dd1c0666e6bd 100644 --- a/drivers/gpu/drm/xe/Makefile +++ b/drivers/gpu/drm/xe/Makefile @@ -180,7 +180,8 @@ xe-$(CONFIG_DRM_XE_DISPLAY) += \ # SOC code shared with i915 xe-$(CONFIG_DRM_XE_DISPLAY) += \ i915-soc/intel_dram.o \ - i915-soc/intel_pch.o + i915-soc/intel_pch.o \ + i915-soc/intel_rom.o # Display code shared with i915 xe-$(CONFIG_DRM_XE_DISPLAY) += \ diff --git a/drivers/gpu/drm/xe/compat-i915-headers/soc/intel_rom.h b/drivers/gpu/drm/xe/compat-i915-headers/soc/intel_rom.h new file mode 100644 index 000000000000..05cbfb697b2b --- /dev/null +++ b/drivers/gpu/drm/xe/compat-i915-headers/soc/intel_rom.h @@ -0,0 +1,6 @@ +/* SPDX-License-Identifier: MIT */ +/* + * Copyright © 2024 Intel Corporation + */ + +#include "../../../i915/soc/intel_rom.h" -- 2.44.2 ^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: [PATCH 5/5] drm/i915/bios: Extract soc/intel_rom.c 2024-09-10 13:42 ` [PATCH 5/5] drm/i915/bios: Extract soc/intel_rom.c Ville Syrjala @ 2024-09-12 12:44 ` Jani Nikula 2024-09-20 17:02 ` Ville Syrjälä 0 siblings, 1 reply; 23+ messages in thread From: Jani Nikula @ 2024-09-12 12:44 UTC (permalink / raw) To: Ville Syrjala, intel-gfx; +Cc: intel-xe On Tue, 10 Sep 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Abstract away the nuts and bolts of the SPI vs. PCI ROM > stuff, and hide it all in soc/intel_rom.c so that the > VBT code doesn't have to care about this stuff. > > This leaves intel_bios.c with a single codepath that > can focus on the details related to the VBT layout. > > This should have no functional changes. Neat! Some nitpicks inline, but overall, Reviewed-by: Jani Nikula <jani.nikula@intel.com> > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > --- > drivers/gpu/drm/i915/Makefile | 3 +- > drivers/gpu/drm/i915/display/intel_bios.c | 150 ++++------------ > drivers/gpu/drm/i915/soc/intel_rom.c | 160 ++++++++++++++++++ > drivers/gpu/drm/i915/soc/intel_rom.h | 25 +++ > drivers/gpu/drm/xe/Makefile | 3 +- > .../xe/compat-i915-headers/soc/intel_rom.h | 6 + > 6 files changed, 224 insertions(+), 123 deletions(-) > create mode 100644 drivers/gpu/drm/i915/soc/intel_rom.c > create mode 100644 drivers/gpu/drm/i915/soc/intel_rom.h > create mode 100644 drivers/gpu/drm/xe/compat-i915-headers/soc/intel_rom.h > > diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile > index c63fa2133ccb..d14c8870aecb 100644 > --- a/drivers/gpu/drm/i915/Makefile > +++ b/drivers/gpu/drm/i915/Makefile > @@ -51,7 +51,8 @@ i915-y += \ > i915-y += \ > soc/intel_dram.o \ > soc/intel_gmch.o \ > - soc/intel_pch.o > + soc/intel_pch.o \ > + soc/intel_rom.o > > # core library code > i915-y += \ > diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c > index 0b92b494117f..37d4b4ddfa95 100644 > --- a/drivers/gpu/drm/i915/display/intel_bios.c > +++ b/drivers/gpu/drm/i915/display/intel_bios.c > @@ -33,12 +33,12 @@ > #include <drm/drm_edid.h> > #include <drm/drm_fixed.h> > > +#include "soc/intel_rom.h" > + > #include "i915_drv.h" > -#include "i915_reg.h" > #include "intel_display.h" > #include "intel_display_types.h" > #include "intel_gmbus.h" > -#include "intel_uncore.h" > > #define _INTEL_BIOS_PRIVATE > #include "intel_vbt_defs.h" > @@ -3055,150 +3055,58 @@ static struct vbt_header *firmware_get_vbt(struct intel_display *display, > return vbt; > } > > -static u32 intel_spi_read32(struct intel_uncore *uncore, u32 offset) > +static struct vbt_header *oprom_get_vbt(struct intel_display *display, > + struct intel_rom *rom, > + size_t *size, const char *type) > { > - intel_uncore_write(uncore, PRIMARY_SPI_ADDRESS, offset); > + struct vbt_header *vbt; > + size_t vbt_size; > + loff_t offset; > > - return intel_uncore_read(uncore, PRIMARY_SPI_TRIGGER); > -} > - > -static u16 intel_spi_read16(struct intel_uncore *uncore, u32 offset) > -{ > - return intel_spi_read32(uncore, offset) & 0xffff; > -} > - > -static struct vbt_header *spi_oprom_get_vbt(struct intel_display *display, > - size_t *size) > -{ > - struct drm_i915_private *i915 = to_i915(display->drm); > - u32 count, data, found, store = 0; > - u32 static_region, oprom_offset; > - u32 oprom_size = 0x200000; > - u16 vbt_size; > - u32 *vbt; > - > - static_region = intel_uncore_read(&i915->uncore, SPI_STATIC_REGIONS); > - static_region &= OPTIONROM_SPI_REGIONID_MASK; > - intel_uncore_write(&i915->uncore, PRIMARY_SPI_REGIONID, static_region); > - > - oprom_offset = intel_uncore_read(&i915->uncore, OROM_OFFSET); > - oprom_offset &= OROM_OFFSET_MASK; > + if (!rom) > + return NULL; > > BUILD_BUG_ON(sizeof(vbt_signature) != sizeof(u32)); > > - for (count = 0; count < oprom_size; count += 4) { > - data = intel_spi_read32(&i915->uncore, oprom_offset + count); > - if (data == *((const u32 *)vbt_signature)) { > - found = oprom_offset + count; > - break; > - } > - } > + offset = intel_rom_find(rom, *(const u32 *)vbt_signature); > + if (offset < 0) > + goto err_free_rom; > > - if (count >= oprom_size) > - goto err_not_found; > - > - if (sizeof(struct vbt_header) > oprom_size - count) { > + if (sizeof(struct vbt_header) > intel_rom_size(rom) - offset) { > drm_dbg(display->drm, "VBT header incomplete\n"); > - goto err_not_found; > + goto err_free_rom; > } > > - /* Get VBT size and allocate space for the VBT */ > - vbt_size = intel_spi_read16(&i915->uncore, > - found + offsetof(struct vbt_header, vbt_size)); > + BUILD_BUG_ON(sizeof(vbt->vbt_size) != sizeof(u16)); > > - if (vbt_size > oprom_size - count) { > - drm_dbg(display->drm, > - "VBT incomplete (vbt_size overflows)\n"); > - goto err_not_found; > + vbt_size = intel_rom_read16(rom, offset + offsetof(struct vbt_header, vbt_size)); > + if (vbt_size > intel_rom_size(rom) - offset) { > + drm_dbg(display->drm, "VBT incomplete (vbt_size overflows)\n"); > + goto err_free_rom; > } > > vbt = kzalloc(round_up(vbt_size, 4), GFP_KERNEL); > if (!vbt) > - goto err_not_found; > + goto err_free_rom; > > - for (count = 0; count < vbt_size; count += 4) > - *(vbt + store++) = intel_spi_read32(&i915->uncore, found + count); > + intel_rom_read_block(rom, vbt, offset, vbt_size); > > if (!intel_bios_is_valid_vbt(display, vbt, vbt_size)) > goto err_free_vbt; > > - drm_dbg_kms(display->drm, "Found valid VBT in SPI flash\n"); > + drm_dbg_kms(display->drm, "Found valid VBT in %s\n", type); There's some (pre-existing) drm_dbg vs. drm_dbg_kms discrepancy here. > > if (size) > *size = vbt_size; > > + intel_rom_free(rom); > + > return (struct vbt_header *)vbt; The cast is now unnecessary. > > err_free_vbt: > kfree(vbt); > -err_not_found: > - return NULL; > -} > - > -static struct vbt_header *oprom_get_vbt(struct intel_display *display, > - size_t *sizep) > -{ > - struct pci_dev *pdev = to_pci_dev(display->drm->dev); > - void __iomem *p = NULL, *oprom; > - struct vbt_header *vbt; > - u16 vbt_size; > - size_t i, size; > - > - oprom = pci_map_rom(pdev, &size); > - if (!oprom) > - return NULL; > - > - BUILD_BUG_ON(sizeof(vbt_signature) != sizeof(u32)); > - > - /* Scour memory looking for the VBT signature. */ > - for (i = 0; i + 4 < size; i += 4) { > - if (ioread32(oprom + i) != *((const u32 *)vbt_signature)) > - continue; > - > - p = oprom + i; > - size -= i; > - break; > - } > - > - if (!p) > - goto err_unmap_oprom; > - > - if (sizeof(struct vbt_header) > size) { > - drm_dbg(display->drm, "VBT header incomplete\n"); > - goto err_unmap_oprom; > - } > - > - vbt_size = ioread16(p + offsetof(struct vbt_header, vbt_size)); > - if (vbt_size > size) { > - drm_dbg(display->drm, > - "VBT incomplete (vbt_size overflows)\n"); > - goto err_unmap_oprom; > - } > - > - /* The rest will be validated by intel_bios_is_valid_vbt() */ > - vbt = kmalloc(round_up(vbt_size, 4), GFP_KERNEL); > - if (!vbt) > - goto err_unmap_oprom; > - > - memcpy_fromio(vbt, p, vbt_size); > - > - if (!intel_bios_is_valid_vbt(display, vbt, vbt_size)) > - goto err_free_vbt; > - > - pci_unmap_rom(pdev, oprom); > - > - if (sizep) > - *sizep = vbt_size; > - > - drm_dbg_kms(display->drm, "Found valid VBT in PCI ROM\n"); > - > - return vbt; > - > -err_free_vbt: > - kfree(vbt); > -err_unmap_oprom: > - pci_unmap_rom(pdev, oprom); > - > +err_free_rom: > + intel_rom_free(rom); > return NULL; > } > > @@ -3220,11 +3128,11 @@ static const struct vbt_header *intel_bios_get_vbt(struct intel_display *display > */ > if (!vbt && IS_DGFX(i915)) > with_intel_runtime_pm(&i915->runtime_pm, wakeref) > - vbt = spi_oprom_get_vbt(display, sizep); > + vbt = oprom_get_vbt(display, intel_rom_spi(i915), sizep, "SPI flash"); > > if (!vbt) > with_intel_runtime_pm(&i915->runtime_pm, wakeref) > - vbt = oprom_get_vbt(display, sizep); > + vbt = oprom_get_vbt(display, intel_rom_pci(i915), sizep, "PCI ROM"); > > return vbt; > } > diff --git a/drivers/gpu/drm/i915/soc/intel_rom.c b/drivers/gpu/drm/i915/soc/intel_rom.c > new file mode 100644 > index 000000000000..243d98cab8c3 > --- /dev/null > +++ b/drivers/gpu/drm/i915/soc/intel_rom.c > @@ -0,0 +1,160 @@ > +// SPDX-License-Identifier: MIT > +/* > + * Copyright © 2024 Intel Corporation > + */ > + > +#include "i915_drv.h" > +#include "i915_reg.h" > + > +#include "intel_rom.h" > +#include "intel_uncore.h" > + > +struct intel_rom { > + /* for PCI ROM */ > + struct pci_dev *pdev; > + void __iomem *oprom; > + > + /* for SPI */ > + struct intel_uncore *uncore; > + loff_t offset; > + > + size_t size; > + > + u32 (*read32)(struct intel_rom *rom, loff_t offset); > + u16 (*read16)(struct intel_rom *rom, loff_t offset); > + void (*read_block)(struct intel_rom *rom, void *data, loff_t offset, size_t size); > + void (*free)(struct intel_rom *rom); > +}; > + > +static u32 spi_read32(struct intel_rom *rom, loff_t offset) > +{ > + intel_uncore_write(rom->uncore, PRIMARY_SPI_ADDRESS, > + rom->offset + offset); > + > + return intel_uncore_read(rom->uncore, PRIMARY_SPI_TRIGGER); > +} > + > +static u16 spi_read16(struct intel_rom *rom, loff_t offset) > +{ > + return spi_read32(rom, offset) & 0xffff; > +} > + > +struct intel_rom *intel_rom_spi(struct drm_i915_private *i915) Would be nice to get rid of struct drm_i915_private too, but then it needs pci_dev and uncore, and we'll need to abstract uncore too, so let's just roll with this as a concrete step forward. > +{ > + struct intel_rom *rom; > + u32 static_region; > + > + rom = kzalloc(sizeof(*rom), GFP_KERNEL); > + if (!rom) > + return NULL; > + > + rom->uncore = &i915->uncore; > + > + static_region = intel_uncore_read(rom->uncore, SPI_STATIC_REGIONS); > + static_region &= OPTIONROM_SPI_REGIONID_MASK; > + intel_uncore_write(rom->uncore, PRIMARY_SPI_REGIONID, static_region); > + > + rom->offset = intel_uncore_read(rom->uncore, OROM_OFFSET) & OROM_OFFSET_MASK; > + > + rom->size = 0x200000; > + > + rom->read32 = spi_read32; > + rom->read16 = spi_read16; > + > + return rom; > +} > + > +static u32 pci_read32(struct intel_rom *rom, loff_t offset) > +{ > + return ioread32(rom->oprom + offset); > +} > + > +static u16 pci_read16(struct intel_rom *rom, loff_t offset) > +{ > + return ioread16(rom->oprom + offset); > +} > + > +static void pci_read_block(struct intel_rom *rom, void *data, > + loff_t offset, size_t size) > +{ > + memcpy_fromio(data, rom->oprom + offset, size); > +} > + > +static void pci_free(struct intel_rom *rom) > +{ > + pci_unmap_rom(rom->pdev, rom->oprom); > +} > + > +struct intel_rom *intel_rom_pci(struct drm_i915_private *i915) > +{ > + struct intel_rom *rom; > + > + rom = kzalloc(sizeof(*rom), GFP_KERNEL); > + if (!rom) > + return NULL; > + > + rom->pdev = to_pci_dev(i915->drm.dev); > + > + rom->oprom = pci_map_rom(rom->pdev, &rom->size); > + if (!rom->oprom) { > + kfree(rom); > + return NULL; > + } > + > + rom->read32 = pci_read32; > + rom->read16 = pci_read16; > + rom->read_block = pci_read_block; > + rom->free = pci_free; > + > + return rom; > +} > + > +u32 intel_rom_read32(struct intel_rom *rom, loff_t offset) > +{ > + return rom->read32(rom, offset); > +} > + > +u16 intel_rom_read16(struct intel_rom *rom, loff_t offset) > +{ > + return rom->read16(rom, offset); > +} > + > +void intel_rom_read_block(struct intel_rom *rom, void *data, > + loff_t offset, size_t size) > +{ > + u32 *ptr = data; > + loff_t index; Just nitpicking, but should this (and rom reads above) now sanity check offset+size against rom->size? IDK if it's worth it for such a simple thing. The caller is supposed to know what it's doing. > + > + if (rom->read_block) { > + rom->read_block(rom, data, offset, size); > + return; > + } > + > + for (index = 0; index < size; index += 4) > + *ptr++ = rom->read32(rom, offset + index); > +} > + > +loff_t intel_rom_find(struct intel_rom *rom, u32 needle) > +{ > + loff_t offset; > + > + for (offset = 0; offset < rom->size; offset += 4) { > + if (rom->read32(rom, offset) == needle) > + return offset; > + } > + > + return -ENOENT; > +} > + > +size_t intel_rom_size(struct intel_rom *rom) > +{ > + return rom->size; > +} > + > +void intel_rom_free(struct intel_rom *rom) > +{ > + if (rom && rom->free) > + rom->free(rom); > + > + kfree(rom); > +} > diff --git a/drivers/gpu/drm/i915/soc/intel_rom.h b/drivers/gpu/drm/i915/soc/intel_rom.h > new file mode 100644 > index 000000000000..fb2979c8ef7f > --- /dev/null > +++ b/drivers/gpu/drm/i915/soc/intel_rom.h > @@ -0,0 +1,25 @@ > +/* SPDX-License-Identifier: MIT */ > +/* > + * Copyright © 2024 Intel Corporation > + */ > + > +#ifndef __INTEL_ROM_H__ > +#define __INTEL_ROM_H__ > + > +#include <linux/types.h> > + > +struct drm_i915_private; > +struct intel_rom; > + > +struct intel_rom *intel_rom_spi(struct drm_i915_private *i915); > +struct intel_rom *intel_rom_pci(struct drm_i915_private *i915); > + > +u32 intel_rom_read32(struct intel_rom *rom, loff_t offset); > +u16 intel_rom_read16(struct intel_rom *rom, loff_t offset); > +void intel_rom_read_block(struct intel_rom *rom, void *data, > + loff_t offset, size_t size); > +loff_t intel_rom_find(struct intel_rom *rom, u32 needle); > +size_t intel_rom_size(struct intel_rom *rom); > +void intel_rom_free(struct intel_rom *rom); > + > +#endif /* __INTEL_ROM_H__ */ > diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile > index edfd812e0f41..dd1c0666e6bd 100644 > --- a/drivers/gpu/drm/xe/Makefile > +++ b/drivers/gpu/drm/xe/Makefile > @@ -180,7 +180,8 @@ xe-$(CONFIG_DRM_XE_DISPLAY) += \ > # SOC code shared with i915 > xe-$(CONFIG_DRM_XE_DISPLAY) += \ > i915-soc/intel_dram.o \ > - i915-soc/intel_pch.o > + i915-soc/intel_pch.o \ > + i915-soc/intel_rom.o > > # Display code shared with i915 > xe-$(CONFIG_DRM_XE_DISPLAY) += \ > diff --git a/drivers/gpu/drm/xe/compat-i915-headers/soc/intel_rom.h b/drivers/gpu/drm/xe/compat-i915-headers/soc/intel_rom.h > new file mode 100644 > index 000000000000..05cbfb697b2b > --- /dev/null > +++ b/drivers/gpu/drm/xe/compat-i915-headers/soc/intel_rom.h > @@ -0,0 +1,6 @@ > +/* SPDX-License-Identifier: MIT */ > +/* > + * Copyright © 2024 Intel Corporation > + */ > + > +#include "../../../i915/soc/intel_rom.h" -- Jani Nikula, Intel ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 5/5] drm/i915/bios: Extract soc/intel_rom.c 2024-09-12 12:44 ` Jani Nikula @ 2024-09-20 17:02 ` Ville Syrjälä 2024-09-23 9:13 ` Jani Nikula 0 siblings, 1 reply; 23+ messages in thread From: Ville Syrjälä @ 2024-09-20 17:02 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx, intel-xe On Thu, Sep 12, 2024 at 03:44:32PM +0300, Jani Nikula wrote: > On Tue, 10 Sep 2024, Ville Syrjala <ville.syrjala@linux.intel.com> wrote: > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > > Abstract away the nuts and bolts of the SPI vs. PCI ROM > > stuff, and hide it all in soc/intel_rom.c so that the > > VBT code doesn't have to care about this stuff. > > > > This leaves intel_bios.c with a single codepath that > > can focus on the details related to the VBT layout. > > > > This should have no functional changes. > > Neat! Some nitpicks inline, but overall, > > Reviewed-by: Jani Nikula <jani.nikula@intel.com> > > > > > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > > --- > > drivers/gpu/drm/i915/Makefile | 3 +- > > drivers/gpu/drm/i915/display/intel_bios.c | 150 ++++------------ > > drivers/gpu/drm/i915/soc/intel_rom.c | 160 ++++++++++++++++++ > > drivers/gpu/drm/i915/soc/intel_rom.h | 25 +++ > > drivers/gpu/drm/xe/Makefile | 3 +- > > .../xe/compat-i915-headers/soc/intel_rom.h | 6 + > > 6 files changed, 224 insertions(+), 123 deletions(-) > > create mode 100644 drivers/gpu/drm/i915/soc/intel_rom.c > > create mode 100644 drivers/gpu/drm/i915/soc/intel_rom.h > > create mode 100644 drivers/gpu/drm/xe/compat-i915-headers/soc/intel_rom.h > > > > diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile > > index c63fa2133ccb..d14c8870aecb 100644 > > --- a/drivers/gpu/drm/i915/Makefile > > +++ b/drivers/gpu/drm/i915/Makefile > > @@ -51,7 +51,8 @@ i915-y += \ > > i915-y += \ > > soc/intel_dram.o \ > > soc/intel_gmch.o \ > > - soc/intel_pch.o > > + soc/intel_pch.o \ > > + soc/intel_rom.o > > > > # core library code > > i915-y += \ > > diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c > > index 0b92b494117f..37d4b4ddfa95 100644 > > --- a/drivers/gpu/drm/i915/display/intel_bios.c > > +++ b/drivers/gpu/drm/i915/display/intel_bios.c > > @@ -33,12 +33,12 @@ > > #include <drm/drm_edid.h> > > #include <drm/drm_fixed.h> > > > > +#include "soc/intel_rom.h" > > + > > #include "i915_drv.h" > > -#include "i915_reg.h" > > #include "intel_display.h" > > #include "intel_display_types.h" > > #include "intel_gmbus.h" > > -#include "intel_uncore.h" > > > > #define _INTEL_BIOS_PRIVATE > > #include "intel_vbt_defs.h" > > @@ -3055,150 +3055,58 @@ static struct vbt_header *firmware_get_vbt(struct intel_display *display, > > return vbt; > > } > > > > -static u32 intel_spi_read32(struct intel_uncore *uncore, u32 offset) > > +static struct vbt_header *oprom_get_vbt(struct intel_display *display, > > + struct intel_rom *rom, > > + size_t *size, const char *type) > > { > > - intel_uncore_write(uncore, PRIMARY_SPI_ADDRESS, offset); > > + struct vbt_header *vbt; > > + size_t vbt_size; > > + loff_t offset; > > > > - return intel_uncore_read(uncore, PRIMARY_SPI_TRIGGER); > > -} > > - > > -static u16 intel_spi_read16(struct intel_uncore *uncore, u32 offset) > > -{ > > - return intel_spi_read32(uncore, offset) & 0xffff; > > -} > > - > > -static struct vbt_header *spi_oprom_get_vbt(struct intel_display *display, > > - size_t *size) > > -{ > > - struct drm_i915_private *i915 = to_i915(display->drm); > > - u32 count, data, found, store = 0; > > - u32 static_region, oprom_offset; > > - u32 oprom_size = 0x200000; > > - u16 vbt_size; > > - u32 *vbt; > > - > > - static_region = intel_uncore_read(&i915->uncore, SPI_STATIC_REGIONS); > > - static_region &= OPTIONROM_SPI_REGIONID_MASK; > > - intel_uncore_write(&i915->uncore, PRIMARY_SPI_REGIONID, static_region); > > - > > - oprom_offset = intel_uncore_read(&i915->uncore, OROM_OFFSET); > > - oprom_offset &= OROM_OFFSET_MASK; > > + if (!rom) > > + return NULL; > > > > BUILD_BUG_ON(sizeof(vbt_signature) != sizeof(u32)); > > > > - for (count = 0; count < oprom_size; count += 4) { > > - data = intel_spi_read32(&i915->uncore, oprom_offset + count); > > - if (data == *((const u32 *)vbt_signature)) { > > - found = oprom_offset + count; > > - break; > > - } > > - } > > + offset = intel_rom_find(rom, *(const u32 *)vbt_signature); > > + if (offset < 0) > > + goto err_free_rom; > > > > - if (count >= oprom_size) > > - goto err_not_found; > > - > > - if (sizeof(struct vbt_header) > oprom_size - count) { > > + if (sizeof(struct vbt_header) > intel_rom_size(rom) - offset) { > > drm_dbg(display->drm, "VBT header incomplete\n"); > > - goto err_not_found; > > + goto err_free_rom; > > } > > > > - /* Get VBT size and allocate space for the VBT */ > > - vbt_size = intel_spi_read16(&i915->uncore, > > - found + offsetof(struct vbt_header, vbt_size)); > > + BUILD_BUG_ON(sizeof(vbt->vbt_size) != sizeof(u16)); > > > > - if (vbt_size > oprom_size - count) { > > - drm_dbg(display->drm, > > - "VBT incomplete (vbt_size overflows)\n"); > > - goto err_not_found; > > + vbt_size = intel_rom_read16(rom, offset + offsetof(struct vbt_header, vbt_size)); > > + if (vbt_size > intel_rom_size(rom) - offset) { > > + drm_dbg(display->drm, "VBT incomplete (vbt_size overflows)\n"); > > + goto err_free_rom; > > } > > > > vbt = kzalloc(round_up(vbt_size, 4), GFP_KERNEL); > > if (!vbt) > > - goto err_not_found; > > + goto err_free_rom; > > > > - for (count = 0; count < vbt_size; count += 4) > > - *(vbt + store++) = intel_spi_read32(&i915->uncore, found + count); > > + intel_rom_read_block(rom, vbt, offset, vbt_size); > > > > if (!intel_bios_is_valid_vbt(display, vbt, vbt_size)) > > goto err_free_vbt; > > > > - drm_dbg_kms(display->drm, "Found valid VBT in SPI flash\n"); > > + drm_dbg_kms(display->drm, "Found valid VBT in %s\n", type); > > There's some (pre-existing) drm_dbg vs. drm_dbg_kms discrepancy here. I'll prepare a patch to clean that up. > > > > > if (size) > > *size = vbt_size; > > > > + intel_rom_free(rom); > > + > > return (struct vbt_header *)vbt; > > The cast is now unnecessary. Ack. > > > > > err_free_vbt: > > kfree(vbt); > > -err_not_found: > > - return NULL; > > -} > > - > > -static struct vbt_header *oprom_get_vbt(struct intel_display *display, > > - size_t *sizep) > > -{ > > - struct pci_dev *pdev = to_pci_dev(display->drm->dev); > > - void __iomem *p = NULL, *oprom; > > - struct vbt_header *vbt; > > - u16 vbt_size; > > - size_t i, size; > > - > > - oprom = pci_map_rom(pdev, &size); > > - if (!oprom) > > - return NULL; > > - > > - BUILD_BUG_ON(sizeof(vbt_signature) != sizeof(u32)); > > - > > - /* Scour memory looking for the VBT signature. */ > > - for (i = 0; i + 4 < size; i += 4) { > > - if (ioread32(oprom + i) != *((const u32 *)vbt_signature)) > > - continue; > > - > > - p = oprom + i; > > - size -= i; > > - break; > > - } > > - > > - if (!p) > > - goto err_unmap_oprom; > > - > > - if (sizeof(struct vbt_header) > size) { > > - drm_dbg(display->drm, "VBT header incomplete\n"); > > - goto err_unmap_oprom; > > - } > > - > > - vbt_size = ioread16(p + offsetof(struct vbt_header, vbt_size)); > > - if (vbt_size > size) { > > - drm_dbg(display->drm, > > - "VBT incomplete (vbt_size overflows)\n"); > > - goto err_unmap_oprom; > > - } > > - > > - /* The rest will be validated by intel_bios_is_valid_vbt() */ > > - vbt = kmalloc(round_up(vbt_size, 4), GFP_KERNEL); > > - if (!vbt) > > - goto err_unmap_oprom; > > - > > - memcpy_fromio(vbt, p, vbt_size); > > - > > - if (!intel_bios_is_valid_vbt(display, vbt, vbt_size)) > > - goto err_free_vbt; > > - > > - pci_unmap_rom(pdev, oprom); > > - > > - if (sizep) > > - *sizep = vbt_size; > > - > > - drm_dbg_kms(display->drm, "Found valid VBT in PCI ROM\n"); > > - > > - return vbt; > > - > > -err_free_vbt: > > - kfree(vbt); > > -err_unmap_oprom: > > - pci_unmap_rom(pdev, oprom); > > - > > +err_free_rom: > > + intel_rom_free(rom); > > return NULL; > > } > > > > @@ -3220,11 +3128,11 @@ static const struct vbt_header *intel_bios_get_vbt(struct intel_display *display > > */ > > if (!vbt && IS_DGFX(i915)) > > with_intel_runtime_pm(&i915->runtime_pm, wakeref) > > - vbt = spi_oprom_get_vbt(display, sizep); > > + vbt = oprom_get_vbt(display, intel_rom_spi(i915), sizep, "SPI flash"); > > > > if (!vbt) > > with_intel_runtime_pm(&i915->runtime_pm, wakeref) > > - vbt = oprom_get_vbt(display, sizep); > > + vbt = oprom_get_vbt(display, intel_rom_pci(i915), sizep, "PCI ROM"); > > > > return vbt; > > } > > diff --git a/drivers/gpu/drm/i915/soc/intel_rom.c b/drivers/gpu/drm/i915/soc/intel_rom.c > > new file mode 100644 > > index 000000000000..243d98cab8c3 > > --- /dev/null > > +++ b/drivers/gpu/drm/i915/soc/intel_rom.c > > @@ -0,0 +1,160 @@ > > +// SPDX-License-Identifier: MIT > > +/* > > + * Copyright © 2024 Intel Corporation > > + */ > > + > > +#include "i915_drv.h" > > +#include "i915_reg.h" > > + > > +#include "intel_rom.h" > > +#include "intel_uncore.h" > > + > > +struct intel_rom { > > + /* for PCI ROM */ > > + struct pci_dev *pdev; > > + void __iomem *oprom; > > + > > + /* for SPI */ > > + struct intel_uncore *uncore; > > + loff_t offset; > > + > > + size_t size; > > + > > + u32 (*read32)(struct intel_rom *rom, loff_t offset); > > + u16 (*read16)(struct intel_rom *rom, loff_t offset); > > + void (*read_block)(struct intel_rom *rom, void *data, loff_t offset, size_t size); > > + void (*free)(struct intel_rom *rom); > > +}; > > + > > +static u32 spi_read32(struct intel_rom *rom, loff_t offset) > > +{ > > + intel_uncore_write(rom->uncore, PRIMARY_SPI_ADDRESS, > > + rom->offset + offset); > > + > > + return intel_uncore_read(rom->uncore, PRIMARY_SPI_TRIGGER); > > +} > > + > > +static u16 spi_read16(struct intel_rom *rom, loff_t offset) > > +{ > > + return spi_read32(rom, offset) & 0xffff; > > +} > > + > > +struct intel_rom *intel_rom_spi(struct drm_i915_private *i915) > > Would be nice to get rid of struct drm_i915_private too, but then it > needs pci_dev and uncore, and we'll need to abstract uncore too, so > let's just roll with this as a concrete step forward. Yeah, dunno what we'll do about that suff. > > > +{ > > + struct intel_rom *rom; > > + u32 static_region; > > + > > + rom = kzalloc(sizeof(*rom), GFP_KERNEL); > > + if (!rom) > > + return NULL; > > + > > + rom->uncore = &i915->uncore; > > + > > + static_region = intel_uncore_read(rom->uncore, SPI_STATIC_REGIONS); > > + static_region &= OPTIONROM_SPI_REGIONID_MASK; > > + intel_uncore_write(rom->uncore, PRIMARY_SPI_REGIONID, static_region); > > + > > + rom->offset = intel_uncore_read(rom->uncore, OROM_OFFSET) & OROM_OFFSET_MASK; > > + > > + rom->size = 0x200000; > > + > > + rom->read32 = spi_read32; > > + rom->read16 = spi_read16; > > + > > + return rom; > > +} > > + > > +static u32 pci_read32(struct intel_rom *rom, loff_t offset) > > +{ > > + return ioread32(rom->oprom + offset); > > +} > > + > > +static u16 pci_read16(struct intel_rom *rom, loff_t offset) > > +{ > > + return ioread16(rom->oprom + offset); > > +} > > + > > +static void pci_read_block(struct intel_rom *rom, void *data, > > + loff_t offset, size_t size) > > +{ > > + memcpy_fromio(data, rom->oprom + offset, size); > > +} > > + > > +static void pci_free(struct intel_rom *rom) > > +{ > > + pci_unmap_rom(rom->pdev, rom->oprom); > > +} > > + > > +struct intel_rom *intel_rom_pci(struct drm_i915_private *i915) > > +{ > > + struct intel_rom *rom; > > + > > + rom = kzalloc(sizeof(*rom), GFP_KERNEL); > > + if (!rom) > > + return NULL; > > + > > + rom->pdev = to_pci_dev(i915->drm.dev); > > + > > + rom->oprom = pci_map_rom(rom->pdev, &rom->size); > > + if (!rom->oprom) { > > + kfree(rom); > > + return NULL; > > + } > > + > > + rom->read32 = pci_read32; > > + rom->read16 = pci_read16; > > + rom->read_block = pci_read_block; > > + rom->free = pci_free; > > + > > + return rom; > > +} > > + > > +u32 intel_rom_read32(struct intel_rom *rom, loff_t offset) > > +{ > > + return rom->read32(rom, offset); > > +} > > + > > +u16 intel_rom_read16(struct intel_rom *rom, loff_t offset) > > +{ > > + return rom->read16(rom, offset); > > +} > > + > > +void intel_rom_read_block(struct intel_rom *rom, void *data, > > + loff_t offset, size_t size) > > +{ > > + u32 *ptr = data; > > + loff_t index; > > Just nitpicking, but should this (and rom reads above) now sanity check > offset+size against rom->size? IDK if it's worth it for such a simple > thing. The caller is supposed to know what it's doing. I considered that but decided to cut my losses before I end up designing a whole new kernel subsystem. > > > + > > + if (rom->read_block) { > > + rom->read_block(rom, data, offset, size); > > + return; > > + } > > + > > + for (index = 0; index < size; index += 4) > > + *ptr++ = rom->read32(rom, offset + index); > > +} > > + > > +loff_t intel_rom_find(struct intel_rom *rom, u32 needle) > > +{ > > + loff_t offset; > > + > > + for (offset = 0; offset < rom->size; offset += 4) { > > + if (rom->read32(rom, offset) == needle) > > + return offset; > > + } > > + > > + return -ENOENT; > > +} > > + > > +size_t intel_rom_size(struct intel_rom *rom) > > +{ > > + return rom->size; > > +} > > + > > +void intel_rom_free(struct intel_rom *rom) > > +{ > > + if (rom && rom->free) > > + rom->free(rom); > > + > > + kfree(rom); > > +} > > diff --git a/drivers/gpu/drm/i915/soc/intel_rom.h b/drivers/gpu/drm/i915/soc/intel_rom.h > > new file mode 100644 > > index 000000000000..fb2979c8ef7f > > --- /dev/null > > +++ b/drivers/gpu/drm/i915/soc/intel_rom.h > > @@ -0,0 +1,25 @@ > > +/* SPDX-License-Identifier: MIT */ > > +/* > > + * Copyright © 2024 Intel Corporation > > + */ > > + > > +#ifndef __INTEL_ROM_H__ > > +#define __INTEL_ROM_H__ > > + > > +#include <linux/types.h> > > + > > +struct drm_i915_private; > > +struct intel_rom; > > + > > +struct intel_rom *intel_rom_spi(struct drm_i915_private *i915); > > +struct intel_rom *intel_rom_pci(struct drm_i915_private *i915); > > + > > +u32 intel_rom_read32(struct intel_rom *rom, loff_t offset); > > +u16 intel_rom_read16(struct intel_rom *rom, loff_t offset); > > +void intel_rom_read_block(struct intel_rom *rom, void *data, > > + loff_t offset, size_t size); > > +loff_t intel_rom_find(struct intel_rom *rom, u32 needle); > > +size_t intel_rom_size(struct intel_rom *rom); > > +void intel_rom_free(struct intel_rom *rom); > > + > > +#endif /* __INTEL_ROM_H__ */ > > diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile > > index edfd812e0f41..dd1c0666e6bd 100644 > > --- a/drivers/gpu/drm/xe/Makefile > > +++ b/drivers/gpu/drm/xe/Makefile > > @@ -180,7 +180,8 @@ xe-$(CONFIG_DRM_XE_DISPLAY) += \ > > # SOC code shared with i915 > > xe-$(CONFIG_DRM_XE_DISPLAY) += \ > > i915-soc/intel_dram.o \ > > - i915-soc/intel_pch.o > > + i915-soc/intel_pch.o \ > > + i915-soc/intel_rom.o > > > > # Display code shared with i915 > > xe-$(CONFIG_DRM_XE_DISPLAY) += \ > > diff --git a/drivers/gpu/drm/xe/compat-i915-headers/soc/intel_rom.h b/drivers/gpu/drm/xe/compat-i915-headers/soc/intel_rom.h > > new file mode 100644 > > index 000000000000..05cbfb697b2b > > --- /dev/null > > +++ b/drivers/gpu/drm/xe/compat-i915-headers/soc/intel_rom.h > > @@ -0,0 +1,6 @@ > > +/* SPDX-License-Identifier: MIT */ > > +/* > > + * Copyright © 2024 Intel Corporation > > + */ > > + > > +#include "../../../i915/soc/intel_rom.h" > > -- > Jani Nikula, Intel -- Ville Syrjälä Intel ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 5/5] drm/i915/bios: Extract soc/intel_rom.c 2024-09-20 17:02 ` Ville Syrjälä @ 2024-09-23 9:13 ` Jani Nikula 0 siblings, 0 replies; 23+ messages in thread From: Jani Nikula @ 2024-09-23 9:13 UTC (permalink / raw) To: Ville Syrjälä; +Cc: intel-gfx, intel-xe On Fri, 20 Sep 2024, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote: > On Thu, Sep 12, 2024 at 03:44:32PM +0300, Jani Nikula wrote: >> Just nitpicking, but should this (and rom reads above) now sanity check >> offset+size against rom->size? IDK if it's worth it for such a simple >> thing. The caller is supposed to know what it's doing. > > I considered that but decided to cut my losses before I > end up designing a whole new kernel subsystem. Good call. :) BR, Jani. -- Jani Nikula, Intel ^ permalink raw reply [flat|nested] 23+ messages in thread
* ✗ Fi.CI.CHECKPATCH: warning for drm/i915/bios: Refactor ROM access 2024-09-10 13:42 [PATCH 0/5] drm/i915/bios: Refactor ROM access Ville Syrjala ` (4 preceding siblings ...) 2024-09-10 13:42 ` [PATCH 5/5] drm/i915/bios: Extract soc/intel_rom.c Ville Syrjala @ 2024-09-10 17:29 ` Patchwork 2024-09-10 17:29 ` ✗ Fi.CI.SPARSE: " Patchwork ` (2 subsequent siblings) 8 siblings, 0 replies; 23+ messages in thread From: Patchwork @ 2024-09-10 17:29 UTC (permalink / raw) To: Ville Syrjälä; +Cc: intel-gfx == Series Details == Series: drm/i915/bios: Refactor ROM access URL : https://patchwork.freedesktop.org/series/138477/ State : warning == Summary == Error: dim checkpatch failed bb062a0a0f9d drm/i915/bios: Add some size checks to SPI VBT read c5324d24888e drm/i915/bios: Round PCI ROM VBT allocation to multiple of 4 ce1343a6bbda drm/i915/bios: Extract intel_spi_read16() f7a27e3cc319 drm/i915/bios: Extract vbt_signature[] afb82d4fd4a3 drm/i915/bios: Extract soc/intel_rom.c -:244: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating? #244: new file mode 100644 total: 0 errors, 1 warnings, 0 checks, 411 lines checked ^ permalink raw reply [flat|nested] 23+ messages in thread
* ✗ Fi.CI.SPARSE: warning for drm/i915/bios: Refactor ROM access 2024-09-10 13:42 [PATCH 0/5] drm/i915/bios: Refactor ROM access Ville Syrjala ` (5 preceding siblings ...) 2024-09-10 17:29 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915/bios: Refactor ROM access Patchwork @ 2024-09-10 17:29 ` Patchwork 2024-09-10 17:46 ` ✓ Fi.CI.BAT: success " Patchwork 2024-09-11 9:10 ` ✗ Fi.CI.IGT: failure " Patchwork 8 siblings, 0 replies; 23+ messages in thread From: Patchwork @ 2024-09-10 17:29 UTC (permalink / raw) To: Ville Syrjälä; +Cc: intel-gfx == Series Details == Series: drm/i915/bios: Refactor ROM access URL : https://patchwork.freedesktop.org/series/138477/ State : warning == Summary == Error: dim sparse failed Sparse version: v0.6.2 Fast mode used, each commit won't be checked separately. +./arch/x86/include/asm/bitops.h:116:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:147:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:149:9: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:153:26: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:155:16: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:155:9: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:173:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:175:9: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:179:35: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:181:16: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:181:9: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:185:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:187:9: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:191:35: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:194:16: warning: unreplaced symbol 'oldbit' +./arch/x86/include/asm/bitops.h:194:9: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:236:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:238:9: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:243:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:245:9: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return' +./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old' +./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old' +./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old' +./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old' +./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:137:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:139:9: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'break' +./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'continue' +./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol '___p1' +./include/asm-generic/bitops/generic-non-atomic.h:140:23: warning: unreplaced symbol '___p1' +./include/asm-generic/bitops/generic-non-atomic.h:140:9: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:166:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:168:9: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:169:9: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:170:9: warning: unreplaced symbol 'val' +./include/asm-generic/bitops/generic-non-atomic.h:172:19: warning: unreplaced symbol 'val' +./include/asm-generic/bitops/generic-non-atomic.h:172:25: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:172:9: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:28:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:30:9: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:31:9: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:33:10: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:33:16: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:37:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:39:9: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:40:9: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:42:10: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:42:16: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:55:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:57:9: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:58:9: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:60:10: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:60:15: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:73:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:75:9: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:76:9: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:77:9: warning: unreplaced symbol 'old' +./include/asm-generic/bitops/generic-non-atomic.h:79:10: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:79:14: warning: unreplaced symbol 'old' +./include/asm-generic/bitops/generic-non-atomic.h:79:20: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:80:17: warning: unreplaced symbol 'old' +./include/asm-generic/bitops/generic-non-atomic.h:80:23: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:80:9: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:93:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/generic-non-atomic.h:95:9: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/generic-non-atomic.h:96:9: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:97:9: warning: unreplaced symbol 'old' +./include/asm-generic/bitops/generic-non-atomic.h:99:10: warning: unreplaced symbol 'p' +./include/asm-generic/bitops/generic-non-atomic.h:99:14: warning: unreplaced symbol 'old' +./include/asm-generic/bitops/generic-non-atomic.h:99:21: warning: unreplaced symbol 'mask' +./include/asm-generic/bitops/instrumented-non-atomic.h:100:9: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/instrumented-non-atomic.h:112:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/instrumented-non-atomic.h:115:9: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/instrumented-non-atomic.h:127:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/instrumented-non-atomic.h:130:9: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/instrumented-non-atomic.h:139:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/instrumented-non-atomic.h:142:9: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/instrumented-non-atomic.h:151:1: warning: too many warnings +./include/asm-generic/bitops/instrumented-non-atomic.h:154:9: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/instrumented-non-atomic.h:26:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/instrumented-non-atomic.h:42:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/instrumented-non-atomic.h:58:1: warning: unreplaced symbol 'return' +./include/asm-generic/bitops/instrumented-non-atomic.h:97:1: warning: unreplaced symbol 'return' ^ permalink raw reply [flat|nested] 23+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915/bios: Refactor ROM access 2024-09-10 13:42 [PATCH 0/5] drm/i915/bios: Refactor ROM access Ville Syrjala ` (6 preceding siblings ...) 2024-09-10 17:29 ` ✗ Fi.CI.SPARSE: " Patchwork @ 2024-09-10 17:46 ` Patchwork 2024-09-11 9:10 ` ✗ Fi.CI.IGT: failure " Patchwork 8 siblings, 0 replies; 23+ messages in thread From: Patchwork @ 2024-09-10 17:46 UTC (permalink / raw) To: Ville Syrjälä; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 13373 bytes --] == Series Details == Series: drm/i915/bios: Refactor ROM access URL : https://patchwork.freedesktop.org/series/138477/ State : success == Summary == CI Bug Log - changes from CI_DRM_15389 -> Patchwork_138477v1 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/index.html Participating hosts (40 -> 39) ------------------------------ Additional (2): fi-cfl-8109u bat-arls-1 Missing (3): bat-dg2-11 fi-snb-2520m fi-bsw-n3050 Known issues ------------ Here are the changes found in Patchwork_138477v1 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@debugfs_test@basic-hwmon: - bat-arls-1: NOTRUN -> [SKIP][1] ([i915#9318]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arls-1/igt@debugfs_test@basic-hwmon.html * igt@fbdev@read: - bat-arls-1: NOTRUN -> [DMESG-FAIL][2] ([i915#12102]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arls-1/igt@fbdev@read.html * igt@gem_huc_copy@huc-copy: - fi-cfl-8109u: NOTRUN -> [SKIP][3] ([i915#2190]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/fi-cfl-8109u/igt@gem_huc_copy@huc-copy.html * igt@gem_lmem_swapping@basic: - bat-arls-1: NOTRUN -> [SKIP][4] ([i915#10213]) +3 other tests skip [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arls-1/igt@gem_lmem_swapping@basic.html * igt@gem_lmem_swapping@verify-random: - fi-cfl-8109u: NOTRUN -> [SKIP][5] ([i915#4613]) +3 other tests skip [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/fi-cfl-8109u/igt@gem_lmem_swapping@verify-random.html * igt@gem_mmap@basic: - bat-arls-1: NOTRUN -> [SKIP][6] ([i915#11343] / [i915#4083]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arls-1/igt@gem_mmap@basic.html * igt@gem_render_tiled_blits@basic: - bat-arls-1: NOTRUN -> [SKIP][7] ([i915#10197] / [i915#10211] / [i915#4079]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arls-1/igt@gem_render_tiled_blits@basic.html * igt@gem_tiled_blits@basic: - bat-arls-1: NOTRUN -> [SKIP][8] ([i915#10196] / [i915#4077]) +2 other tests skip [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arls-1/igt@gem_tiled_blits@basic.html * igt@gem_tiled_pread_basic: - bat-arls-1: NOTRUN -> [SKIP][9] ([i915#10206] / [i915#4079]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arls-1/igt@gem_tiled_pread_basic.html * igt@i915_module_load@reload: - bat-apl-1: [PASS][10] -> [DMESG-WARN][11] ([i915#180] / [i915#1982]) +3 other tests dmesg-warn [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/bat-apl-1/igt@i915_module_load@reload.html [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-apl-1/igt@i915_module_load@reload.html * igt@i915_pm_rps@basic-api: - bat-arls-1: NOTRUN -> [SKIP][12] ([i915#10209] / [i915#11681]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arls-1/igt@i915_pm_rps@basic-api.html * igt@i915_selftest@live: - bat-arls-1: NOTRUN -> [DMESG-WARN][13] ([i915#10341] / [i915#12133]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arls-1/igt@i915_selftest@live.html * igt@i915_selftest@live@hangcheck: - bat-arls-1: NOTRUN -> [DMESG-WARN][14] ([i915#11349]) [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arls-1/igt@i915_selftest@live@hangcheck.html * igt@i915_selftest@live@sanitycheck: - bat-apl-1: [PASS][15] -> [DMESG-WARN][16] ([i915#11621]) +79 other tests dmesg-warn [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/bat-apl-1/igt@i915_selftest@live@sanitycheck.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-apl-1/igt@i915_selftest@live@sanitycheck.html * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy: - bat-arls-1: NOTRUN -> [SKIP][17] ([i915#10200] / [i915#12203]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arls-1/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html * igt@kms_addfb_basic@basic-y-tiled-legacy: - bat-arls-1: NOTRUN -> [SKIP][18] ([i915#10200]) +8 other tests skip [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arls-1/igt@kms_addfb_basic@basic-y-tiled-legacy.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy: - bat-arls-1: NOTRUN -> [SKIP][19] ([i915#10202] / [i915#11346]) +1 other test skip [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arls-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html * igt@kms_dsc@dsc-basic: - fi-cfl-8109u: NOTRUN -> [SKIP][20] +11 other tests skip [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/fi-cfl-8109u/igt@kms_dsc@dsc-basic.html - bat-arls-1: NOTRUN -> [SKIP][21] ([i915#11346] / [i915#9886]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arls-1/igt@kms_dsc@dsc-basic.html * igt@kms_flip@basic-flip-vs-wf_vblank@a-dp1: - bat-apl-1: [PASS][22] -> [DMESG-WARN][23] ([i915#11621] / [i915#180] / [i915#1982]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/bat-apl-1/igt@kms_flip@basic-flip-vs-wf_vblank@a-dp1.html [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-apl-1/igt@kms_flip@basic-flip-vs-wf_vblank@a-dp1.html * igt@kms_force_connector_basic@force-load-detect: - bat-arls-1: NOTRUN -> [SKIP][24] ([i915#10207] / [i915#11346]) [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arls-1/igt@kms_force_connector_basic@force-load-detect.html * igt@kms_pipe_crc_basic@nonblocking-crc: - bat-apl-1: [PASS][25] -> [DMESG-WARN][26] ([i915#180]) +10 other tests dmesg-warn [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/bat-apl-1/igt@kms_pipe_crc_basic@nonblocking-crc.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-apl-1/igt@kms_pipe_crc_basic@nonblocking-crc.html * igt@kms_pm_backlight@basic-brightness: - bat-arls-1: NOTRUN -> [SKIP][27] ([i915#11346] / [i915#9812]) [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arls-1/igt@kms_pm_backlight@basic-brightness.html * igt@kms_pm_rpm@basic-pci-d3-state: - bat-apl-1: [PASS][28] -> [DMESG-WARN][29] ([i915#11621] / [i915#180]) +33 other tests dmesg-warn [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/bat-apl-1/igt@kms_pm_rpm@basic-pci-d3-state.html [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-apl-1/igt@kms_pm_rpm@basic-pci-d3-state.html * igt@kms_psr@psr-primary-mmap-gtt: - bat-arls-1: NOTRUN -> [SKIP][30] ([i915#11346] / [i915#9732]) +3 other tests skip [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arls-1/igt@kms_psr@psr-primary-mmap-gtt.html * igt@kms_setmode@basic-clone-single-crtc: - bat-arls-1: NOTRUN -> [SKIP][31] ([i915#10208] / [i915#8809]) [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arls-1/igt@kms_setmode@basic-clone-single-crtc.html * igt@prime_vgem@basic-fence-read: - bat-arls-1: NOTRUN -> [SKIP][32] ([i915#10212] / [i915#3708]) [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arls-1/igt@prime_vgem@basic-fence-read.html * igt@prime_vgem@basic-gtt: - bat-arls-1: NOTRUN -> [SKIP][33] ([i915#10196] / [i915#3708] / [i915#4077]) +1 other test skip [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arls-1/igt@prime_vgem@basic-gtt.html * igt@prime_vgem@basic-read: - bat-arls-1: NOTRUN -> [SKIP][34] ([i915#10214] / [i915#3708]) [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arls-1/igt@prime_vgem@basic-read.html * igt@prime_vgem@basic-write: - bat-arls-1: NOTRUN -> [SKIP][35] ([i915#10216] / [i915#3708]) [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arls-1/igt@prime_vgem@basic-write.html #### Possible fixes #### * igt@i915_selftest@live: - bat-arlh-2: [INCOMPLETE][36] ([i915#10341] / [i915#12133]) -> [PASS][37] [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/bat-arlh-2/igt@i915_selftest@live.html [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arlh-2/igt@i915_selftest@live.html - bat-arls-2: [DMESG-WARN][38] ([i915#10341] / [i915#12133]) -> [PASS][39] [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/bat-arls-2/igt@i915_selftest@live.html [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arls-2/igt@i915_selftest@live.html * igt@i915_selftest@live@guc: - bat-arlh-2: [INCOMPLETE][40] -> [PASS][41] [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/bat-arlh-2/igt@i915_selftest@live@guc.html [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arlh-2/igt@i915_selftest@live@guc.html * igt@i915_selftest@live@hangcheck: - bat-arls-2: [DMESG-WARN][42] ([i915#11349]) -> [PASS][43] [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/bat-arls-2/igt@i915_selftest@live@hangcheck.html [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-arls-2/igt@i915_selftest@live@hangcheck.html * igt@i915_selftest@live@workarounds: - bat-mtlp-6: [ABORT][44] ([i915#12061]) -> [PASS][45] +1 other test pass [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/bat-mtlp-6/igt@i915_selftest@live@workarounds.html [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/bat-mtlp-6/igt@i915_selftest@live@workarounds.html [i915#10196]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10196 [i915#10197]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10197 [i915#10200]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10200 [i915#10202]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10202 [i915#10206]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10206 [i915#10207]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10207 [i915#10208]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10208 [i915#10209]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10209 [i915#10211]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10211 [i915#10212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10212 [i915#10213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10213 [i915#10214]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10214 [i915#10216]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10216 [i915#10341]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10341 [i915#11343]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11343 [i915#11346]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11346 [i915#11349]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11349 [i915#11621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11621 [i915#11681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11681 [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061 [i915#12102]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12102 [i915#12133]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12133 [i915#12203]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12203 [i915#180]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/180 [i915#1982]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1982 [i915#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190 [i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708 [i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077 [i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079 [i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083 [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613 [i915#8809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8809 [i915#9318]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9318 [i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732 [i915#9812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9812 [i915#9886]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9886 Build changes ------------- * Linux: CI_DRM_15389 -> Patchwork_138477v1 CI-20190529: 20190529 CI_DRM_15389: f25ffe1514b26574258bb767f5c6f53facdfaaca @ git://anongit.freedesktop.org/gfx-ci/linux IGT_8011: 26dca87f1252b7f6f0c0f833050256f0244d61e9 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_138477v1: f25ffe1514b26574258bb767f5c6f53facdfaaca @ git://anongit.freedesktop.org/gfx-ci/linux == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/index.html [-- Attachment #2: Type: text/html, Size: 16412 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
* ✗ Fi.CI.IGT: failure for drm/i915/bios: Refactor ROM access 2024-09-10 13:42 [PATCH 0/5] drm/i915/bios: Refactor ROM access Ville Syrjala ` (7 preceding siblings ...) 2024-09-10 17:46 ` ✓ Fi.CI.BAT: success " Patchwork @ 2024-09-11 9:10 ` Patchwork 8 siblings, 0 replies; 23+ messages in thread From: Patchwork @ 2024-09-11 9:10 UTC (permalink / raw) To: Ville Syrjälä; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 81799 bytes --] == Series Details == Series: drm/i915/bios: Refactor ROM access URL : https://patchwork.freedesktop.org/series/138477/ State : failure == Summary == CI Bug Log - changes from CI_DRM_15389_full -> Patchwork_138477v1_full ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with Patchwork_138477v1_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_138477v1_full, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them to document this new failure mode, which will reduce false positives in CI. Participating hosts (9 -> 10) ------------------------------ Additional (1): shard-snb-0 Possible new issues ------------------- Here are the unknown changes that may have been introduced in Patchwork_138477v1_full: ### IGT changes ### #### Possible regressions #### * igt@gem_mmap_offset@clear@smem0: - shard-dg2: NOTRUN -> [INCOMPLETE][1] +2 other tests incomplete [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-8/igt@gem_mmap_offset@clear@smem0.html * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20: - shard-rkl: NOTRUN -> [SKIP][2] +1 other test skip [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-3/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20.html New tests --------- New tests have been introduced between CI_DRM_15389_full and Patchwork_138477v1_full: ### New IGT tests (1) ### * igt@kms_cursor_crc@cursor-random-256x85@pipe-d-hdmi-a-2: - Statuses : 1 pass(s) - Exec time: [4.16] s Known issues ------------ Here are the changes found in Patchwork_138477v1_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@api_intel_bb@blit-reloc-keep-cache: - shard-dg1: NOTRUN -> [SKIP][3] ([i915#8411]) +1 other test skip [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@api_intel_bb@blit-reloc-keep-cache.html * igt@device_reset@unbind-cold-reset-rebind: - shard-dg1: NOTRUN -> [SKIP][4] ([i915#11078]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-15/igt@device_reset@unbind-cold-reset-rebind.html * igt@drm_fdinfo@busy-check-all@bcs0: - shard-dg1: NOTRUN -> [SKIP][5] ([i915#8414]) +18 other tests skip [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-17/igt@drm_fdinfo@busy-check-all@bcs0.html * igt@drm_fdinfo@isolation: - shard-dg2: NOTRUN -> [SKIP][6] ([i915#8414]) +7 other tests skip [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@drm_fdinfo@isolation.html * igt@drm_fdinfo@most-busy-idle-check-all: - shard-rkl: [PASS][7] -> [FAIL][8] ([i915#12179]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-rkl-1/igt@drm_fdinfo@most-busy-idle-check-all.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-5/igt@drm_fdinfo@most-busy-idle-check-all.html * igt@drm_fdinfo@most-busy-idle-check-all@rcs0: - shard-rkl: [PASS][9] -> [FAIL][10] ([i915#7742]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-rkl-1/igt@drm_fdinfo@most-busy-idle-check-all@rcs0.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-5/igt@drm_fdinfo@most-busy-idle-check-all@rcs0.html * igt@gem_basic@multigpu-create-close: - shard-dg1: NOTRUN -> [SKIP][11] ([i915#7697]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-17/igt@gem_basic@multigpu-create-close.html * igt@gem_ccs@block-multicopy-compressed: - shard-dg1: NOTRUN -> [SKIP][12] ([i915#9323]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-13/igt@gem_ccs@block-multicopy-compressed.html * igt@gem_ctx_persistence@heartbeat-close: - shard-mtlp: NOTRUN -> [SKIP][13] ([i915#8555]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-mtlp-2/igt@gem_ctx_persistence@heartbeat-close.html * igt@gem_ctx_persistence@heartbeat-many: - shard-dg1: NOTRUN -> [SKIP][14] ([i915#8555]) [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@gem_ctx_persistence@heartbeat-many.html * igt@gem_ctx_persistence@hostile: - shard-rkl: NOTRUN -> [FAIL][15] ([i915#11980]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-6/igt@gem_ctx_persistence@hostile.html * igt@gem_ctx_sseu@engines: - shard-dg2: NOTRUN -> [SKIP][16] ([i915#280]) [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-8/igt@gem_ctx_sseu@engines.html * igt@gem_ctx_sseu@invalid-sseu: - shard-dg1: NOTRUN -> [SKIP][17] ([i915#280]) +1 other test skip [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-17/igt@gem_ctx_sseu@invalid-sseu.html * igt@gem_eio@unwedge-stress: - shard-dg1: NOTRUN -> [FAIL][18] ([i915#5784]) [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@gem_eio@unwedge-stress.html * igt@gem_exec_balancer@bonded-dual: - shard-dg2: NOTRUN -> [SKIP][19] ([i915#4771]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@gem_exec_balancer@bonded-dual.html * igt@gem_exec_balancer@bonded-pair: - shard-dg1: NOTRUN -> [SKIP][20] ([i915#4771]) [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@gem_exec_balancer@bonded-pair.html * igt@gem_exec_balancer@bonded-semaphore: - shard-dg1: NOTRUN -> [SKIP][21] ([i915#4812]) +5 other tests skip [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@gem_exec_balancer@bonded-semaphore.html * igt@gem_exec_balancer@invalid-bonds: - shard-dg1: NOTRUN -> [SKIP][22] ([i915#4036]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-13/igt@gem_exec_balancer@invalid-bonds.html * igt@gem_exec_balancer@noheartbeat: - shard-dg2: NOTRUN -> [SKIP][23] ([i915#8555]) [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@gem_exec_balancer@noheartbeat.html * igt@gem_exec_balancer@parallel: - shard-rkl: NOTRUN -> [SKIP][24] ([i915#4525]) +1 other test skip [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-3/igt@gem_exec_balancer@parallel.html * igt@gem_exec_capture@capture-invisible: - shard-dg1: NOTRUN -> [SKIP][25] ([i915#6334]) +2 other tests skip [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@gem_exec_capture@capture-invisible.html * igt@gem_exec_fair@basic-none: - shard-dg1: NOTRUN -> [SKIP][26] ([i915#3539] / [i915#4852]) +7 other tests skip [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@gem_exec_fair@basic-none.html * igt@gem_exec_fair@basic-none-rrul@rcs0: - shard-glk: NOTRUN -> [FAIL][27] ([i915#2842]) +1 other test fail [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-glk7/igt@gem_exec_fair@basic-none-rrul@rcs0.html * igt@gem_exec_fair@basic-none-share: - shard-dg2: NOTRUN -> [SKIP][28] ([i915#3539] / [i915#4852]) [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@gem_exec_fair@basic-none-share.html * igt@gem_exec_fair@basic-pace-share: - shard-tglu: [PASS][29] -> [FAIL][30] ([i915#2842]) +1 other test fail [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-tglu-9/igt@gem_exec_fair@basic-pace-share.html [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-tglu-7/igt@gem_exec_fair@basic-pace-share.html * igt@gem_exec_fair@basic-sync: - shard-dg1: NOTRUN -> [SKIP][31] ([i915#3539]) [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-15/igt@gem_exec_fair@basic-sync.html * igt@gem_exec_reloc@basic-gtt-read-active: - shard-dg2: NOTRUN -> [SKIP][32] ([i915#3281]) +2 other tests skip [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-8/igt@gem_exec_reloc@basic-gtt-read-active.html * igt@gem_exec_reloc@basic-wc-read: - shard-dg1: NOTRUN -> [SKIP][33] ([i915#3281]) +20 other tests skip [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-15/igt@gem_exec_reloc@basic-wc-read.html * igt@gem_exec_reloc@basic-wc-read-noreloc: - shard-rkl: NOTRUN -> [SKIP][34] ([i915#3281]) +9 other tests skip [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-6/igt@gem_exec_reloc@basic-wc-read-noreloc.html * igt@gem_exec_reloc@basic-write-gtt: - shard-mtlp: NOTRUN -> [SKIP][35] ([i915#3281]) [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-mtlp-2/igt@gem_exec_reloc@basic-write-gtt.html * igt@gem_exec_schedule@semaphore-power: - shard-dg2: NOTRUN -> [SKIP][36] ([i915#4537] / [i915#4812]) +1 other test skip [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@gem_exec_schedule@semaphore-power.html * igt@gem_fence_thrash@bo-write-verify-y: - shard-dg2: NOTRUN -> [SKIP][37] ([i915#4860]) +2 other tests skip [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-3/igt@gem_fence_thrash@bo-write-verify-y.html * igt@gem_fenced_exec_thrash@no-spare-fences-busy: - shard-dg1: NOTRUN -> [SKIP][38] ([i915#4860]) +1 other test skip [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-15/igt@gem_fenced_exec_thrash@no-spare-fences-busy.html * igt@gem_lmem_swapping@basic: - shard-rkl: NOTRUN -> [SKIP][39] ([i915#4613]) +2 other tests skip [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-6/igt@gem_lmem_swapping@basic.html * igt@gem_lmem_swapping@random-engines: - shard-glk: NOTRUN -> [SKIP][40] ([i915#4613]) +2 other tests skip [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-glk3/igt@gem_lmem_swapping@random-engines.html * igt@gem_lmem_swapping@smem-oom: - shard-dg1: NOTRUN -> [DMESG-WARN][41] ([i915#1982] / [i915#5493]) [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-13/igt@gem_lmem_swapping@smem-oom.html * igt@gem_lmem_swapping@smem-oom@lmem0: - shard-dg2: [PASS][42] -> [TIMEOUT][43] ([i915#5493]) +1 other test timeout [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-dg2-1/igt@gem_lmem_swapping@smem-oom@lmem0.html [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-1/igt@gem_lmem_swapping@smem-oom@lmem0.html - shard-dg1: NOTRUN -> [DMESG-WARN][44] ([i915#1982] / [i915#4936] / [i915#5493]) [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-13/igt@gem_lmem_swapping@smem-oom@lmem0.html * igt@gem_media_vme: - shard-mtlp: NOTRUN -> [SKIP][45] ([i915#284]) [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-mtlp-2/igt@gem_media_vme.html * igt@gem_mmap@pf-nonblock: - shard-dg2: NOTRUN -> [SKIP][46] ([i915#4083]) +1 other test skip [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-3/igt@gem_mmap@pf-nonblock.html * igt@gem_mmap_gtt@medium-copy-xy: - shard-dg2: NOTRUN -> [SKIP][47] ([i915#4077]) +6 other tests skip [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@gem_mmap_gtt@medium-copy-xy.html * igt@gem_mmap_wc@write-read: - shard-dg1: NOTRUN -> [SKIP][48] ([i915#4083]) +9 other tests skip [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@gem_mmap_wc@write-read.html * igt@gem_partial_pwrite_pread@reads-snoop: - shard-mtlp: NOTRUN -> [SKIP][49] ([i915#3282]) [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-mtlp-2/igt@gem_partial_pwrite_pread@reads-snoop.html * igt@gem_partial_pwrite_pread@write: - shard-dg2: NOTRUN -> [SKIP][50] ([i915#3282]) [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-3/igt@gem_partial_pwrite_pread@write.html * igt@gem_partial_pwrite_pread@writes-after-reads-display: - shard-rkl: NOTRUN -> [SKIP][51] ([i915#3282]) +3 other tests skip [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-3/igt@gem_partial_pwrite_pread@writes-after-reads-display.html * igt@gem_pwrite@basic-exhaustion: - shard-dg1: NOTRUN -> [SKIP][52] ([i915#3282]) +5 other tests skip [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-15/igt@gem_pwrite@basic-exhaustion.html * igt@gem_pxp@create-regular-context-2: - shard-dg2: NOTRUN -> [SKIP][53] ([i915#4270]) +1 other test skip [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@gem_pxp@create-regular-context-2.html * igt@gem_pxp@verify-pxp-key-change-after-suspend-resume: - shard-dg1: NOTRUN -> [SKIP][54] ([i915#4270]) +6 other tests skip [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-13/igt@gem_pxp@verify-pxp-key-change-after-suspend-resume.html * igt@gem_pxp@verify-pxp-stale-buf-optout-execution: - shard-rkl: NOTRUN -> [SKIP][55] ([i915#4270]) [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-6/igt@gem_pxp@verify-pxp-stale-buf-optout-execution.html * igt@gem_render_copy@y-tiled-ccs-to-y-tiled-mc-ccs: - shard-dg2: NOTRUN -> [SKIP][56] ([i915#5190] / [i915#8428]) +2 other tests skip [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-3/igt@gem_render_copy@y-tiled-ccs-to-y-tiled-mc-ccs.html * igt@gem_set_tiling_vs_blt@tiled-to-untiled: - shard-dg2: NOTRUN -> [SKIP][57] ([i915#4079]) [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-8/igt@gem_set_tiling_vs_blt@tiled-to-untiled.html * igt@gem_set_tiling_vs_blt@untiled-to-tiled: - shard-rkl: NOTRUN -> [SKIP][58] ([i915#8411]) [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-2/igt@gem_set_tiling_vs_blt@untiled-to-tiled.html * igt@gem_softpin@evict-snoop: - shard-dg1: NOTRUN -> [SKIP][59] ([i915#4885]) [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-15/igt@gem_softpin@evict-snoop.html * igt@gem_tiled_partial_pwrite_pread@writes-after-reads: - shard-dg1: NOTRUN -> [SKIP][60] ([i915#4077]) +22 other tests skip [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-15/igt@gem_tiled_partial_pwrite_pread@writes-after-reads.html * igt@gem_tiled_pread_pwrite: - shard-dg1: NOTRUN -> [SKIP][61] ([i915#4079]) +1 other test skip [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@gem_tiled_pread_pwrite.html * igt@gem_userptr_blits@invalid-mmap-offset-unsync: - shard-dg2: NOTRUN -> [SKIP][62] ([i915#3297]) [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-3/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html * igt@gem_userptr_blits@map-fixed-invalidate-overlap: - shard-dg1: NOTRUN -> [SKIP][63] ([i915#3297] / [i915#4880]) [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-13/igt@gem_userptr_blits@map-fixed-invalidate-overlap.html * igt@gem_userptr_blits@relocations: - shard-rkl: NOTRUN -> [SKIP][64] ([i915#3281] / [i915#3297]) [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-3/igt@gem_userptr_blits@relocations.html * igt@gem_userptr_blits@sd-probe: - shard-dg1: NOTRUN -> [SKIP][65] ([i915#3297] / [i915#4958]) [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-13/igt@gem_userptr_blits@sd-probe.html * igt@gem_userptr_blits@unsync-unmap: - shard-dg1: NOTRUN -> [SKIP][66] ([i915#3297]) +2 other tests skip [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@gem_userptr_blits@unsync-unmap.html * igt@gem_userptr_blits@unsync-unmap-cycles: - shard-rkl: NOTRUN -> [SKIP][67] ([i915#3297]) +2 other tests skip [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-6/igt@gem_userptr_blits@unsync-unmap-cycles.html * igt@gen7_exec_parse@chained-batch: - shard-rkl: NOTRUN -> [SKIP][68] +21 other tests skip [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-2/igt@gen7_exec_parse@chained-batch.html * igt@gen9_exec_parse@basic-rejected: - shard-dg2: NOTRUN -> [SKIP][69] ([i915#2856]) [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-3/igt@gen9_exec_parse@basic-rejected.html * igt@gen9_exec_parse@bb-start-out: - shard-dg1: NOTRUN -> [SKIP][70] ([i915#2527]) +5 other tests skip [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@gen9_exec_parse@bb-start-out.html * igt@gen9_exec_parse@valid-registers: - shard-rkl: NOTRUN -> [SKIP][71] ([i915#2527]) +1 other test skip [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-2/igt@gen9_exec_parse@valid-registers.html * igt@i915_module_load@load: - shard-dg1: NOTRUN -> [SKIP][72] ([i915#6227]) [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@i915_module_load@load.html * igt@i915_module_load@reload-with-fault-injection: - shard-dg2: [PASS][73] -> [ABORT][74] ([i915#9820]) [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-dg2-8/igt@i915_module_load@reload-with-fault-injection.html [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-8/igt@i915_module_load@reload-with-fault-injection.html * igt@i915_pm_freq_api@freq-reset-multiple: - shard-rkl: NOTRUN -> [SKIP][75] ([i915#8399]) [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-2/igt@i915_pm_freq_api@freq-reset-multiple.html * igt@i915_pm_rps@min-max-config-loaded: - shard-dg1: NOTRUN -> [SKIP][76] ([i915#11681] / [i915#6621]) [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-17/igt@i915_pm_rps@min-max-config-loaded.html * igt@i915_pm_rps@thresholds-idle-park: - shard-dg2: NOTRUN -> [SKIP][77] ([i915#11681]) [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@i915_pm_rps@thresholds-idle-park.html * igt@i915_pm_sseu@full-enable: - shard-dg1: NOTRUN -> [SKIP][78] ([i915#4387]) [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-15/igt@i915_pm_sseu@full-enable.html * igt@i915_query@test-query-geometry-subslices: - shard-dg1: NOTRUN -> [SKIP][79] ([i915#5723]) [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@i915_query@test-query-geometry-subslices.html * igt@i915_selftest@live@workarounds: - shard-mtlp: [PASS][80] -> [ABORT][81] ([i915#12061]) +1 other test abort [80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-mtlp-1/igt@i915_selftest@live@workarounds.html [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-mtlp-6/igt@i915_selftest@live@workarounds.html * igt@kms_addfb_basic@basic-y-tiled-legacy: - shard-dg1: NOTRUN -> [SKIP][82] ([i915#4215]) [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_addfb_basic@basic-y-tiled-legacy.html * igt@kms_addfb_basic@tile-pitch-mismatch: - shard-dg1: NOTRUN -> [SKIP][83] ([i915#4212]) +1 other test skip [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-15/igt@kms_addfb_basic@tile-pitch-mismatch.html * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-4-y-rc-ccs: - shard-dg1: NOTRUN -> [SKIP][84] ([i915#8709]) +7 other tests skip [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-18/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-4-y-rc-ccs.html * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-c-dp-4-4-rc-ccs-cc: - shard-dg2: NOTRUN -> [SKIP][85] ([i915#8709]) +11 other tests skip [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-c-dp-4-4-rc-ccs-cc.html * igt@kms_atomic@plane-primary-overlay-mutable-zpos: - shard-dg1: NOTRUN -> [SKIP][86] ([i915#9531]) [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-17/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html * igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels: - shard-dg1: NOTRUN -> [SKIP][87] ([i915#1769] / [i915#3555]) [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-13/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html * igt@kms_big_fb@4-tiled-16bpp-rotate-0: - shard-rkl: NOTRUN -> [SKIP][88] ([i915#5286]) +4 other tests skip [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-6/igt@kms_big_fb@4-tiled-16bpp-rotate-0.html * igt@kms_big_fb@4-tiled-addfb: - shard-dg1: NOTRUN -> [SKIP][89] ([i915#5286]) +2 other tests skip [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_big_fb@4-tiled-addfb.html * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip: - shard-dg1: NOTRUN -> [SKIP][90] ([i915#4538] / [i915#5286]) +4 other tests skip [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-13/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html * igt@kms_big_fb@x-tiled-64bpp-rotate-270: - shard-rkl: NOTRUN -> [SKIP][91] ([i915#3638]) +1 other test skip [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-6/igt@kms_big_fb@x-tiled-64bpp-rotate-270.html * igt@kms_big_fb@y-tiled-16bpp-rotate-0: - shard-mtlp: NOTRUN -> [SKIP][92] +1 other test skip [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-mtlp-2/igt@kms_big_fb@y-tiled-16bpp-rotate-0.html * igt@kms_big_fb@y-tiled-16bpp-rotate-270: - shard-dg2: NOTRUN -> [SKIP][93] ([i915#4538] / [i915#5190]) +4 other tests skip [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-8/igt@kms_big_fb@y-tiled-16bpp-rotate-270.html * igt@kms_big_fb@y-tiled-8bpp-rotate-270: - shard-dg1: NOTRUN -> [SKIP][94] ([i915#3638]) +2 other tests skip [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_big_fb@y-tiled-8bpp-rotate-270.html * igt@kms_big_fb@y-tiled-addfb-size-overflow: - shard-dg2: NOTRUN -> [SKIP][95] ([i915#5190]) [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@kms_big_fb@y-tiled-addfb-size-overflow.html * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-async-flip: - shard-dg1: NOTRUN -> [SKIP][96] ([i915#4538]) +9 other tests skip [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-13/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html * igt@kms_big_joiner@basic-force-joiner: - shard-rkl: NOTRUN -> [SKIP][97] ([i915#10656]) [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-6/igt@kms_big_joiner@basic-force-joiner.html * igt@kms_big_joiner@invalid-modeset: - shard-dg1: NOTRUN -> [SKIP][98] ([i915#10656]) [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-13/igt@kms_big_joiner@invalid-modeset.html * igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs-cc@pipe-d-hdmi-a-1: - shard-dg2: NOTRUN -> [SKIP][99] ([i915#10307] / [i915#10434] / [i915#6095]) +4 other tests skip [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-2/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs-cc@pipe-d-hdmi-a-1.html * igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-4: - shard-dg1: NOTRUN -> [SKIP][100] ([i915#6095]) +148 other tests skip [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-15/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-4.html * igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2: - shard-rkl: NOTRUN -> [SKIP][101] ([i915#6095]) +60 other tests skip [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-3/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html * igt@kms_ccs@ccs-on-another-bo-y-tiled-ccs@pipe-b-hdmi-a-1: - shard-dg2: NOTRUN -> [SKIP][102] ([i915#10307] / [i915#6095]) +142 other tests skip [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-2/igt@kms_ccs@ccs-on-another-bo-y-tiled-ccs@pipe-b-hdmi-a-1.html * igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs: - shard-dg2: NOTRUN -> [SKIP][103] ([i915#12042]) [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html * igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs: - shard-dg1: NOTRUN -> [SKIP][104] ([i915#12042]) +4 other tests skip [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html * igt@kms_cdclk@mode-transition-all-outputs: - shard-rkl: NOTRUN -> [SKIP][105] ([i915#3742]) [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-2/igt@kms_cdclk@mode-transition-all-outputs.html * igt@kms_chamelium_frames@hdmi-crc-fast: - shard-dg2: NOTRUN -> [SKIP][106] ([i915#7828]) +3 other tests skip [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@kms_chamelium_frames@hdmi-crc-fast.html * igt@kms_chamelium_hpd@dp-hpd-fast: - shard-mtlp: NOTRUN -> [SKIP][107] ([i915#7828]) [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-mtlp-2/igt@kms_chamelium_hpd@dp-hpd-fast.html * igt@kms_chamelium_hpd@hdmi-hpd-fast: - shard-rkl: NOTRUN -> [SKIP][108] ([i915#7828]) +5 other tests skip [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-3/igt@kms_chamelium_hpd@hdmi-hpd-fast.html * igt@kms_chamelium_hpd@hdmi-hpd-storm-disable: - shard-dg1: NOTRUN -> [SKIP][109] ([i915#7828]) +12 other tests skip [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_chamelium_hpd@hdmi-hpd-storm-disable.html * igt@kms_content_protection@atomic: - shard-dg1: NOTRUN -> [SKIP][110] ([i915#7116] / [i915#9424]) +1 other test skip [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_content_protection@atomic.html * igt@kms_content_protection@content-type-change: - shard-dg2: NOTRUN -> [SKIP][111] ([i915#9424]) [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-3/igt@kms_content_protection@content-type-change.html * igt@kms_content_protection@dp-mst-lic-type-0: - shard-rkl: NOTRUN -> [SKIP][112] ([i915#3116]) [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-2/igt@kms_content_protection@dp-mst-lic-type-0.html * igt@kms_content_protection@dp-mst-lic-type-1: - shard-dg1: NOTRUN -> [SKIP][113] ([i915#3299]) [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_content_protection@dp-mst-lic-type-1.html * igt@kms_content_protection@dp-mst-type-0: - shard-dg2: NOTRUN -> [SKIP][114] ([i915#3299]) [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@kms_content_protection@dp-mst-type-0.html * igt@kms_content_protection@legacy: - shard-rkl: NOTRUN -> [SKIP][115] ([i915#7118] / [i915#9424]) [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-3/igt@kms_content_protection@legacy.html * igt@kms_content_protection@lic-type-0: - shard-dg1: NOTRUN -> [SKIP][116] ([i915#9424]) [116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-17/igt@kms_content_protection@lic-type-0.html * igt@kms_cursor_crc@cursor-offscreen-512x170: - shard-dg1: NOTRUN -> [SKIP][117] ([i915#11453]) +1 other test skip [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_cursor_crc@cursor-offscreen-512x170.html * igt@kms_cursor_crc@cursor-onscreen-512x170: - shard-dg2: NOTRUN -> [SKIP][118] ([i915#11453] / [i915#3359]) [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@kms_cursor_crc@cursor-onscreen-512x170.html * igt@kms_cursor_crc@cursor-random-512x512: - shard-rkl: NOTRUN -> [SKIP][119] ([i915#11453]) +2 other tests skip [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-3/igt@kms_cursor_crc@cursor-random-512x512.html * igt@kms_cursor_crc@cursor-rapid-movement-32x10: - shard-dg2: NOTRUN -> [SKIP][120] ([i915#3555]) [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@kms_cursor_crc@cursor-rapid-movement-32x10.html * igt@kms_cursor_crc@cursor-sliding-max-size: - shard-mtlp: NOTRUN -> [SKIP][121] ([i915#3555] / [i915#8814]) [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-mtlp-5/igt@kms_cursor_crc@cursor-sliding-max-size.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size: - shard-rkl: NOTRUN -> [SKIP][122] ([i915#4103]) [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-3/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size.html * igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size: - shard-mtlp: NOTRUN -> [SKIP][123] ([i915#9809]) [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-mtlp-2/igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size: - shard-glk: [PASS][124] -> [FAIL][125] ([i915#2346]) [124]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-glk8/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-glk2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html * igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle: - shard-dg2: NOTRUN -> [SKIP][126] ([i915#4103] / [i915#4213]) [126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html * igt@kms_cursor_legacy@torture-move: - shard-dg1: [PASS][127] -> [DMESG-WARN][128] ([i915#10166]) +1 other test dmesg-warn [127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-dg1-15/igt@kms_cursor_legacy@torture-move.html [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-17/igt@kms_cursor_legacy@torture-move.html * igt@kms_dirtyfb@psr-dirtyfb-ioctl: - shard-dg1: NOTRUN -> [SKIP][129] ([i915#9723]) +1 other test skip [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-15/igt@kms_dirtyfb@psr-dirtyfb-ioctl.html * igt@kms_display_modes@mst-extended-mode-negative: - shard-rkl: NOTRUN -> [SKIP][130] ([i915#8588]) [130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-3/igt@kms_display_modes@mst-extended-mode-negative.html * igt@kms_draw_crc@draw-method-mmap-wc: - shard-dg1: NOTRUN -> [SKIP][131] ([i915#8812]) [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_draw_crc@draw-method-mmap-wc.html * igt@kms_dsc@dsc-fractional-bpp-with-bpc: - shard-dg1: NOTRUN -> [SKIP][132] ([i915#3840]) [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-15/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html * igt@kms_dsc@dsc-with-bpc-formats: - shard-dg1: NOTRUN -> [SKIP][133] ([i915#3555] / [i915#3840]) +2 other tests skip [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_dsc@dsc-with-bpc-formats.html * igt@kms_fbcon_fbt@psr: - shard-dg1: NOTRUN -> [SKIP][134] ([i915#3469]) [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_fbcon_fbt@psr.html * igt@kms_feature_discovery@chamelium: - shard-dg2: NOTRUN -> [SKIP][135] ([i915#4854]) [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-3/igt@kms_feature_discovery@chamelium.html * igt@kms_feature_discovery@display-2x: - shard-dg1: NOTRUN -> [SKIP][136] ([i915#1839]) [136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-17/igt@kms_feature_discovery@display-2x.html * igt@kms_feature_discovery@display-4x: - shard-rkl: NOTRUN -> [SKIP][137] ([i915#1839]) [137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-6/igt@kms_feature_discovery@display-4x.html * igt@kms_feature_discovery@dp-mst: - shard-dg2: NOTRUN -> [SKIP][138] ([i915#9337]) [138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-3/igt@kms_feature_discovery@dp-mst.html * igt@kms_fence_pin_leak: - shard-dg1: NOTRUN -> [SKIP][139] ([i915#4881]) +1 other test skip [139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_fence_pin_leak.html * igt@kms_flip@2x-absolute-wf_vblank: - shard-dg2: NOTRUN -> [SKIP][140] +8 other tests skip [140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-8/igt@kms_flip@2x-absolute-wf_vblank.html * igt@kms_flip@2x-flip-vs-fences-interruptible: - shard-dg1: NOTRUN -> [SKIP][141] ([i915#8381]) [141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_flip@2x-flip-vs-fences-interruptible.html * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible: - shard-dg1: NOTRUN -> [SKIP][142] ([i915#9934]) +10 other tests skip [142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html * igt@kms_flip@2x-wf_vblank-ts-check: - shard-mtlp: NOTRUN -> [SKIP][143] ([i915#3637]) [143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-mtlp-2/igt@kms_flip@2x-wf_vblank-ts-check.html * igt@kms_flip@flip-vs-fences: - shard-dg2: NOTRUN -> [SKIP][144] ([i915#8381]) +1 other test skip [144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-3/igt@kms_flip@flip-vs-fences.html * igt@kms_flip@flip-vs-suspend-interruptible: - shard-snb: [PASS][145] -> [INCOMPLETE][146] ([i915#4839]) +1 other test incomplete [145]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-snb1/igt@kms_flip@flip-vs-suspend-interruptible.html [146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-snb1/igt@kms_flip@flip-vs-suspend-interruptible.html * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling: - shard-dg2: NOTRUN -> [SKIP][147] ([i915#2672] / [i915#3555]) [147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling.html * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling@pipe-a-valid-mode: - shard-rkl: NOTRUN -> [SKIP][148] ([i915#2672]) +3 other tests skip [148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling@pipe-a-valid-mode.html * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling@pipe-a-valid-mode: - shard-dg1: NOTRUN -> [SKIP][149] ([i915#2587] / [i915#2672]) +7 other tests skip [149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling@pipe-a-valid-mode.html * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling: - shard-rkl: NOTRUN -> [SKIP][150] ([i915#2672] / [i915#3555]) +3 other tests skip [150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-3/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling: - shard-dg1: NOTRUN -> [SKIP][151] ([i915#2672] / [i915#3555]) +7 other tests skip [151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling: - shard-dg2: NOTRUN -> [SKIP][152] ([i915#2672] / [i915#3555] / [i915#5190]) +1 other test skip [152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling@pipe-a-valid-mode: - shard-dg2: NOTRUN -> [SKIP][153] ([i915#2672]) +2 other tests skip [153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling@pipe-a-valid-mode.html * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-onoff: - shard-dg2: [PASS][154] -> [FAIL][155] ([i915#6880]) [154]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-dg2-6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-onoff.html [155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-5/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-onoff.html * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-cpu: - shard-dg1: NOTRUN -> [SKIP][156] +73 other tests skip [156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-15/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-cpu.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff: - shard-mtlp: NOTRUN -> [SKIP][157] ([i915#1825]) +1 other test skip [157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-mtlp-5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-move: - shard-rkl: NOTRUN -> [SKIP][158] ([i915#3023]) +15 other tests skip [158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-3/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-move.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-render: - shard-dg2: NOTRUN -> [SKIP][159] ([i915#5354]) +15 other tests skip [159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-render.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt: - shard-rkl: NOTRUN -> [SKIP][160] ([i915#1825]) +21 other tests skip [160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-2/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt.html * igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary: - shard-snb: NOTRUN -> [SKIP][161] +14 other tests skip [161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-snb4/igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary.html * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-cpu: - shard-dg2: NOTRUN -> [SKIP][162] ([i915#3458]) +7 other tests skip [162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-3/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-cpu.html * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite: - shard-dg1: NOTRUN -> [SKIP][163] ([i915#3458]) +24 other tests skip [163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-pwrite.html * igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-gtt: - shard-dg2: NOTRUN -> [SKIP][164] ([i915#8708]) +6 other tests skip [164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@psr-rgb565-draw-mmap-wc: - shard-dg1: NOTRUN -> [SKIP][165] ([i915#8708]) +39 other tests skip [165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_frontbuffer_tracking@psr-rgb565-draw-mmap-wc.html * igt@kms_hdr@invalid-metadata-sizes: - shard-dg2: NOTRUN -> [SKIP][166] ([i915#3555] / [i915#8228]) [166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-3/igt@kms_hdr@invalid-metadata-sizes.html * igt@kms_hdr@static-swap: - shard-dg1: NOTRUN -> [SKIP][167] ([i915#3555] / [i915#8228]) +2 other tests skip [167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-17/igt@kms_hdr@static-swap.html * igt@kms_hdr@static-toggle-dpms: - shard-rkl: NOTRUN -> [SKIP][168] ([i915#3555] / [i915#8228]) [168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-6/igt@kms_hdr@static-toggle-dpms.html * igt@kms_panel_fitting@legacy: - shard-rkl: NOTRUN -> [SKIP][169] ([i915#6301]) [169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-3/igt@kms_panel_fitting@legacy.html * igt@kms_plane_alpha_blend@alpha-opaque-fb: - shard-glk: NOTRUN -> [FAIL][170] ([i915#12169]) [170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-glk5/igt@kms_plane_alpha_blend@alpha-opaque-fb.html * igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-a-hdmi-a-1: - shard-glk: NOTRUN -> [FAIL][171] ([i915#10647]) +1 other test fail [171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-glk5/igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-a-hdmi-a-1.html * igt@kms_plane_multiple@tiling-4: - shard-rkl: NOTRUN -> [SKIP][172] ([i915#3555]) +4 other tests skip [172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-3/igt@kms_plane_multiple@tiling-4.html * igt@kms_plane_multiple@tiling-yf: - shard-dg1: NOTRUN -> [SKIP][173] ([i915#3555]) +8 other tests skip [173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_plane_multiple@tiling-yf.html * igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-4: - shard-dg1: NOTRUN -> [FAIL][174] ([i915#8292]) [174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-17/igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-4.html * igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-b-hdmi-a-3: - shard-dg2: NOTRUN -> [SKIP][175] ([i915#9423]) +28 other tests skip [175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-5/igt@kms_plane_scaling@plane-downscale-factor-0-25-with-pixel-format@pipe-b-hdmi-a-3.html * igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-b-hdmi-a-1: - shard-rkl: NOTRUN -> [SKIP][176] ([i915#9423]) +3 other tests skip [176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-4/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-b-hdmi-a-1.html * igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-d-hdmi-a-4: - shard-dg1: NOTRUN -> [SKIP][177] ([i915#9423]) +26 other tests skip [177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-15/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-rotation@pipe-d-hdmi-a-4.html * igt@kms_plane_scaling@plane-upscale-20x20-with-rotation: - shard-glk: NOTRUN -> [SKIP][178] +194 other tests skip [178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-glk5/igt@kms_plane_scaling@plane-upscale-20x20-with-rotation.html * igt@kms_plane_scaling@planes-downscale-factor-0-25: - shard-rkl: NOTRUN -> [SKIP][179] ([i915#6953]) [179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-6/igt@kms_plane_scaling@planes-downscale-factor-0-25.html * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-b-hdmi-a-2: - shard-rkl: NOTRUN -> [SKIP][180] ([i915#9728]) +7 other tests skip [180]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-3/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-b-hdmi-a-2.html * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25: - shard-dg2: NOTRUN -> [SKIP][181] ([i915#3555] / [i915#9423]) [181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25.html * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25: - shard-dg1: NOTRUN -> [SKIP][182] ([i915#6953]) +1 other test skip [182]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25.html * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-d-hdmi-a-4: - shard-dg1: NOTRUN -> [SKIP][183] ([i915#9728]) +15 other tests skip [183]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-d-hdmi-a-4.html * igt@kms_pm_backlight@fade-with-dpms: - shard-dg1: NOTRUN -> [SKIP][184] ([i915#5354]) +1 other test skip [184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_pm_backlight@fade-with-dpms.html * igt@kms_pm_backlight@fade-with-suspend: - shard-rkl: NOTRUN -> [SKIP][185] ([i915#5354]) [185]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-6/igt@kms_pm_backlight@fade-with-suspend.html * igt@kms_pm_lpsp@kms-lpsp: - shard-rkl: [PASS][186] -> [SKIP][187] ([i915#9340]) [186]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-rkl-4/igt@kms_pm_lpsp@kms-lpsp.html [187]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-1/igt@kms_pm_lpsp@kms-lpsp.html * igt@kms_pm_lpsp@screens-disabled: - shard-dg2: NOTRUN -> [SKIP][188] ([i915#8430]) [188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@kms_pm_lpsp@screens-disabled.html * igt@kms_pm_rpm@dpms-mode-unset-non-lpsp: - shard-dg2: [PASS][189] -> [SKIP][190] ([i915#9519]) +3 other tests skip [189]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-dg2-11/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html [190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-2/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html * igt@kms_pm_rpm@modeset-lpsp: - shard-dg1: NOTRUN -> [SKIP][191] ([i915#9519]) [191]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_pm_rpm@modeset-lpsp.html * igt@kms_prime@d3hot: - shard-dg1: NOTRUN -> [SKIP][192] ([i915#6524]) +1 other test skip [192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_prime@d3hot.html * igt@kms_psr2_sf@cursor-plane-move-continuous-sf: - shard-dg1: NOTRUN -> [SKIP][193] ([i915#11520]) +5 other tests skip [193]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-17/igt@kms_psr2_sf@cursor-plane-move-continuous-sf.html * igt@kms_psr2_sf@fbc-cursor-plane-move-continuous-exceed-sf: - shard-dg2: NOTRUN -> [SKIP][194] ([i915#11520]) +3 other tests skip [194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@kms_psr2_sf@fbc-cursor-plane-move-continuous-exceed-sf.html * igt@kms_psr2_sf@fbc-primary-plane-update-sf-dmg-area: - shard-rkl: NOTRUN -> [SKIP][195] ([i915#11520]) +3 other tests skip [195]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-2/igt@kms_psr2_sf@fbc-primary-plane-update-sf-dmg-area.html * igt@kms_psr2_su@page_flip-nv12: - shard-dg1: NOTRUN -> [SKIP][196] ([i915#9683]) [196]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_psr2_su@page_flip-nv12.html * igt@kms_psr@fbc-psr2-cursor-blt@edp-1: - shard-mtlp: NOTRUN -> [SKIP][197] ([i915#9688]) +3 other tests skip [197]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-mtlp-2/igt@kms_psr@fbc-psr2-cursor-blt@edp-1.html * igt@kms_psr@fbc-psr2-sprite-render: - shard-rkl: NOTRUN -> [SKIP][198] ([i915#1072] / [i915#9732]) +14 other tests skip [198]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-6/igt@kms_psr@fbc-psr2-sprite-render.html * igt@kms_psr@pr-primary-render: - shard-dg2: NOTRUN -> [SKIP][199] ([i915#1072] / [i915#9732]) +4 other tests skip [199]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-3/igt@kms_psr@pr-primary-render.html * igt@kms_psr@psr2-cursor-blt: - shard-dg2: NOTRUN -> [SKIP][200] ([i915#1072] / [i915#9673] / [i915#9732]) +4 other tests skip [200]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@kms_psr@psr2-cursor-blt.html * igt@kms_psr@psr2-sprite-blt: - shard-dg1: NOTRUN -> [SKIP][201] ([i915#1072] / [i915#9732]) +34 other tests skip [201]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_psr@psr2-sprite-blt.html * igt@kms_psr_stress_test@flip-primary-invalidate-overlay: - shard-dg1: NOTRUN -> [SKIP][202] ([i915#9685]) +1 other test skip [202]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180: - shard-dg1: NOTRUN -> [SKIP][203] ([i915#5289]) +1 other test skip [203]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html * igt@kms_setmode@invalid-clone-exclusive-crtc: - shard-mtlp: NOTRUN -> [SKIP][204] ([i915#3555] / [i915#8809] / [i915#8823]) [204]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-mtlp-2/igt@kms_setmode@invalid-clone-exclusive-crtc.html * igt@kms_tiled_display@basic-test-pattern-with-chamelium: - shard-dg1: NOTRUN -> [SKIP][205] ([i915#8623]) [205]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-13/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html * igt@kms_universal_plane@cursor-fb-leak: - shard-dg1: NOTRUN -> [FAIL][206] ([i915#9196]) +1 other test fail [206]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_universal_plane@cursor-fb-leak.html * igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-1: - shard-tglu: [PASS][207] -> [FAIL][208] ([i915#9196]) +1 other test fail [207]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-tglu-8/igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-1.html [208]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-tglu-5/igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-1.html * igt@kms_vrr@seamless-rr-switch-drrs: - shard-dg1: NOTRUN -> [SKIP][209] ([i915#9906]) [209]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-15/igt@kms_vrr@seamless-rr-switch-drrs.html * igt@kms_vrr@seamless-rr-switch-vrr: - shard-rkl: NOTRUN -> [SKIP][210] ([i915#9906]) [210]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-6/igt@kms_vrr@seamless-rr-switch-vrr.html * igt@kms_writeback@writeback-check-output: - shard-dg1: NOTRUN -> [SKIP][211] ([i915#2437]) [211]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_writeback@writeback-check-output.html * igt@kms_writeback@writeback-check-output-xrgb2101010: - shard-rkl: NOTRUN -> [SKIP][212] ([i915#2437] / [i915#9412]) [212]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-2/igt@kms_writeback@writeback-check-output-xrgb2101010.html * igt@kms_writeback@writeback-fb-id: - shard-glk: NOTRUN -> [SKIP][213] ([i915#2437]) [213]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-glk3/igt@kms_writeback@writeback-fb-id.html * igt@kms_writeback@writeback-pixel-formats: - shard-dg1: NOTRUN -> [SKIP][214] ([i915#2437] / [i915#9412]) [214]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@kms_writeback@writeback-pixel-formats.html * igt@perf@non-zero-reason: - shard-dg2: NOTRUN -> [FAIL][215] ([i915#9100]) +1 other test fail [215]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-3/igt@perf@non-zero-reason.html * igt@perf_pmu@cpu-hotplug: - shard-dg1: NOTRUN -> [SKIP][216] ([i915#8850]) [216]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-15/igt@perf_pmu@cpu-hotplug.html * igt@perf_pmu@module-unload: - shard-dg2: NOTRUN -> [FAIL][217] ([i915#11823]) [217]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-3/igt@perf_pmu@module-unload.html * igt@prime_vgem@basic-fence-mmap: - shard-dg1: NOTRUN -> [SKIP][218] ([i915#3708] / [i915#4077]) [218]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@prime_vgem@basic-fence-mmap.html * igt@prime_vgem@basic-read: - shard-rkl: NOTRUN -> [SKIP][219] ([i915#3291] / [i915#3708]) [219]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-2/igt@prime_vgem@basic-read.html * igt@prime_vgem@fence-flip-hang: - shard-dg1: NOTRUN -> [SKIP][220] ([i915#3708]) +2 other tests skip [220]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-16/igt@prime_vgem@fence-flip-hang.html * igt@prime_vgem@fence-write-hang: - shard-rkl: NOTRUN -> [SKIP][221] ([i915#3708]) [221]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-6/igt@prime_vgem@fence-write-hang.html * igt@sriov_basic@enable-vfs-autoprobe-on: - shard-dg1: NOTRUN -> [SKIP][222] ([i915#9917]) [222]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-13/igt@sriov_basic@enable-vfs-autoprobe-on.html * igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all: - shard-rkl: NOTRUN -> [SKIP][223] ([i915#9917]) +1 other test skip [223]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-6/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html * igt@syncobj_wait@invalid-wait-zero-handles: - shard-mtlp: NOTRUN -> [FAIL][224] ([i915#9781]) [224]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-mtlp-2/igt@syncobj_wait@invalid-wait-zero-handles.html - shard-snb: NOTRUN -> [FAIL][225] ([i915#9781]) [225]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-snb4/igt@syncobj_wait@invalid-wait-zero-handles.html - shard-glk: NOTRUN -> [FAIL][226] ([i915#9781]) [226]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-glk7/igt@syncobj_wait@invalid-wait-zero-handles.html * igt@tools_test@sysfs_l3_parity: - shard-dg1: NOTRUN -> [SKIP][227] ([i915#4818]) [227]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-15/igt@tools_test@sysfs_l3_parity.html #### Possible fixes #### * igt@gem_exec_fair@basic-pace-share@rcs0: - shard-glk: [FAIL][228] ([i915#2842]) -> [PASS][229] +1 other test pass [228]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-glk9/igt@gem_exec_fair@basic-pace-share@rcs0.html [229]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-glk8/igt@gem_exec_fair@basic-pace-share@rcs0.html * igt@gem_exec_fair@basic-pace-solo: - shard-rkl: [FAIL][230] ([i915#2842]) -> [PASS][231] +2 other tests pass [230]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-rkl-2/igt@gem_exec_fair@basic-pace-solo.html [231]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-4/igt@gem_exec_fair@basic-pace-solo.html * igt@gen9_exec_parse@allowed-all: - shard-glk: [ABORT][232] ([i915#5566]) -> [PASS][233] [232]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-glk7/igt@gen9_exec_parse@allowed-all.html [233]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-glk8/igt@gen9_exec_parse@allowed-all.html * igt@i915_module_load@reload-with-fault-injection: - shard-snb: [ABORT][234] ([i915#9820]) -> [PASS][235] [234]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-snb2/igt@i915_module_load@reload-with-fault-injection.html [235]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-snb4/igt@i915_module_load@reload-with-fault-injection.html - shard-mtlp: [ABORT][236] ([i915#10131] / [i915#9820]) -> [PASS][237] [236]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-mtlp-1/igt@i915_module_load@reload-with-fault-injection.html [237]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-mtlp-2/igt@i915_module_load@reload-with-fault-injection.html * igt@kms_atomic_transition@modeset-transition-fencing: - shard-glk: [FAIL][238] -> [PASS][239] [238]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-glk8/igt@kms_atomic_transition@modeset-transition-fencing.html [239]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-glk2/igt@kms_atomic_transition@modeset-transition-fencing.html * igt@kms_atomic_transition@modeset-transition-fencing@2x-outputs: - shard-glk: [FAIL][240] ([i915#11859]) -> [PASS][241] [240]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-glk8/igt@kms_atomic_transition@modeset-transition-fencing@2x-outputs.html [241]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-glk2/igt@kms_atomic_transition@modeset-transition-fencing@2x-outputs.html * igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-4: - shard-dg1: [FAIL][242] ([i915#5956]) -> [PASS][243] +1 other test pass [242]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-dg1-18/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-4.html [243]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg1-18/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-4.html * igt@kms_atomic_transition@plane-toggle-modeset-transition: - shard-snb: [FAIL][244] ([i915#5956]) -> [PASS][245] +1 other test pass [244]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-snb5/igt@kms_atomic_transition@plane-toggle-modeset-transition.html [245]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-snb5/igt@kms_atomic_transition@plane-toggle-modeset-transition.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions: - shard-glk: [FAIL][246] ([i915#2346]) -> [PASS][247] [246]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-glk9/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html [247]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-glk6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html * igt@kms_cursor_legacy@torture-bo: - shard-mtlp: [INCOMPLETE][248] -> [PASS][249] +1 other test pass [248]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-mtlp-1/igt@kms_cursor_legacy@torture-bo.html [249]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-mtlp-5/igt@kms_cursor_legacy@torture-bo.html * igt@kms_cursor_legacy@torture-move: - shard-tglu: [DMESG-WARN][250] ([i915#10166]) -> [PASS][251] [250]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-tglu-7/igt@kms_cursor_legacy@torture-move.html [251]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-tglu-10/igt@kms_cursor_legacy@torture-move.html * igt@kms_cursor_legacy@torture-move@pipe-a: - shard-tglu: [DMESG-WARN][252] ([i915#10166] / [i915#1982]) -> [PASS][253] [252]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-tglu-7/igt@kms_cursor_legacy@torture-move@pipe-a.html [253]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-tglu-10/igt@kms_cursor_legacy@torture-move@pipe-a.html * igt@kms_dither@fb-8bpc-vs-panel-8bpc: - shard-dg2: [SKIP][254] ([i915#3555]) -> [PASS][255] [254]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-dg2-7/igt@kms_dither@fb-8bpc-vs-panel-8bpc.html [255]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@kms_dither@fb-8bpc-vs-panel-8bpc.html * igt@kms_flip@wf_vblank-ts-check-interruptible@a-vga1: - shard-snb: [FAIL][256] ([i915#2122]) -> [PASS][257] +1 other test pass [256]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-snb7/igt@kms_flip@wf_vblank-ts-check-interruptible@a-vga1.html [257]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-snb1/igt@kms_flip@wf_vblank-ts-check-interruptible@a-vga1.html * igt@kms_pm_dc@dc6-dpms: - shard-tglu: [FAIL][258] ([i915#9295]) -> [PASS][259] [258]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-tglu-7/igt@kms_pm_dc@dc6-dpms.html [259]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-tglu-6/igt@kms_pm_dc@dc6-dpms.html * igt@kms_pm_dc@dc9-dpms: - shard-tglu: [SKIP][260] ([i915#4281]) -> [PASS][261] [260]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-tglu-6/igt@kms_pm_dc@dc9-dpms.html [261]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-tglu-6/igt@kms_pm_dc@dc9-dpms.html * igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait: - shard-rkl: [SKIP][262] ([i915#9519]) -> [PASS][263] +1 other test pass [262]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-rkl-4/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html [263]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-rkl-3/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html * igt@kms_universal_plane@cursor-fb-leak: - shard-mtlp: [FAIL][264] ([i915#9196]) -> [PASS][265] +1 other test pass [264]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-mtlp-6/igt@kms_universal_plane@cursor-fb-leak.html [265]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-mtlp-2/igt@kms_universal_plane@cursor-fb-leak.html * igt@kms_universal_plane@cursor-fb-leak@pipe-a-hdmi-a-1: - shard-tglu: [FAIL][266] ([i915#9196]) -> [PASS][267] [266]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-tglu-8/igt@kms_universal_plane@cursor-fb-leak@pipe-a-hdmi-a-1.html [267]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-tglu-5/igt@kms_universal_plane@cursor-fb-leak@pipe-a-hdmi-a-1.html * igt@kms_vblank@query-forked-hang: - shard-dg2: [INCOMPLETE][268] -> [PASS][269] +2 other tests pass [268]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-dg2-4/igt@kms_vblank@query-forked-hang.html [269]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-8/igt@kms_vblank@query-forked-hang.html #### Warnings #### * igt@gem_ctx_engines@invalid-engines: - shard-tglu: [FAIL][270] ([i915#12031]) -> [FAIL][271] ([i915#12027]) [270]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-tglu-7/igt@gem_ctx_engines@invalid-engines.html [271]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-tglu-6/igt@gem_ctx_engines@invalid-engines.html * igt@kms_big_fb@x-tiled-8bpp-rotate-270: - shard-mtlp: [ABORT][272] ([i915#10354]) -> [SKIP][273] [272]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-mtlp-2/igt@kms_big_fb@x-tiled-8bpp-rotate-270.html [273]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-mtlp-1/igt@kms_big_fb@x-tiled-8bpp-rotate-270.html * igt@kms_cursor_crc@cursor-sliding-512x512: - shard-dg2: [SKIP][274] ([i915#11453]) -> [SKIP][275] ([i915#11453] / [i915#3359]) [274]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-dg2-7/igt@kms_cursor_crc@cursor-sliding-512x512.html [275]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@kms_cursor_crc@cursor-sliding-512x512.html * igt@kms_frontbuffer_tracking@fbcpsr-suspend: - shard-dg2: [SKIP][276] ([i915#10433] / [i915#3458]) -> [SKIP][277] ([i915#3458]) +2 other tests skip [276]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-suspend.html [277]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-8/igt@kms_frontbuffer_tracking@fbcpsr-suspend.html * igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary: - shard-dg2: [SKIP][278] ([i915#3458]) -> [SKIP][279] ([i915#10433] / [i915#3458]) +2 other tests skip [278]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-dg2-5/igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary.html [279]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary.html * igt@kms_plane_scaling@intel-max-src-size: - shard-dg2: [FAIL][280] ([i915#8292]) -> [SKIP][281] ([i915#6953] / [i915#9423]) [280]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-dg2-11/igt@kms_plane_scaling@intel-max-src-size.html [281]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-2/igt@kms_plane_scaling@intel-max-src-size.html * igt@kms_psr@fbc-psr2-sprite-mmap-cpu: - shard-dg2: [SKIP][282] ([i915#1072] / [i915#9673] / [i915#9732]) -> [SKIP][283] ([i915#1072] / [i915#9732]) +4 other tests skip [282]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-dg2-11/igt@kms_psr@fbc-psr2-sprite-mmap-cpu.html [283]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-2/igt@kms_psr@fbc-psr2-sprite-mmap-cpu.html * igt@kms_psr@psr-cursor-render: - shard-dg2: [SKIP][284] ([i915#1072] / [i915#9732]) -> [SKIP][285] ([i915#1072] / [i915#9673] / [i915#9732]) +4 other tests skip [284]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-dg2-7/igt@kms_psr@psr-cursor-render.html [285]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-11/igt@kms_psr@psr-cursor-render.html * igt@kms_rotation_crc@bad-tiling: - shard-dg2: [SKIP][286] ([i915#11131] / [i915#4235]) -> [SKIP][287] ([i915#11131]) [286]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-dg2-11/igt@kms_rotation_crc@bad-tiling.html [287]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-2/igt@kms_rotation_crc@bad-tiling.html * igt@kms_rotation_crc@primary-y-tiled-reflect-x-90: - shard-dg2: [SKIP][288] ([i915#11131] / [i915#4235] / [i915#5190]) -> [SKIP][289] ([i915#11131] / [i915#5190]) [288]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-dg2-11/igt@kms_rotation_crc@primary-y-tiled-reflect-x-90.html [289]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-dg2-2/igt@kms_rotation_crc@primary-y-tiled-reflect-x-90.html * igt@kms_tiled_display@basic-test-pattern: - shard-glk: [FAIL][290] ([i915#10959]) -> [SKIP][291] [290]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15389/shard-glk4/igt@kms_tiled_display@basic-test-pattern.html [291]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138477v1/shard-glk8/igt@kms_tiled_display@basic-test-pattern.html [i915#10131]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10131 [i915#10166]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10166 [i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307 [i915#10354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10354 [i915#10433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10433 [i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434 [i915#10647]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10647 [i915#10656]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10656 [i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072 [i915#10959]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10959 [i915#11078]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11078 [i915#11131]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11131 [i915#11453]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11453 [i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520 [i915#11681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11681 [i915#11823]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11823 [i915#11859]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11859 [i915#11980]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11980 [i915#12027]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12027 [i915#12031]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12031 [i915#12042]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12042 [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061 [i915#12169]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12169 [i915#12179]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12179 [i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769 [i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825 [i915#1839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1839 [i915#1982]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1982 [i915#2122]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2122 [i915#2346]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2346 [i915#2437]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2437 [i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527 [i915#2587]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2587 [i915#2672]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2672 [i915#280]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/280 [i915#284]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/284 [i915#2842]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2842 [i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856 [i915#3023]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3023 [i915#3116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3116 [i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281 [i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282 [i915#3291]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3291 [i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297 [i915#3299]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3299 [i915#3359]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3359 [i915#3458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3458 [i915#3469]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3469 [i915#3539]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3539 [i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555 [i915#3637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3637 [i915#3638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3638 [i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708 [i915#3742]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3742 [i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840 [i915#4036]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4036 [i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077 [i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079 [i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083 [i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103 [i915#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212 [i915#4213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4213 [i915#4215]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4215 [i915#4235]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4235 [i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270 [i915#4281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4281 [i915#4387]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4387 [i915#4525]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4525 [i915#4537]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4537 [i915#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538 [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613 [i915#4771]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4771 [i915#4812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4812 [i915#4818]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4818 [i915#4839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4839 [i915#4852]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4852 [i915#4854]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4854 [i915#4860]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4860 [i915#4880]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4880 [i915#4881]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4881 [i915#4885]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4885 [i915#4936]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4936 [i915#4958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4958 [i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190 [i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286 [i915#5289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5289 [i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354 [i915#5493]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5493 [i915#5566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5566 [i915#5723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5723 [i915#5784]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5784 [i915#5956]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5956 [i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095 [i915#6227]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6227 [i915#6301]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6301 [i915#6334]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6334 [i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524 [i915#6621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6621 [i915#6880]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6880 [i915#6953]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6953 [i915#7116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7116 [i915#7118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7118 [i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697 [i915#7742]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7742 [i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828 [i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228 [i915#8292]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8292 [i915#8381]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8381 [i915#8399]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8399 [i915#8411]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8411 [i915#8414]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8414 [i915#8428]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8428 [i915#8430]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8430 [i915#8555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8555 [i915#8588]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8588 [i915#8623]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8623 [i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708 [i915#8709]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8709 [i915#8809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8809 [i915#8812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8812 [i915#8814]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8814 [i915#8823]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8823 [i915#8850]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8850 [i915#9100]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9100 [i915#9196]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9196 [i915#9295]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9295 [i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323 [i915#9337]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9337 [i915#9340]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9340 [i915#9412]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9412 [i915#9423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9423 [i915#9424]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9424 [i915#9519]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9519 [i915#9531]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9531 [i915#9673]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9673 [i915#9683]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9683 [i915#9685]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9685 [i915#9688]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9688 [i915#9723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9723 [i915#9728]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9728 [i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732 [i915#9781]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9781 [i915#9809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9809 [i915#9820]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9820 [i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906 [i915#9917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9917 [i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934 Build changes ------------- * Linux: CI_DRM_15389 -> Patchwork_138477v1 CI-20190529: 20190529 CI_DRM_15389: f25ffe1514b26574258bb767f5c6f53facdfaaca @ git://anongit.freedesktop.org/gfx-ci/linux IGT_8011: 26dca87f1252b7f6f0c0f833050256f0244d61e9 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_138477v1: f25ffe1514b26574258bb767f5c6f53facdfaaca @ 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_138477v1/index.html [-- Attachment #2: Type: text/html, Size: 100064 bytes --] ^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2024-09-23 14:29 UTC | newest] Thread overview: 23+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-09-10 13:42 [PATCH 0/5] drm/i915/bios: Refactor ROM access Ville Syrjala 2024-09-10 13:42 ` [PATCH 1/5] drm/i915/bios: Add some size checks to SPI VBT read Ville Syrjala 2024-09-12 11:56 ` Jani Nikula 2024-09-10 13:42 ` [PATCH 2/5] drm/i915/bios: Round PCI ROM VBT allocation to multiple of 4 Ville Syrjala 2024-09-12 11:57 ` Jani Nikula 2024-09-10 13:42 ` [PATCH 3/5] drm/i915/bios: Extract intel_spi_read16() Ville Syrjala 2024-09-12 12:02 ` Jani Nikula 2024-09-20 17:00 ` Ville Syrjälä 2024-09-10 13:42 ` [PATCH 4/5] drm/i915/bios: Extract vbt_signature[] Ville Syrjala 2024-09-12 12:15 ` Jani Nikula 2024-09-20 16:59 ` Ville Syrjälä 2024-09-23 9:12 ` Jani Nikula 2024-09-23 14:22 ` Ville Syrjälä 2024-09-23 14:24 ` Jani Nikula 2024-09-23 14:29 ` Ville Syrjälä 2024-09-10 13:42 ` [PATCH 5/5] drm/i915/bios: Extract soc/intel_rom.c Ville Syrjala 2024-09-12 12:44 ` Jani Nikula 2024-09-20 17:02 ` Ville Syrjälä 2024-09-23 9:13 ` Jani Nikula 2024-09-10 17:29 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915/bios: Refactor ROM access Patchwork 2024-09-10 17:29 ` ✗ Fi.CI.SPARSE: " Patchwork 2024-09-10 17:46 ` ✓ Fi.CI.BAT: success " Patchwork 2024-09-11 9:10 ` ✗ Fi.CI.IGT: failure " Patchwork
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox