Message ID | 20230222141755.1060162-3-wse@tuxedocomputers.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add quirk to disable PSR 2 on Tongfang PHxTxX1 and PHxTQx1 | expand |
On Wed, Feb 22, 2023 at 03:17:55PM +0100, Werner Sembach wrote: > On these Barebones PSR 2 is recognized as supported but is very buggy: > - Upper third of screen does sometimes not updated, resulting in > disappearing cursors or ghosts of already closed Windows saying behind. > - Approximately 40 px from the bottom edge a 3 pixel wide strip of randomly > colored pixels is flickering. > > PSR 1 is working fine however. I wonder if this is really about the panel's PSR2 or about the userspace there not marking the dirtyfb? I know I know... it is not userspace fault... But I wonder if the case you got here highlights the fact that we have a substantial bug in the i915 itself in regards to PSR2 API. Jose, Jouni, ideas on how to check what could be happening here? oh, btw, Werner, do we have an open gilab issue for this? Thanks, Rodrigo. > > Signed-off-by: Werner Sembach <wse@tuxedocomputers.com> > Cc: <stable@vger.kernel.org> > --- > drivers/gpu/drm/i915/display/intel_quirks.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/gpu/drm/i915/display/intel_quirks.c b/drivers/gpu/drm/i915/display/intel_quirks.c > index ce6d0fe6448f5..eeb32d3189f5c 100644 > --- a/drivers/gpu/drm/i915/display/intel_quirks.c > +++ b/drivers/gpu/drm/i915/display/intel_quirks.c > @@ -65,6 +65,10 @@ static void quirk_no_pps_backlight_power_hook(struct drm_i915_private *i915) > drm_info(&i915->drm, "Applying no pps backlight power quirk\n"); > } > > +/* > + * Tongfang PHxTxX1 and PHxTQx1 devices have support for PSR 2 but it is broken > + * on Linux. PSR 1 however works just fine. > + */ > static void quirk_no_psr2(struct drm_i915_private *i915) > { > intel_set_quirk(i915, QUIRK_NO_PSR2); > @@ -205,6 +209,10 @@ static struct intel_quirk intel_quirks[] = { > /* ECS Liva Q2 */ > { 0x3185, 0x1019, 0xa94d, quirk_increase_ddi_disabled_time }, > { 0x3184, 0x1019, 0xa94d, quirk_increase_ddi_disabled_time }, > + > + /* Tongfang PHxTxX1 and PHxTQx1/TUXEDO InfinityBook 14 Gen6 */ > + { 0x9a49, 0x1d05, 0x1105, quirk_no_psr2 }, > + { 0x9a49, 0x1d05, 0x114c, quirk_no_psr2 }, > }; > > void intel_init_quirks(struct drm_i915_private *i915) > -- > 2.34.1 >
On Wed, 2023-02-22 at 15:13 -0500, Rodrigo Vivi wrote: > On Wed, Feb 22, 2023 at 03:17:55PM +0100, Werner Sembach wrote: > > On these Barebones PSR 2 is recognized as supported but is very > > buggy: > > - Upper third of screen does sometimes not updated, resulting in > > disappearing cursors or ghosts of already closed Windows saying > > behind. > > - Approximately 40 px from the bottom edge a 3 pixel wide strip of > > randomly > > colored pixels is flickering. > > > > PSR 1 is working fine however. > > I wonder if this is really about the panel's PSR2 or about the > userspace > there not marking the dirtyfb? I know I know... it is not userspace > fault... > > But I wonder if the case you got here highlights the fact that we > have > a substantial bug in the i915 itself in regards to PSR2 API. > > Jose, Jouni, ideas on how to check what could be happening here? There is already fix for this (Thanks to Werner Sembach for testing the patch): https://patchwork.freedesktop.org/series/114217/ > > oh, btw, Werner, do we have an open gilab issue for this? https://gitlab.freedesktop.org/drm/intel/-/issues/7347 > > Thanks, > Rodrigo. > > > > > Signed-off-by: Werner Sembach <wse@tuxedocomputers.com> > > Cc: <stable@vger.kernel.org> > > --- > > drivers/gpu/drm/i915/display/intel_quirks.c | 8 ++++++++ > > 1 file changed, 8 insertions(+) > > > > diff --git a/drivers/gpu/drm/i915/display/intel_quirks.c > > b/drivers/gpu/drm/i915/display/intel_quirks.c > > index ce6d0fe6448f5..eeb32d3189f5c 100644 > > --- a/drivers/gpu/drm/i915/display/intel_quirks.c > > +++ b/drivers/gpu/drm/i915/display/intel_quirks.c > > @@ -65,6 +65,10 @@ static void > > quirk_no_pps_backlight_power_hook(struct drm_i915_private *i915) > > drm_info(&i915->drm, "Applying no pps backlight power > > quirk\n"); > > } > > > > +/* > > + * Tongfang PHxTxX1 and PHxTQx1 devices have support for PSR 2 but > > it is broken > > + * on Linux. PSR 1 however works just fine. > > + */ > > static void quirk_no_psr2(struct drm_i915_private *i915) > > { > > intel_set_quirk(i915, QUIRK_NO_PSR2); > > @@ -205,6 +209,10 @@ static struct intel_quirk intel_quirks[] = { > > /* ECS Liva Q2 */ > > { 0x3185, 0x1019, 0xa94d, quirk_increase_ddi_disabled_time > > }, > > { 0x3184, 0x1019, 0xa94d, quirk_increase_ddi_disabled_time > > }, > > + > > + /* Tongfang PHxTxX1 and PHxTQx1/TUXEDO InfinityBook 14 Gen6 > > */ > > + { 0x9a49, 0x1d05, 0x1105, quirk_no_psr2 }, > > + { 0x9a49, 0x1d05, 0x114c, quirk_no_psr2 }, > > }; > > > > void intel_init_quirks(struct drm_i915_private *i915) > > -- > > 2.34.1 > >
Am 23.02.23 um 07:27 schrieb Hogander, Jouni: > On Wed, 2023-02-22 at 15:13 -0500, Rodrigo Vivi wrote: >> On Wed, Feb 22, 2023 at 03:17:55PM +0100, Werner Sembach wrote: >>> On these Barebones PSR 2 is recognized as supported but is very >>> buggy: >>> - Upper third of screen does sometimes not updated, resulting in >>> disappearing cursors or ghosts of already closed Windows saying >>> behind. >>> - Approximately 40 px from the bottom edge a 3 pixel wide strip of >>> randomly >>> colored pixels is flickering. >>> >>> PSR 1 is working fine however. >> I wonder if this is really about the panel's PSR2 or about the >> userspace >> there not marking the dirtyfb? I know I know... it is not userspace >> fault... >> >> But I wonder if the case you got here highlights the fact that we >> have >> a substantial bug in the i915 itself in regards to PSR2 API. >> >> Jose, Jouni, ideas on how to check what could be happening here? > There is already fix for this (Thanks to Werner Sembach for testing the > patch): > > https://patchwork.freedesktop.org/series/114217/ Yes, thanks for creating that patch ^^ I posted this quirk patch just as an possible alternative for stable if that other patch is considered not suitable for it (lets wait and see). And to get some feedback if something like this could be a viable workaround if similar bugs appear in the future. > >> oh, btw, Werner, do we have an open gilab issue for this? > https://gitlab.freedesktop.org/drm/intel/-/issues/7347 > >> Thanks, >> Rodrigo. >> >>> Signed-off-by: Werner Sembach <wse@tuxedocomputers.com> >>> Cc: <stable@vger.kernel.org> >>> --- >>> drivers/gpu/drm/i915/display/intel_quirks.c | 8 ++++++++ >>> 1 file changed, 8 insertions(+) >>> >>> diff --git a/drivers/gpu/drm/i915/display/intel_quirks.c >>> b/drivers/gpu/drm/i915/display/intel_quirks.c >>> index ce6d0fe6448f5..eeb32d3189f5c 100644 >>> --- a/drivers/gpu/drm/i915/display/intel_quirks.c >>> +++ b/drivers/gpu/drm/i915/display/intel_quirks.c >>> @@ -65,6 +65,10 @@ static void >>> quirk_no_pps_backlight_power_hook(struct drm_i915_private *i915) >>> drm_info(&i915->drm, "Applying no pps backlight power >>> quirk\n"); >>> } >>> >>> +/* >>> + * Tongfang PHxTxX1 and PHxTQx1 devices have support for PSR 2 but >>> it is broken >>> + * on Linux. PSR 1 however works just fine. >>> + */ >>> static void quirk_no_psr2(struct drm_i915_private *i915) >>> { >>> intel_set_quirk(i915, QUIRK_NO_PSR2); >>> @@ -205,6 +209,10 @@ static struct intel_quirk intel_quirks[] = { >>> /* ECS Liva Q2 */ >>> { 0x3185, 0x1019, 0xa94d, quirk_increase_ddi_disabled_time >>> }, >>> { 0x3184, 0x1019, 0xa94d, quirk_increase_ddi_disabled_time >>> }, >>> + >>> + /* Tongfang PHxTxX1 and PHxTQx1/TUXEDO InfinityBook 14 Gen6 >>> */ >>> + { 0x9a49, 0x1d05, 0x1105, quirk_no_psr2 }, >>> + { 0x9a49, 0x1d05, 0x114c, quirk_no_psr2 }, >>> }; >>> >>> void intel_init_quirks(struct drm_i915_private *i915) >>> -- >>> 2.34.1 >>>
diff --git a/drivers/gpu/drm/i915/display/intel_quirks.c b/drivers/gpu/drm/i915/display/intel_quirks.c index ce6d0fe6448f5..eeb32d3189f5c 100644 --- a/drivers/gpu/drm/i915/display/intel_quirks.c +++ b/drivers/gpu/drm/i915/display/intel_quirks.c @@ -65,6 +65,10 @@ static void quirk_no_pps_backlight_power_hook(struct drm_i915_private *i915) drm_info(&i915->drm, "Applying no pps backlight power quirk\n"); } +/* + * Tongfang PHxTxX1 and PHxTQx1 devices have support for PSR 2 but it is broken + * on Linux. PSR 1 however works just fine. + */ static void quirk_no_psr2(struct drm_i915_private *i915) { intel_set_quirk(i915, QUIRK_NO_PSR2); @@ -205,6 +209,10 @@ static struct intel_quirk intel_quirks[] = { /* ECS Liva Q2 */ { 0x3185, 0x1019, 0xa94d, quirk_increase_ddi_disabled_time }, { 0x3184, 0x1019, 0xa94d, quirk_increase_ddi_disabled_time }, + + /* Tongfang PHxTxX1 and PHxTQx1/TUXEDO InfinityBook 14 Gen6 */ + { 0x9a49, 0x1d05, 0x1105, quirk_no_psr2 }, + { 0x9a49, 0x1d05, 0x114c, quirk_no_psr2 }, }; void intel_init_quirks(struct drm_i915_private *i915)
On these Barebones PSR 2 is recognized as supported but is very buggy: - Upper third of screen does sometimes not updated, resulting in disappearing cursors or ghosts of already closed Windows saying behind. - Approximately 40 px from the bottom edge a 3 pixel wide strip of randomly colored pixels is flickering. PSR 1 is working fine however. Signed-off-by: Werner Sembach <wse@tuxedocomputers.com> Cc: <stable@vger.kernel.org> --- drivers/gpu/drm/i915/display/intel_quirks.c | 8 ++++++++ 1 file changed, 8 insertions(+)