[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: enhance legacy HPD disconnection flow for 4K pipe compute in GLK

2021-02-18 Thread Patchwork
== Series Details ==

Series: drm/i915: enhance legacy HPD disconnection flow for 4K pipe compute in 
GLK
URL   : https://patchwork.freedesktop.org/series/87206/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9788 -> Patchwork_19703


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19703/index.html

Known issues


  Here are the changes found in Patchwork_19703 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@gem_basic@create-fd-close:
- fi-tgl-y:   [PASS][1] -> [DMESG-WARN][2] ([i915#402]) +1 similar 
issue
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9788/fi-tgl-y/igt@gem_ba...@create-fd-close.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19703/fi-tgl-y/igt@gem_ba...@create-fd-close.html

  * igt@gem_huc_copy@huc-copy:
- fi-byt-j1900:   NOTRUN -> [SKIP][3] ([fdo#109271]) +27 similar issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19703/fi-byt-j1900/igt@gem_huc_c...@huc-copy.html

  * igt@kms_chamelium@hdmi-crc-fast:
- fi-byt-j1900:   NOTRUN -> [SKIP][4] ([fdo#109271] / [fdo#111827]) +8 
similar issues
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19703/fi-byt-j1900/igt@kms_chamel...@hdmi-crc-fast.html

  
 Possible fixes 

  * igt@debugfs_test@read_all_entries:
- fi-tgl-y:   [DMESG-WARN][5] ([i915#402]) -> [PASS][6] +1 similar 
issue
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9788/fi-tgl-y/igt@debugfs_test@read_all_entries.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19703/fi-tgl-y/igt@debugfs_test@read_all_entries.html

  * igt@gem_exec_suspend@basic-s0:
- fi-tgl-u2:  [FAIL][7] ([i915#1888]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9788/fi-tgl-u2/igt@gem_exec_susp...@basic-s0.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19703/fi-tgl-u2/igt@gem_exec_susp...@basic-s0.html

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402


Participating hosts (45 -> 41)
--

  Additional (1): fi-byt-j1900 
  Missing(5): fi-ilk-m540 fi-hsw-4200u fi-bsw-cyan fi-ctg-p8600 
fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_9788 -> Patchwork_19703

  CI-20190529: 20190529
  CI_DRM_9788: 1a90082e97d6efafec17b1d46a0dd8bb127517be @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_6009: a4dccf189b34a55338feec9927dac57c467c4100 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_19703: 4aeb74167f4cda404ad9c16aeae2d75f7ff44edb @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

4aeb74167f4c drm/i915: enhance legacy HPD disconnection flow for 4K pipe 
compute in GLK

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19703/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: enhance legacy HPD disconnection flow for 4K pipe compute in GLK

2021-02-18 Thread Patchwork
== Series Details ==

Series: drm/i915: enhance legacy HPD disconnection flow for 4K pipe compute in 
GLK
URL   : https://patchwork.freedesktop.org/series/87206/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
4aeb74167f4c drm/i915: enhance legacy HPD disconnection flow for 4K pipe 
compute in GLK
-:7: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description 
(prefer a maximum 75 chars per line)
#7: 
HDMI PHY is not available to use when its HDMI disaply plug-in, and power-off

total: 0 errors, 1 warnings, 0 checks, 8 lines checked


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm/i915: enhance legacy HPD disconnection flow for 4K pipe compute in GLK

2021-02-18 Thread Gary C Wang
HDMI PHY is not available to use when its HDMI disaply plug-in, and power-off
then power-on as soon as getting a hotplug. In above cases where there's a HDMI
connector physically connected but it can't be used by GLK with 4K pipe then 
blank
screen (lacking of edid-update & mode-probing) then need return false, since the
rest of the driver should pretty much treat the port as disconnected.

As previous result, handshaking through is required around connect and 
disconnect.
Otherwise it would be in a inconsistent state as port is disconnected but with a
valid HDMI type.

Also setting it to return HDMI disconnect for any future calls to
intel_digital_port_connected(), this way we don't need to check if port is 
marked
as safe everytime.

References: https://gitlab.freedesktop.org/drm/intel/-/issues/3092
Test-steps: setup HDMI 4K@60Hz in GLK then to power monitor off then on to get 
display
recovery correctly

Tested-by: Gary C Wang 
Reviewed-by: Gordon Sylin 
Signed-off-by: Gary C Wang 
---
 drivers/gpu/drm/i915/display/intel_hdmi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c 
b/drivers/gpu/drm/i915/display/intel_hdmi.c
index 7f384f259fc8..039cdbfe71a0 100644
--- a/drivers/gpu/drm/i915/display/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
@@ -2705,7 +2705,7 @@ intel_hdmi_detect(struct drm_connector *connector, bool 
force)
 
wakeref = intel_display_power_get(dev_priv, POWER_DOMAIN_GMBUS);
 
-   if (INTEL_GEN(dev_priv) >= 11 &&
+   if ((INTEL_GEN(dev_priv) >= 11 || IS_GEMINILAKE(dev_priv)) &&
!intel_digital_port_connected(encoder))
goto out;
 
-- 
2.17.1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [RFC PATCH 3/9] drm/i915/spi: add driver for on-die spi device

2021-02-18 Thread Winkler, Tomas


> 
> On Wed, Feb 17, 2021 at 08:58:12PM +, Winkler, Tomas wrote:
> >>
> >> On Tue, 16 Feb 2021, Tomas Winkler  wrote:
> >> > Add the platform driver for i915 on-die spi device, exposed via mfd
> >> > framework.
> >> >
> >> > Cc: Rodrigo Vivi 
> >> > Cc: Lucas De Marchi 
> >> > Signed-off-by: Tomas Winkler 
> >> > ---
> >> >  drivers/gpu/drm/i915/Kconfig |   2 +
> >> >  drivers/gpu/drm/i915/Makefile|   3 +
> >> >  drivers/gpu/drm/i915/spi/intel_spi_drv.c | 116
> >> > +++
> >> >  3 files changed, 121 insertions(+)  create mode 100644
> >> > drivers/gpu/drm/i915/spi/intel_spi_drv.c
> >> >
> >> > diff --git a/drivers/gpu/drm/i915/Kconfig
> >> > b/drivers/gpu/drm/i915/Kconfig index abcaa8da45ac..13c870e5878e
> >> > 100644
> >> > --- a/drivers/gpu/drm/i915/Kconfig
> >> > +++ b/drivers/gpu/drm/i915/Kconfig
> >> > @@ -27,6 +27,8 @@ config DRM_I915
> >> >  select CEC_CORE if CEC_NOTIFIER
> >> >  select VMAP_PFN
> >> >  select MFD_CORE
> >> > +select MTD
> >>
> >> Selecting MTD does not seem to be a popular thing to do, which is
> >> usually a clue it's probably the wrong thing to do.
> >Depends, if it is not selected you'll end with wrongly configured system.
> 
> no. I believe the idea is that having a CONFIG_I915_SPI, you could do
> 
>   depends on MTD
> 
> like the other drivers doing similar thing:
> 
>   git grep MTD -- ':(exclude)drivers/mtd' ':(exclude)arch/' '*Kconfig'
 I know the pattern and it can be done, the issue is that mtd is used mostly in 
embedded systems so it is not selected by the desktop distros.
The intel spi both on PCH and in GFX takes this into different direction and 
usage.

Thanks
Tomas

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 18/18] drm/i915/display13: Enabling dithering after the CC1 pipe

2021-02-18 Thread Mario Kleiner
On Fri, Feb 19, 2021 at 4:22 AM Mario Kleiner 
wrote:

>
>
> On Thu, Feb 11, 2021 at 1:29 PM Ville Syrjälä <
> ville.syrj...@linux.intel.com> wrote:
>
>> On Thu, Jan 28, 2021 at 11:24:13AM -0800, Matt Roper wrote:
>> > From: Nischal Varide 
>> >
>> > If the panel is 12bpc then Dithering is not enabled in the Legacy
>> > dithering block , instead its Enabled after the C1 CC1 pipe post
>> > color space conversion.For a 6bpc pannel Dithering is enabled in
>> > Legacy block.
>>
>> Dithering is probably going to require a whole uapi bikeshed.
>> Not sure we can just enable it unilaterally.
>>
>> Ccing dri-devel, and Mario who had issues with dithering in the
>> past...
>>
>> Thanks for the cc Ville!
>
> The problem with dithering on Intel is that various tested Intel gpu's
> (Ironlake, IvyBridge, Haswell, Skylake iirc.) are dithering when they
> shouldn't. If one has a standard 8 bpc framebuffer feeding into a standard
> (legacy) 256 slots, 8 bit wide lut which was loaded with an identity
> mapping, feeding into a standard 8 bpc video output (DVI/HDMI/DP), the
> expected result is that pixels rendered into the framebuffer show up
> unmodified at the video output. What happens instead is that some dithering
> is needlessly applied. This is bad for various neuroscience/medical
> research equipment that requires pixels to pass unmodified in a pure 8 bpc
> configuration, e.g., because some digital info is color-encoded in-band in
> the rendered image to control research hardware, a la "if rgb pixel (123,
> 12, 23) is detected in the digital video stream, emit some trigger signal,
> or timestamp that moment with a hw clock, or start or stop some scientific
> recording equipment". Also there exist specialized visual stimulators to
> drive special displays with more than 12 bpc, e.g., 16 bpc, and so they
> encode the 8MSB of 16 bpc color values in pixels in even columns, and the
> 8LSB in the odd columns of the framebuffer. Unexpected dithering makes such
> equipment completely unusable. By now I must have spent months of my life,
> just trying to deal with dithering induced problems on different gpu's due
> to hw quirks or bugs somewhere in the graphics stack.
>
> Atm. the intel kms driver disables dithering for anything with >= 8 bpc as
> a fix for this harmful hardware quirk.
>
> Ideally we'd have uapi that makes dithering controllable per connector
> (on/off/auto, selectable depth), also in a way that those controls are
> exposed as RandR output properties, easily controllable by X clients. And
> some safe default in case the client can't access the properties (like I'd
> expect to happen with the dozens of Wayland compositors under the sun).
> Various drivers had this over time, e.g., AMD classic kms path (if i don't
> misremember) and nouveau, but some of it also got lost in the new atomic
> kms variants, and Intel never exposed this.
>
> Or maybe some method that checks the values actually stored in the hw
> lut's, CTM etc. and if the values suggest no dithering should be needed,
> disable the dithering. E.g., if output depth is 8 bpc, one only needs
> dithering if the slots in the final active hw lut do have any meaningful
> values in the lower bits below the top 8 MSB, ie. if the content is
> actually > 8 bpc net bit depth.
>
> -mario
>
>
One cup of coffee later... I think this specific patch should be ok wrt. my
use cases. The majority of the above mentioned research devices are
single/dual-link DVI receivers, ie. 8 bpc video sinks. I'm only aware of
one recent device that has a DisplayPort receiver who could act as a > 8
bpc video sink. See the following link for advanced examples of such
devices: https://vpixx.com/our-products/video-i-o-hub/

I cannot think of a use case that would require more than 8 bits for inband
signalling given that that was good enough for the last 20 years, or for
encoding very high color precision content -- the 16 bpc precision that one
can get out of the current even/odd pixel = 8 MSB + 8 LSB encoding scheme
should be enough for the foreseeable future. Therefore dithering shouldn't
pose a problem if it leaves the 8 MSB of each pixel color component intact,
and spatial dithering as employed here usually only touches the least
significant bit (or maybe the 2 LSB's?).

As this patch only enables dithering on 12 bpc video sinks, if i understand
pipe_bpp correctly, it could only "corrupt" one bit and leave at least the
10-11 MSB's intact, right?

pipe_bpp == 24 is the case that would really hurt a lot of researchers if
dithering would be enabled without providing good uapi or other mechanisms
to prevent it.

So:

Acked-by: Mario Kleiner 

One suggestion: It would be good to also add a bit of drm_dbg_kms() logging
to the new code-patch, so that this 12 bpc dithering enable on
HAS_DISPLAY13 hw also shows up in the logs, not just the standard 6 bpc
enable. Helped a lot in debugging dithering issues if there was a reliable
trace in the logs of what was active when. One suggestion for 

Re: [Intel-gfx] [PATCH 18/18] drm/i915/display13: Enabling dithering after the CC1 pipe

2021-02-18 Thread Mario Kleiner
On Thu, Feb 11, 2021 at 1:29 PM Ville Syrjälä 
wrote:

> On Thu, Jan 28, 2021 at 11:24:13AM -0800, Matt Roper wrote:
> > From: Nischal Varide 
> >
> > If the panel is 12bpc then Dithering is not enabled in the Legacy
> > dithering block , instead its Enabled after the C1 CC1 pipe post
> > color space conversion.For a 6bpc pannel Dithering is enabled in
> > Legacy block.
>
> Dithering is probably going to require a whole uapi bikeshed.
> Not sure we can just enable it unilaterally.
>
> Ccing dri-devel, and Mario who had issues with dithering in the
> past...
>
> Thanks for the cc Ville!

The problem with dithering on Intel is that various tested Intel gpu's
(Ironlake, IvyBridge, Haswell, Skylake iirc.) are dithering when they
shouldn't. If one has a standard 8 bpc framebuffer feeding into a standard
(legacy) 256 slots, 8 bit wide lut which was loaded with an identity
mapping, feeding into a standard 8 bpc video output (DVI/HDMI/DP), the
expected result is that pixels rendered into the framebuffer show up
unmodified at the video output. What happens instead is that some dithering
is needlessly applied. This is bad for various neuroscience/medical
research equipment that requires pixels to pass unmodified in a pure 8 bpc
configuration, e.g., because some digital info is color-encoded in-band in
the rendered image to control research hardware, a la "if rgb pixel (123,
12, 23) is detected in the digital video stream, emit some trigger signal,
or timestamp that moment with a hw clock, or start or stop some scientific
recording equipment". Also there exist specialized visual stimulators to
drive special displays with more than 12 bpc, e.g., 16 bpc, and so they
encode the 8MSB of 16 bpc color values in pixels in even columns, and the
8LSB in the odd columns of the framebuffer. Unexpected dithering makes such
equipment completely unusable. By now I must have spent months of my life,
just trying to deal with dithering induced problems on different gpu's due
to hw quirks or bugs somewhere in the graphics stack.

Atm. the intel kms driver disables dithering for anything with >= 8 bpc as
a fix for this harmful hardware quirk.

Ideally we'd have uapi that makes dithering controllable per connector
(on/off/auto, selectable depth), also in a way that those controls are
exposed as RandR output properties, easily controllable by X clients. And
some safe default in case the client can't access the properties (like I'd
expect to happen with the dozens of Wayland compositors under the sun).
Various drivers had this over time, e.g., AMD classic kms path (if i don't
misremember) and nouveau, but some of it also got lost in the new atomic
kms variants, and Intel never exposed this.

Or maybe some method that checks the values actually stored in the hw
lut's, CTM etc. and if the values suggest no dithering should be needed,
disable the dithering. E.g., if output depth is 8 bpc, one only needs
dithering if the slots in the final active hw lut do have any meaningful
values in the lower bits below the top 8 MSB, ie. if the content is
actually > 8 bpc net bit depth.

-mario

>
> > Cc: Uma Shankar 
> > Signed-off-by: Nischal Varide 
> > Signed-off-by: Bhanuprakash Modem 
> > Signed-off-by: Matt Roper 
> > ---
> >  drivers/gpu/drm/i915/display/intel_color.c   | 16 
> >  drivers/gpu/drm/i915/display/intel_display.c |  9 -
> >  drivers/gpu/drm/i915/i915_reg.h  |  3 ++-
> >  3 files changed, 26 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_color.c
> b/drivers/gpu/drm/i915/display/intel_color.c
> > index ff7dcb7088bf..9a0572bbc5db 100644
> > --- a/drivers/gpu/drm/i915/display/intel_color.c
> > +++ b/drivers/gpu/drm/i915/display/intel_color.c
> > @@ -1604,6 +1604,20 @@ static u32 icl_csc_mode(const struct
> intel_crtc_state *crtc_state)
> >   return csc_mode;
> >  }
> >
> > +static u32 dither_after_cc1_12bpc(const struct intel_crtc_state
> *crtc_state)
> > +{
> > + u32 gamma_mode = crtc_state->gamma_mode;
> > + struct drm_i915_private *i915 =
> to_i915(crtc_state->uapi.crtc->dev);
> > +
> > + if (HAS_DISPLAY13(i915)) {
> > + if (!crtc_state->dither_force_disable &&
> > + (crtc_state->pipe_bpp == 36))
> > + gamma_mode |= GAMMA_MODE_DITHER_AFTER_CC1;
> > + }
> > +
> > + return gamma_mode;
> > +}
> > +
> >  static int icl_color_check(struct intel_crtc_state *crtc_state)
> >  {
> >   int ret;
> > @@ -1614,6 +1628,8 @@ static int icl_color_check(struct intel_crtc_state
> *crtc_state)
> >
> >   crtc_state->gamma_mode = icl_gamma_mode(crtc_state);
> >
> > + crtc_state->gamma_mode = dither_after_cc1_12bpc(crtc_state);
> > +
> >   crtc_state->csc_mode = icl_csc_mode(crtc_state);
> >
> >   crtc_state->preload_luts = intel_can_preload_luts(crtc_state);
> > diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> b/drivers/gpu/drm/i915/display/intel_display.c
> > index 

[Intel-gfx] [PULL] drm-intel-next-fixes

2021-02-18 Thread Rodrigo Vivi
Hi Dave and Daniel,

Here goes drm-intel-next-fixes-2021-02-18:

- Restrict DRM_I915_DEBUG to developer builds (Chris)
- Fix return and error codes (Dan)
- Suspend/Resume fix (Chris)
- Disable atomics in L3 for gen9 (Chris)
- Flush before changing register state (Chris)
- Fix for GLK's HDMI (Ville)
- Fix ILK+'s plane strides with Xtiling (Ville)
- Correct surface base address for renderclear (Chris)

Thanks,
Rodrigo.

The following changes since commit 4c3a3292730c56591472717d8c5c0faf74f6c6bb:

  drm/amd/display: fix unused variable warning (2021-02-05 09:49:44 +1000)

are available in the Git repository at:

  git://anongit.freedesktop.org/drm/drm-intel 
tags/drm-intel-next-fixes-2021-02-18

for you to fetch changes up to 81ce8f04aa96f7f6cae05770f68b5d15be91f5a2:

  drm/i915/gt: Correct surface base address for renderclear (2021-02-17 
06:19:04 -0500)


- Restrict DRM_I915_DEBUG to developer builds (Chris)
- Fix return and error codes (Dan)
- Suspend/Resume fix (Chris)
- Disable atomics in L3 for gen9 (Chris)
- Flush before changing register state (Chris)
- Fix for GLK's HDMI (Ville)
- Fix ILK+'s plane strides with Xtiling (Ville)
- Correct surface base address for renderclear (Chris)


Chris Wilson (5):
  drm/i915: Restrict DRM_I915_DEBUG to developer builds
  drm/i915/gem: Move freeze/freeze_late next to suspend/suspend_late
  drm/i915: Disable atomics in L3 for gen9
  drm/i915/gt: Flush before changing register state
  drm/i915/gt: Correct surface base address for renderclear

Dan Carpenter (2):
  drm/i915/gvt: fix uninitialized return in intel_gvt_update_reg_whitelist()
  drm/i915/gem: Fix oops in error handling code

Ville Syrjälä (2):
  drm/i915: Reject 446-480MHz HDMI clock on GLK
  drm/i915: Disallow plane x+w>stride on ilk+ with X-tiling

 drivers/gpu/drm/i915/Kconfig.debug   |  2 ++
 drivers/gpu/drm/i915/display/i9xx_plane.c| 27 ++
 drivers/gpu/drm/i915/display/intel_display.c | 12 
 drivers/gpu/drm/i915/display/intel_display.h |  6 
 drivers/gpu/drm/i915/display/intel_hdmi.c|  6 +++-
 drivers/gpu/drm/i915/gem/i915_gem_pm.c   | 41 
 drivers/gpu/drm/i915/gem/i915_gem_pm.h   |  3 ++
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c   | 12 +++-
 drivers/gpu/drm/i915/gt/gen7_renderclear.c   |  3 +-
 drivers/gpu/drm/i915/gt/intel_workarounds.c  |  8 ++
 drivers/gpu/drm/i915/gvt/cmd_parser.c|  3 +-
 drivers/gpu/drm/i915/i915_drv.c  |  1 +
 drivers/gpu/drm/i915/i915_drv.h  |  2 --
 drivers/gpu/drm/i915/i915_gem.c  | 41 
 drivers/gpu/drm/i915/i915_reg.h  |  7 +
 drivers/gpu/drm/i915/selftests/i915_gem.c|  1 +
 16 files changed, 115 insertions(+), 60 deletions(-)
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/vblank: Avoid storing a timestamp for the same frame twice (rev2)

2021-02-18 Thread Patchwork
== Series Details ==

Series: drm/vblank: Avoid storing a timestamp for the same frame twice (rev2)
URL   : https://patchwork.freedesktop.org/series/86672/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9786_full -> Patchwork_19701_full


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_19701_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_19701_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Possible new issues
---

  Here are the unknown changes that may have been introduced in 
Patchwork_19701_full:

### IGT changes ###

 Possible regressions 

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
- shard-glk:  [PASS][1] -> [INCOMPLETE][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9786/shard-glk3/igt@kms_pipe_crc_ba...@suspend-read-crc-pipe-b.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/shard-glk1/igt@kms_pipe_crc_ba...@suspend-read-crc-pipe-b.html

  
Known issues


  Here are the changes found in Patchwork_19701_full that come from known 
issues:

### IGT changes ###

 Issues hit 

  * igt@feature_discovery@psr2:
- shard-iclb: [PASS][3] -> [SKIP][4] ([i915#658])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9786/shard-iclb2/igt@feature_discov...@psr2.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/shard-iclb7/igt@feature_discov...@psr2.html

  * igt@gem_ctx_persistence@engines-hostile:
- shard-snb:  NOTRUN -> [SKIP][5] ([fdo#109271] / [i915#1099])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/shard-snb7/igt@gem_ctx_persiste...@engines-hostile.html

  * igt@gem_ctx_persistence@engines-mixed-process:
- shard-hsw:  NOTRUN -> [SKIP][6] ([fdo#109271] / [i915#1099])
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/shard-hsw5/igt@gem_ctx_persiste...@engines-mixed-process.html

  * igt@gem_exec_fair@basic-deadline:
- shard-apl:  NOTRUN -> [FAIL][7] ([i915#2846])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/shard-apl1/igt@gem_exec_f...@basic-deadline.html

  * igt@gem_exec_fair@basic-none-rrul@rcs0:
- shard-glk:  [PASS][8] -> [FAIL][9] ([i915#2842])
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9786/shard-glk5/igt@gem_exec_fair@basic-none-r...@rcs0.html
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/shard-glk8/igt@gem_exec_fair@basic-none-r...@rcs0.html

  * igt@gem_exec_fair@basic-none@vcs0:
- shard-apl:  [PASS][10] -> [FAIL][11] ([i915#2842])
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9786/shard-apl2/igt@gem_exec_fair@basic-n...@vcs0.html
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/shard-apl2/igt@gem_exec_fair@basic-n...@vcs0.html

  * igt@gem_exec_fair@basic-pace@rcs0:
- shard-kbl:  NOTRUN -> [FAIL][12] ([i915#2842])
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/shard-kbl4/igt@gem_exec_fair@basic-p...@rcs0.html

  * igt@gem_exec_fair@basic-pace@vcs1:
- shard-iclb: NOTRUN -> [FAIL][13] ([i915#2842]) +1 similar issue
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/shard-iclb2/igt@gem_exec_fair@basic-p...@vcs1.html

  * igt@gem_exec_reloc@basic-many-active@vcs0:
- shard-kbl:  NOTRUN -> [FAIL][14] ([i915#2389]) +4 similar issues
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/shard-kbl4/igt@gem_exec_reloc@basic-many-act...@vcs0.html

  * igt@gem_exec_reloc@basic-many-active@vcs1:
- shard-iclb: NOTRUN -> [FAIL][15] ([i915#2389])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/shard-iclb2/igt@gem_exec_reloc@basic-many-act...@vcs1.html

  * igt@gem_exec_suspend@basic-s3:
- shard-kbl:  [PASS][16] -> [DMESG-WARN][17] ([i915#180]) +2 
similar issues
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9786/shard-kbl4/igt@gem_exec_susp...@basic-s3.html
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/shard-kbl6/igt@gem_exec_susp...@basic-s3.html

  * igt@gem_huc_copy@huc-copy:
- shard-apl:  NOTRUN -> [SKIP][18] ([fdo#109271] / [i915#2190])
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/shard-apl3/igt@gem_huc_c...@huc-copy.html

  * igt@gem_pwrite@basic-exhaustion:
- shard-skl:  NOTRUN -> [WARN][19] ([i915#2658])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/shard-skl7/igt@gem_pwr...@basic-exhaustion.html
- shard-kbl:  NOTRUN -> [WARN][20] ([i915#2658]) +1 similar issue
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/shard-kbl1/igt@gem_pwr...@basic-exhaustion.html

 

[Intel-gfx] ✗ Fi.CI.BUILD: failure for series starting with [1/3] drm/i915/display/adl_s: Fix dpclka_cfgcr0_clk_off mapping (rev2)

2021-02-18 Thread Patchwork
== Series Details ==

Series: series starting with [1/3] drm/i915/display/adl_s: Fix 
dpclka_cfgcr0_clk_off mapping (rev2)
URL   : https://patchwork.freedesktop.org/series/87048/
State : failure

== Summary ==

Applying: drm/i915/display/adl_s: Fix dpclka_cfgcr0_clk_off mapping
Using index info to reconstruct a base tree...
M   drivers/gpu/drm/i915/display/intel_ddi.c
Falling back to patching base and 3-way merge...
Auto-merging drivers/gpu/drm/i915/display/intel_ddi.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/display/intel_ddi.c
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0001 drm/i915/display/adl_s: Fix dpclka_cfgcr0_clk_off mapping
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] ✗ Fi.CI.BAT: failure for drm/vblank: Avoid storing a timestamp for the same frame twice (rev2)

2021-02-18 Thread Vudum, Lakshminarayana
Re-reported.

-Original Message-
From: Ville Syrjälä  
Sent: Thursday, February 18, 2021 11:22 AM
To: intel-gfx@lists.freedesktop.org
Cc: Vudum, Lakshminarayana 
Subject: Re: ✗ Fi.CI.BAT: failure for drm/vblank: Avoid storing a timestamp for 
the same frame twice (rev2)

On Thu, Feb 18, 2021 at 07:08:27PM -, Patchwork wrote:
> == Series Details ==
> 
> Series: drm/vblank: Avoid storing a timestamp for the same frame twice (rev2)
> URL   : https://patchwork.freedesktop.org/series/86672/
> State : failure
> 
> == Summary ==
> 
> CI Bug Log - changes from CI_DRM_9786 -> Patchwork_19701 
> 
> 
> Summary
> ---
> 
>   **FAILURE**
> 
>   Serious unknown changes coming with Patchwork_19701 absolutely need to be
>   verified manually.
>   
>   If you think the reported changes have nothing to do with the changes
>   introduced in Patchwork_19701, please notify your bug team to allow them
>   to document this new failure mode, which will reduce false positives in CI.
> 
>   External URL: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/index.html
> 
> Possible new issues
> ---
> 
>   Here are the unknown changes that may have been introduced in 
> Patchwork_19701:
> 
> ### IGT changes ###
> 
>  Possible regressions 
> 
>   * igt@gem_exec_suspend@basic-s0:
> - fi-cfl-8109u:   [PASS][1] -> [INCOMPLETE][2]
>[1]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9786/fi-cfl-8109u/igt@gem_exec_susp...@basic-s0.html
>[2]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/fi-cfl-8109u/
> igt@gem_exec_susp...@basic-s0.html

Looks like the machine went AWOL during suspend. Seems unrelated to the patch 
at hand.

--
Ville Syrjälä
Intel
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] Issue with cec_register_adapter calling request_module() from an async context when called from intel_dp_detect

2021-02-18 Thread Sean Young
Hi Hans,

On Thu, Feb 18, 2021 at 04:33:38PM +0100, Hans de Goede wrote:
> On 2/17/21 5:29 PM, Hans Verkuil wrote:
> > On 17/02/2021 16:11, Sean Young wrote:
> >> Hi,
> >>
> >> On Wed, Feb 17, 2021 at 04:04:11PM +0100, Hans de Goede wrote:
> >>> On 2/17/21 3:32 PM, Sean Young wrote:
>  On Wed, Feb 17, 2021 at 01:41:46PM +0100, Hans Verkuil wrote:
> > Hi Hans,
> >
> > On 17/02/2021 13:24, Hans de Goede wrote:
> >> 
> >>
> >> Hi Hans,
> >>
> >> Fedora has a (opt-in) system to automatically collect backtraces from 
> >> software
> >> crashing on users systems.
> >>
> >> This includes collecting kernel backtraces (including once triggered by
> >> WARN macros) while looking a the top 10 of the most reported backtrace 
> >> during the
> >> last 2 weeks report from ABRT: 
> >> https://retrace.fedoraproject.org/faf/problems/
> >>
> >> I noticed the following backtrace:
> >> https://retrace.fedoraproject.org/faf/problems/8150/
> >> which has been reported 17 times by Fedora users who have opted-in 
> >> during the
> >> last 14 days.
> >>
> >> The issue here is that cec_register_adapter ends up calling 
> >> request_module()
> >> from an async context, triggering this warn in kernel/kmod.c 
> >> __request_module():
> >>
> >> /*
> >>  * We don't allow synchronous module loading from async.  
> >> Module
> >>  * init may invoke async_synchronize_full() which will end up
> >>  * waiting for this task which already is waiting for the 
> >> module
> >>  * loading to complete, leading to a deadlock.
> >>  */
> >> WARN_ON_ONCE(wait && current_is_async());
> >>
> >> The call-path leading to this goes like this:
> >>
> >>  ? kvasprintf+0x6d/0xa0
> >>  ? kobject_set_name_vargs+0x6f/0x90
> >>  rc_map_get+0x30/0x60
> >
> > It's not CEC, it is rc_map_get that calls request_module() for 
> > rc-cec.ko.
> >
> > I've added Sean Young to the CC list.
> >
> > Sean, is it possible to treat rc-cec as a built-in if MEDIA_CEC_RC is 
> > set?
> >
> > I think this issue is very specific to CEC. I would not expect to see 
> > this
> > with any other rc keymap.
> 
>  So CEC creates an RC device with a keymap (cec keymap, of course) and 
>  then
>  the keymap needs to be loaded. We certainly don't want all keymaps as
>  builtins, that would be a waste.
> 
>  The cec keymap is scanned once to build a map from cec codes to linux
>  keycodes; making it builtin is not ideal, and makes the build system a
>  bit messy.
> 
>  I don't think we can load the keymap later, user space may start 
>  remapping
>  the keymap from udev.
> 
>  Possibly we could create the cec or rc device later but this could be a 
>  bit
>  messy.
> 
>  Could CEC specify:
> 
>  #if IS_ENABLED(CONFIG_MEDIA_CEC_RC)
>  MODULE_SOFTDEP("rc-cec")
>  #endif
> >>>
> >>> That would need to be:
> >>>
> >>> MODULE_SOFTDEP("pre: rc-cec")
> >>>
> >>> I see that the drm_kms_helper and i915 drivers both depend on the cec 
> >>> module already,
> >>> so yes if that module will request for rc-cec to be loaded before it is 
> >>> loaded
> >>> (and thus before i915 is loaded) then that should work around this.
> >>>
> >>> Assuming the user is using a module-loader which honors the softdep...
> >>>
> >>> Also this assumes that rc_map_get is smart enough to not call 
> >>> request_module()
> >>> if the module is already loaded, is that the case ?
> >>
> >> Yes, see rc_map_get().
> > 
> > I tried this. It works if CONFIG_RC_CORE is set to m, but setting it to
> > y resulted in the same problem. It looks like MODULE_SOFTDEP only works if 
> > rc_main
> > is a module as well.
> 
> Yeah that is a known limit of module softdeps, they only work inside modules 
> ...

Yes, I assume this is the problem.

> Still, assuming there is no easy other fix, we could still use this somehow.
> 
> I do see that at least Fedora actually has CONFIG_RC_CORE=y for some reason.

This is to make BPF IR decoding possible.

> I guess we could maybe add the softdep to the CONFIG_RC_MAP module or
> maybe to the module which contains the code enabled by CONFIG_DRM_DP_CEC ?
> 
> At least Fedora has all drm stuff as modules and also has CONFIG_RC_MAP=m,
> 
> I know this is not a real fix but a workaround to get rid of 170,000
> backtraces / 14 days being reported by (opted-in) systems running the
> Fedora generic kernel config would be welcome regardless of it being the
> "perfect" fix.

Of course, I totally agree that a solution is needed.

How about:

 1) Use MODULE_SOFTDEP("rc-cec"); 

 2) If it's compiled as a module, rc-cec should be builtin


Sean
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/vblank: Avoid storing a timestamp for the same frame twice (rev2)

2021-02-18 Thread Patchwork
== Series Details ==

Series: drm/vblank: Avoid storing a timestamp for the same frame twice (rev2)
URL   : https://patchwork.freedesktop.org/series/86672/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9786 -> Patchwork_19701


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/index.html

Known issues


  Here are the changes found in Patchwork_19701 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@amdgpu/amd_cs_nop@sync-compute0:
- fi-kbl-r:   NOTRUN -> [SKIP][1] ([fdo#109271]) +20 similar issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/fi-kbl-r/igt@amdgpu/amd_cs_...@sync-compute0.html

  * igt@gem_exec_suspend@basic-s0:
- fi-cfl-8109u:   [PASS][2] -> [INCOMPLETE][3] ([i915#155])
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9786/fi-cfl-8109u/igt@gem_exec_susp...@basic-s0.html
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/fi-cfl-8109u/igt@gem_exec_susp...@basic-s0.html

  * igt@gem_huc_copy@huc-copy:
- fi-kbl-r:   NOTRUN -> [SKIP][4] ([fdo#109271] / [i915#2190])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/fi-kbl-r/igt@gem_huc_c...@huc-copy.html

  * igt@gem_linear_blits@basic:
- fi-tgl-y:   [PASS][5] -> [DMESG-WARN][6] ([i915#402]) +1 similar 
issue
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9786/fi-tgl-y/igt@gem_linear_bl...@basic.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/fi-tgl-y/igt@gem_linear_bl...@basic.html

  * igt@i915_pm_rpm@module-reload:
- fi-kbl-guc: [PASS][7] -> [FAIL][8] ([i915#2203] / [i915#579])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9786/fi-kbl-guc/igt@i915_pm_...@module-reload.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/fi-kbl-guc/igt@i915_pm_...@module-reload.html

  * igt@kms_chamelium@hdmi-edid-read:
- fi-kbl-r:   NOTRUN -> [SKIP][9] ([fdo#109271] / [fdo#111827]) +8 
similar issues
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/fi-kbl-r/igt@kms_chamel...@hdmi-edid-read.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d:
- fi-kbl-r:   NOTRUN -> [SKIP][10] ([fdo#109271] / [i915#533])
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/fi-kbl-r/igt@kms_pipe_crc_ba...@compare-crc-sanitycheck-pipe-d.html

  
 Possible fixes 

  * igt@gem_mmap_gtt@basic:
- fi-tgl-y:   [DMESG-WARN][11] ([i915#402]) -> [PASS][12] +1 
similar issue
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9786/fi-tgl-y/igt@gem_mmap_...@basic.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/fi-tgl-y/igt@gem_mmap_...@basic.html

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#155]: https://gitlab.freedesktop.org/drm/intel/issues/155
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2203]: https://gitlab.freedesktop.org/drm/intel/issues/2203
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#579]: https://gitlab.freedesktop.org/drm/intel/issues/579


Participating hosts (46 -> 39)
--

  Missing(7): fi-cml-u2 fi-ilk-m540 fi-hsw-4200u fi-bsw-cyan fi-ctg-p8600 
fi-ehl-2 fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_9786 -> Patchwork_19701

  CI-20190529: 20190529
  CI_DRM_9786: 487d534b8912194d104e05b66e3a0303800300ff @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_6008: 34ccd8e8c38587e7d46ec964d30d17863b166fda @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_19701: b9e2377b1bd55114447c010cfd7f8b4302744afa @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

b9e2377b1bd5 drm/vblank: Do not store a new vblank timestamp in 
drm_vblank_restore()

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] ✗ Fi.CI.BAT: failure for drm/vblank: Avoid storing a timestamp for the same frame twice (rev2)

2021-02-18 Thread Ville Syrjälä
On Thu, Feb 18, 2021 at 07:08:27PM -, Patchwork wrote:
> == Series Details ==
> 
> Series: drm/vblank: Avoid storing a timestamp for the same frame twice (rev2)
> URL   : https://patchwork.freedesktop.org/series/86672/
> State : failure
> 
> == Summary ==
> 
> CI Bug Log - changes from CI_DRM_9786 -> Patchwork_19701
> 
> 
> Summary
> ---
> 
>   **FAILURE**
> 
>   Serious unknown changes coming with Patchwork_19701 absolutely need to be
>   verified manually.
>   
>   If you think the reported changes have nothing to do with the changes
>   introduced in Patchwork_19701, please notify your bug team to allow them
>   to document this new failure mode, which will reduce false positives in CI.
> 
>   External URL: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/index.html
> 
> Possible new issues
> ---
> 
>   Here are the unknown changes that may have been introduced in 
> Patchwork_19701:
> 
> ### IGT changes ###
> 
>  Possible regressions 
> 
>   * igt@gem_exec_suspend@basic-s0:
> - fi-cfl-8109u:   [PASS][1] -> [INCOMPLETE][2]
>[1]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9786/fi-cfl-8109u/igt@gem_exec_susp...@basic-s0.html
>[2]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/fi-cfl-8109u/igt@gem_exec_susp...@basic-s0.html

Looks like the machine went AWOL during suspend. Seems unrelated to
the patch at hand.

-- 
Ville Syrjälä
Intel
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.BAT: failure for drm/vblank: Avoid storing a timestamp for the same frame twice (rev2)

2021-02-18 Thread Patchwork
== Series Details ==

Series: drm/vblank: Avoid storing a timestamp for the same frame twice (rev2)
URL   : https://patchwork.freedesktop.org/series/86672/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9786 -> Patchwork_19701


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_19701 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_19701, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/index.html

Possible new issues
---

  Here are the unknown changes that may have been introduced in Patchwork_19701:

### IGT changes ###

 Possible regressions 

  * igt@gem_exec_suspend@basic-s0:
- fi-cfl-8109u:   [PASS][1] -> [INCOMPLETE][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9786/fi-cfl-8109u/igt@gem_exec_susp...@basic-s0.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/fi-cfl-8109u/igt@gem_exec_susp...@basic-s0.html

  
Known issues


  Here are the changes found in Patchwork_19701 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@amdgpu/amd_cs_nop@sync-compute0:
- fi-kbl-r:   NOTRUN -> [SKIP][3] ([fdo#109271]) +20 similar issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/fi-kbl-r/igt@amdgpu/amd_cs_...@sync-compute0.html

  * igt@gem_huc_copy@huc-copy:
- fi-kbl-r:   NOTRUN -> [SKIP][4] ([fdo#109271] / [i915#2190])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/fi-kbl-r/igt@gem_huc_c...@huc-copy.html

  * igt@gem_linear_blits@basic:
- fi-tgl-y:   [PASS][5] -> [DMESG-WARN][6] ([i915#402]) +1 similar 
issue
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9786/fi-tgl-y/igt@gem_linear_bl...@basic.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/fi-tgl-y/igt@gem_linear_bl...@basic.html

  * igt@i915_pm_rpm@module-reload:
- fi-kbl-guc: [PASS][7] -> [FAIL][8] ([i915#2203] / [i915#579])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9786/fi-kbl-guc/igt@i915_pm_...@module-reload.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/fi-kbl-guc/igt@i915_pm_...@module-reload.html

  * igt@kms_chamelium@hdmi-edid-read:
- fi-kbl-r:   NOTRUN -> [SKIP][9] ([fdo#109271] / [fdo#111827]) +8 
similar issues
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/fi-kbl-r/igt@kms_chamel...@hdmi-edid-read.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d:
- fi-kbl-r:   NOTRUN -> [SKIP][10] ([fdo#109271] / [i915#533])
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/fi-kbl-r/igt@kms_pipe_crc_ba...@compare-crc-sanitycheck-pipe-d.html

  
 Possible fixes 

  * igt@gem_mmap_gtt@basic:
- fi-tgl-y:   [DMESG-WARN][11] ([i915#402]) -> [PASS][12] +1 
similar issue
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9786/fi-tgl-y/igt@gem_mmap_...@basic.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/fi-tgl-y/igt@gem_mmap_...@basic.html

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2203]: https://gitlab.freedesktop.org/drm/intel/issues/2203
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#579]: https://gitlab.freedesktop.org/drm/intel/issues/579


Participating hosts (46 -> 39)
--

  Missing(7): fi-cml-u2 fi-ilk-m540 fi-hsw-4200u fi-bsw-cyan fi-ctg-p8600 
fi-ehl-2 fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_9786 -> Patchwork_19701

  CI-20190529: 20190529
  CI_DRM_9786: 487d534b8912194d104e05b66e3a0303800300ff @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_6008: 34ccd8e8c38587e7d46ec964d30d17863b166fda @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_19701: b9e2377b1bd55114447c010cfd7f8b4302744afa @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

b9e2377b1bd5 drm/vblank: Do not store a new vblank timestamp in 
drm_vblank_restore()

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19701/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] Issue with cec_register_adapter calling request_module() from an async context when called from intel_dp_detect

2021-02-18 Thread Hans de Goede
Hi,

On 2/18/21 5:38 PM, Sean Young wrote:
> Hi Hans,
> 
> On Thu, Feb 18, 2021 at 04:33:38PM +0100, Hans de Goede wrote:
>> On 2/17/21 5:29 PM, Hans Verkuil wrote:
>>> On 17/02/2021 16:11, Sean Young wrote:
 Hi,

 On Wed, Feb 17, 2021 at 04:04:11PM +0100, Hans de Goede wrote:
> On 2/17/21 3:32 PM, Sean Young wrote:
>> On Wed, Feb 17, 2021 at 01:41:46PM +0100, Hans Verkuil wrote:
>>> Hi Hans,
>>>
>>> On 17/02/2021 13:24, Hans de Goede wrote:
 

 Hi Hans,

 Fedora has a (opt-in) system to automatically collect backtraces from 
 software
 crashing on users systems.

 This includes collecting kernel backtraces (including once triggered by
 WARN macros) while looking a the top 10 of the most reported backtrace 
 during the
 last 2 weeks report from ABRT: 
 https://retrace.fedoraproject.org/faf/problems/

 I noticed the following backtrace:
 https://retrace.fedoraproject.org/faf/problems/8150/
 which has been reported 17 times by Fedora users who have opted-in 
 during the
 last 14 days.

 The issue here is that cec_register_adapter ends up calling 
 request_module()
 from an async context, triggering this warn in kernel/kmod.c 
 __request_module():

 /*
  * We don't allow synchronous module loading from async.  
 Module
  * init may invoke async_synchronize_full() which will end up
  * waiting for this task which already is waiting for the 
 module
  * loading to complete, leading to a deadlock.
  */
 WARN_ON_ONCE(wait && current_is_async());

 The call-path leading to this goes like this:

  ? kvasprintf+0x6d/0xa0
  ? kobject_set_name_vargs+0x6f/0x90
  rc_map_get+0x30/0x60
>>>
>>> It's not CEC, it is rc_map_get that calls request_module() for 
>>> rc-cec.ko.
>>>
>>> I've added Sean Young to the CC list.
>>>
>>> Sean, is it possible to treat rc-cec as a built-in if MEDIA_CEC_RC is 
>>> set?
>>>
>>> I think this issue is very specific to CEC. I would not expect to see 
>>> this
>>> with any other rc keymap.
>>
>> So CEC creates an RC device with a keymap (cec keymap, of course) and 
>> then
>> the keymap needs to be loaded. We certainly don't want all keymaps as
>> builtins, that would be a waste.
>>
>> The cec keymap is scanned once to build a map from cec codes to linux
>> keycodes; making it builtin is not ideal, and makes the build system a
>> bit messy.
>>
>> I don't think we can load the keymap later, user space may start 
>> remapping
>> the keymap from udev.
>>
>> Possibly we could create the cec or rc device later but this could be a 
>> bit
>> messy.
>>
>> Could CEC specify:
>>
>> #if IS_ENABLED(CONFIG_MEDIA_CEC_RC)
>> MODULE_SOFTDEP("rc-cec")
>> #endif
>
> That would need to be:
>
> MODULE_SOFTDEP("pre: rc-cec")
>
> I see that the drm_kms_helper and i915 drivers both depend on the cec 
> module already,
> so yes if that module will request for rc-cec to be loaded before it is 
> loaded
> (and thus before i915 is loaded) then that should work around this.
>
> Assuming the user is using a module-loader which honors the softdep...
>
> Also this assumes that rc_map_get is smart enough to not call 
> request_module()
> if the module is already loaded, is that the case ?

 Yes, see rc_map_get().
>>>
>>> I tried this. It works if CONFIG_RC_CORE is set to m, but setting it to
>>> y resulted in the same problem. It looks like MODULE_SOFTDEP only works if 
>>> rc_main
>>> is a module as well.
>>
>> Yeah that is a known limit of module softdeps, they only work inside modules 
>> ...
> 
> Yes, I assume this is the problem.
> 
>> Still, assuming there is no easy other fix, we could still use this somehow.
>>
>> I do see that at least Fedora actually has CONFIG_RC_CORE=y for some reason.
> 
> This is to make BPF IR decoding possible.
> 
>> I guess we could maybe add the softdep to the CONFIG_RC_MAP module or
>> maybe to the module which contains the code enabled by CONFIG_DRM_DP_CEC ?
>>
>> At least Fedora has all drm stuff as modules and also has CONFIG_RC_MAP=m,
>>
>> I know this is not a real fix but a workaround to get rid of 170,000
>> backtraces / 14 days being reported by (opted-in) systems running the
>> Fedora generic kernel config would be welcome regardless of it being the
>> "perfect" fix.
> 
> Of course, I totally agree that a solution is needed.
> 
> How about:
> 
>  1) Use MODULE_SOFTDEP("rc-cec"); 
> 
>  2) If it's compiled as a module, rc-cec should be builtin

I assume with 2. you 

Re: [Intel-gfx] [PATCH 3/3] drm/i915: Fix plane watermark mismatches

2021-02-18 Thread Ville Syrjälä
On Thu, Feb 18, 2021 at 05:25:54PM +, Souza, Jose wrote:
> On Thu, 2021-02-18 at 00:14 +0200, Ville Syrjälä wrote:
> > On Wed, Feb 17, 2021 at 05:24:03PM +, Souza, Jose wrote:
> > > On Fri, 2021-02-12 at 23:13 +0200, Ville Syrjälä wrote:
> > > > On Fri, Feb 12, 2021 at 07:44:22PM +, Souza, Jose wrote:
> > > > > On Fri, 2021-02-12 at 20:35 +0200, Ville Syrjälä wrote:
> > > > > > On Fri, Feb 12, 2021 at 10:22:01AM -0800, José Roberto de Souza 
> > > > > > wrote:
> > > > > > > Found a system were firmware/BIOS left the plane_res_b and 
> > > > > > > plane_res_l
> > > > > > > set with non-zero values for disable planes.
> > > > > > 
> > > > > > It pretty much happens always since the reset value is not zero.
> > > > > > IIRC we made the state chcker pedantic enough to complain about
> > > > > > that, so we need to clean it up.
> > > > > 
> > > > > Are you planning to fix it soon?
> > > > 
> > > > Fix what exactly? I guess you're seeing an actual problem of some sort?
> > > 
> > > Your comment above made me understand that you were planning to fix this 
> > > plane watermark mismatches for disabled planes in other way other than 
> > > what
> > > this patch does.
> > > Or should we proceed with this solution? 
> > 
> > There should be no mismatches with the current scheme.
> > We explicitly program wms to 0 for disabled planes.
> > 
> 
> It still happens when we take over the state that BIOS/firmware left.

That would seem to imply skl_wm_add_affected_planes() isn't working
right for some reason.

-- 
Ville Syrjälä
Intel
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 3/3] drm/i915: Fix plane watermark mismatches

2021-02-18 Thread Souza, Jose
On Thu, 2021-02-18 at 00:14 +0200, Ville Syrjälä wrote:
> On Wed, Feb 17, 2021 at 05:24:03PM +, Souza, Jose wrote:
> > On Fri, 2021-02-12 at 23:13 +0200, Ville Syrjälä wrote:
> > > On Fri, Feb 12, 2021 at 07:44:22PM +, Souza, Jose wrote:
> > > > On Fri, 2021-02-12 at 20:35 +0200, Ville Syrjälä wrote:
> > > > > On Fri, Feb 12, 2021 at 10:22:01AM -0800, José Roberto de Souza wrote:
> > > > > > Found a system were firmware/BIOS left the plane_res_b and 
> > > > > > plane_res_l
> > > > > > set with non-zero values for disable planes.
> > > > > 
> > > > > It pretty much happens always since the reset value is not zero.
> > > > > IIRC we made the state chcker pedantic enough to complain about
> > > > > that, so we need to clean it up.
> > > > 
> > > > Are you planning to fix it soon?
> > > 
> > > Fix what exactly? I guess you're seeing an actual problem of some sort?
> > 
> > Your comment above made me understand that you were planning to fix this 
> > plane watermark mismatches for disabled planes in other way other than what
> > this patch does.
> > Or should we proceed with this solution? 
> 
> There should be no mismatches with the current scheme.
> We explicitly program wms to 0 for disabled planes.
> 

It still happens when we take over the state that BIOS/firmware left.

[  118.222939] [drm:drm_atomic_commit] committing 676e6290
[  118.241712] i915 :00:02.0: [drm:intel_panel_actually_set_backlight 
[i915]] set backlight PWM = 96000
[  118.242314] i915 :00:02.0: [drm:__intel_fbc_disable [i915]] Disabling 
FBC on pipe A
[  118.242726] i915 :00:02.0: [drm:intel_fbc_enable [i915]] reserved 
16588800 bytes of contiguous stolen space for FBC, threshold: 1
[  118.243020] i915 :00:02.0: [drm:intel_fbc_enable [i915]] Enabling FBC on 
pipe A
[  118.257685] i915 :00:02.0: [drm] *ERROR* mismatch in WM pipe A plane 2 
level 0 (expected e=0 b=0 l=0, got e=0 b=7 l=1)
[  118.257698] i915 :00:02.0: [drm] *ERROR* mismatch in WM pipe A plane 2 
level 1 (expected e=0 b=0 l=0, got e=0 b=7 l=1)
[  118.257706] i915 :00:02.0: [drm] *ERROR* mismatch in WM pipe A plane 2 
level 2 (expected e=0 b=0 l=0, got e=0 b=7 l=1)
[  118.257714] i915 :00:02.0: [drm] *ERROR* mismatch in WM pipe A plane 2 
level 3 (expected e=0 b=0 l=0, got e=0 b=7 l=1)
[  118.257721] i915 :00:02.0: [drm] *ERROR* mismatch in WM pipe A plane 2 
level 4 (expected e=0 b=0 l=0, got e=0 b=7 l=1)
[  118.257729] i915 :00:02.0: [drm] *ERROR* mismatch in WM pipe A plane 2 
level 5 (expected e=0 b=0 l=0, got e=0 b=7 l=1)
[  118.257737] i915 :00:02.0: [drm] *ERROR* mismatch in WM pipe A plane 2 
level 6 (expected e=0 b=0 l=0, got e=0 b=7 l=1)
[  118.257745] i915 :00:02.0: [drm] *ERROR* mismatch in trans WM pipe A 
plane 2 (expected e=0 b=0 l=0, got e=0 b=7 l=1)
[  118.257753] i915 :00:02.0: [drm] *ERROR* mismatch in SAGV trans WM pipe 
A plane 2 (expected e=0 b=0 l=0, got e=0 b=7 l=1)
[  118.257761] i915 :00:02.0: [drm] *ERROR* mismatch in WM pipe A plane 3 
level 0 (expected e=0 b=0 l=0, got e=0 b=7 l=1)
[  118.257769] i915 :00:02.0: [drm] *ERROR* mismatch in WM pipe A plane 3 
level 1 (expected e=0 b=0 l=0, got e=0 b=7 l=1)
[  118.257776] i915 :00:02.0: [drm] *ERROR* mismatch in WM pipe A plane 3 
level 2 (expected e=0 b=0 l=0, got e=0 b=7 l=1)
[  118.257784] i915 :00:02.0: [drm] *ERROR* mismatch in WM pipe A plane 3 
level 3 (expected e=0 b=0 l=0, got e=0 b=7 l=1)
[  118.257792] i915 :00:02.0: [drm] *ERROR* mismatch in WM pipe A plane 3 
level 4 (expected e=0 b=0 l=0, got e=0 b=7 l=1)
[  118.257800] i915 :00:02.0: [drm] *ERROR* mismatch in WM pipe A plane 3 
level 5 (expected e=0 b=0 l=0, got e=0 b=7 l=1)
[  118.257807] i915 :00:02.0: [drm] *ERROR* mismatch in WM pipe A plane 3 
level 6 (expected e=0 b=0 l=0, got e=0 b=7 l=1)
[  118.257815] i915 :00:02.0: [drm] *ERROR* mismatch in trans WM pipe A 
plane 3 (expected e=0 b=0 l=0, got e=0 b=7 l=1)
[  118.257823] i915 :00:02.0: [drm] *ERROR* mismatch in SAGV trans WM pipe 
A plane 3 (expected e=0 b=0 l=0, got e=0 b=7 l=1)
[  118.257920] i915 :00:02.0: [drm] *ERROR* mismatch in WM pipe A plane 4 
level 0 (expected e=0 b=0 l=0, got e=0 b=7 l=1)
[  118.257929] i915 :00:02.0: [drm] *ERROR* mismatch in WM pipe A plane 4 
level 1 (expected e=0 b=0 l=0, got e=0 b=7 l=1)
[  118.257939] i915 :00:02.0: [drm] *ERROR* mismatch in WM pipe A plane 4 
level 2 (expected e=0 b=0 l=0, got e=0 b=7 l=1)
[  118.257949] i915 :00:02.0: [drm] *ERROR* mismatch in WM pipe A plane 4 
level 3 (expected e=0 b=0 l=0, got e=0 b=7 l=1)
[  118.257956] i915 :00:02.0: [drm] *ERROR* mismatch in WM pipe A plane 4 
level 4 (expected e=0 b=0 l=0, got e=0 b=7 l=1)
[  118.257965] i915 :00:02.0: [drm] *ERROR* mismatch in WM pipe A plane 4 
level 5 (expected e=0 b=0 l=0, got e=0 b=7 l=1)
[  118.257975] i915 :00:02.0: [drm] *ERROR* mismatch in WM pipe A plane 4 
level 6 (expected e=0 b=0 l=0, got e=0 b=7 l=1)
[  118.257984] i915 

Re: [Intel-gfx] [PATCH v2] drm/vblank: Do not store a new vblank timestamp in drm_vblank_restore()

2021-02-18 Thread Ville Syrjälä
On Thu, Feb 18, 2021 at 06:03:05PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä 
> 
> drm_vblank_restore() exists because certain power saving states
> can clobber the hardware frame counter. The way it does this is
> by guesstimating how many frames were missed purely based on
> the difference between the last stored timestamp vs. a newly
> sampled timestamp.
> 
> If we should call this function before a full frame has
> elapsed since we sampled the last timestamp we would end up
> with a possibly slightly different timestamp value for the
> same frame. Currently we will happily overwrite the already
> stored timestamp for the frame with the new value. This
> could cause userspace to observe two different timestamps
> for the same frame (and the timestamp could even go
> backwards depending on how much error we introduce when
> correcting the timestamp based on the scanout position).
> 
> To avoid that let's not update the stored timestamp at all,
> and instead we just fix up the last recorded hw vblank counter
> value such that the already stored timestamp/seq number will
> match. Thus the next time a vblank irq happens it will calculate
> the correct diff between the current and stored hw vblank counter
> values.
> 
> Sidenote: Another possible idea that came to mind would be to
> do this correction only if the power really was removed since
> the last time we sampled the hw frame counter. But to do that
> we would need a robust way to detect when it has occurred. Some
> possibilities could involve some kind of hardare power well
> transition counter, or potentially we could store a magic value
> in a scratch register that lives in the same power well. But
> I'm not sure either of those exist, so would need an actual
> investigation to find out. All of that is very hardware specific
> of course, so would have to be done in the driver code.

Forgot to mention that I wasn't able to test this with PSR
since HSW+PSR1 is bork, but I did test it a bit w/o PSR
by artificially adding arbitrary offsets to the reported
hw frame counter value. The behaviour seemed sane enough
at least.

> 
> Cc: Dhinakaran Pandiyan 
> Cc: Rodrigo Vivi 
> Cc: Daniel Vetter 
> Signed-off-by: Ville Syrjälä 
> ---
>  drivers/gpu/drm/drm_vblank.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> index 2bd989688eae..3417e1ac7918 100644
> --- a/drivers/gpu/drm/drm_vblank.c
> +++ b/drivers/gpu/drm/drm_vblank.c
> @@ -1478,6 +1478,7 @@ static void drm_vblank_restore(struct drm_device *dev, 
> unsigned int pipe)
>   u64 diff_ns;
>   u32 cur_vblank, diff = 1;
>   int count = DRM_TIMESTAMP_MAXRETRIES;
> + u32 max_vblank_count = drm_max_vblank_count(dev, pipe);
>  
>   if (drm_WARN_ON(dev, pipe >= dev->num_crtcs))
>   return;
> @@ -1504,7 +1505,7 @@ static void drm_vblank_restore(struct drm_device *dev, 
> unsigned int pipe)
>   drm_dbg_vbl(dev,
>   "missed %d vblanks in %lld ns, frame duration=%d ns, 
> hw_diff=%d\n",
>   diff, diff_ns, framedur_ns, cur_vblank - vblank->last);
> - store_vblank(dev, pipe, diff, t_vblank, cur_vblank);
> + vblank->last = (cur_vblank - diff) & max_vblank_count;
>  }
>  
>  /**
> -- 
> 2.26.2

-- 
Ville Syrjälä
Intel
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v2] drm/vblank: Do not store a new vblank timestamp in drm_vblank_restore()

2021-02-18 Thread Ville Syrjala
From: Ville Syrjälä 

drm_vblank_restore() exists because certain power saving states
can clobber the hardware frame counter. The way it does this is
by guesstimating how many frames were missed purely based on
the difference between the last stored timestamp vs. a newly
sampled timestamp.

If we should call this function before a full frame has
elapsed since we sampled the last timestamp we would end up
with a possibly slightly different timestamp value for the
same frame. Currently we will happily overwrite the already
stored timestamp for the frame with the new value. This
could cause userspace to observe two different timestamps
for the same frame (and the timestamp could even go
backwards depending on how much error we introduce when
correcting the timestamp based on the scanout position).

To avoid that let's not update the stored timestamp at all,
and instead we just fix up the last recorded hw vblank counter
value such that the already stored timestamp/seq number will
match. Thus the next time a vblank irq happens it will calculate
the correct diff between the current and stored hw vblank counter
values.

Sidenote: Another possible idea that came to mind would be to
do this correction only if the power really was removed since
the last time we sampled the hw frame counter. But to do that
we would need a robust way to detect when it has occurred. Some
possibilities could involve some kind of hardare power well
transition counter, or potentially we could store a magic value
in a scratch register that lives in the same power well. But
I'm not sure either of those exist, so would need an actual
investigation to find out. All of that is very hardware specific
of course, so would have to be done in the driver code.

Cc: Dhinakaran Pandiyan 
Cc: Rodrigo Vivi 
Cc: Daniel Vetter 
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/drm_vblank.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
index 2bd989688eae..3417e1ac7918 100644
--- a/drivers/gpu/drm/drm_vblank.c
+++ b/drivers/gpu/drm/drm_vblank.c
@@ -1478,6 +1478,7 @@ static void drm_vblank_restore(struct drm_device *dev, 
unsigned int pipe)
u64 diff_ns;
u32 cur_vblank, diff = 1;
int count = DRM_TIMESTAMP_MAXRETRIES;
+   u32 max_vblank_count = drm_max_vblank_count(dev, pipe);
 
if (drm_WARN_ON(dev, pipe >= dev->num_crtcs))
return;
@@ -1504,7 +1505,7 @@ static void drm_vblank_restore(struct drm_device *dev, 
unsigned int pipe)
drm_dbg_vbl(dev,
"missed %d vblanks in %lld ns, frame duration=%d ns, 
hw_diff=%d\n",
diff, diff_ns, framedur_ns, cur_vblank - vblank->last);
-   store_vblank(dev, pipe, diff, t_vblank, cur_vblank);
+   vblank->last = (cur_vblank - diff) & max_vblank_count;
 }
 
 /**
-- 
2.26.2

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] Issue with cec_register_adapter calling request_module() from an async context when called from intel_dp_detect

2021-02-18 Thread Hans de Goede
Hi,

On 2/17/21 5:29 PM, Hans Verkuil wrote:
> On 17/02/2021 16:11, Sean Young wrote:
>> Hi,
>>
>> On Wed, Feb 17, 2021 at 04:04:11PM +0100, Hans de Goede wrote:
>>> On 2/17/21 3:32 PM, Sean Young wrote:
 On Wed, Feb 17, 2021 at 01:41:46PM +0100, Hans Verkuil wrote:
> Hi Hans,
>
> On 17/02/2021 13:24, Hans de Goede wrote:
>> 
>>
>> Hi Hans,
>>
>> Fedora has a (opt-in) system to automatically collect backtraces from 
>> software
>> crashing on users systems.
>>
>> This includes collecting kernel backtraces (including once triggered by
>> WARN macros) while looking a the top 10 of the most reported backtrace 
>> during the
>> last 2 weeks report from ABRT: 
>> https://retrace.fedoraproject.org/faf/problems/
>>
>> I noticed the following backtrace:
>> https://retrace.fedoraproject.org/faf/problems/8150/
>> which has been reported 17 times by Fedora users who have opted-in 
>> during the
>> last 14 days.
>>
>> The issue here is that cec_register_adapter ends up calling 
>> request_module()
>> from an async context, triggering this warn in kernel/kmod.c 
>> __request_module():
>>
>> /*
>>  * We don't allow synchronous module loading from async.  Module
>>  * init may invoke async_synchronize_full() which will end up
>>  * waiting for this task which already is waiting for the module
>>  * loading to complete, leading to a deadlock.
>>  */
>> WARN_ON_ONCE(wait && current_is_async());
>>
>> The call-path leading to this goes like this:
>>
>>  ? kvasprintf+0x6d/0xa0
>>  ? kobject_set_name_vargs+0x6f/0x90
>>  rc_map_get+0x30/0x60
>
> It's not CEC, it is rc_map_get that calls request_module() for rc-cec.ko.
>
> I've added Sean Young to the CC list.
>
> Sean, is it possible to treat rc-cec as a built-in if MEDIA_CEC_RC is set?
>
> I think this issue is very specific to CEC. I would not expect to see this
> with any other rc keymap.

 So CEC creates an RC device with a keymap (cec keymap, of course) and then
 the keymap needs to be loaded. We certainly don't want all keymaps as
 builtins, that would be a waste.

 The cec keymap is scanned once to build a map from cec codes to linux
 keycodes; making it builtin is not ideal, and makes the build system a
 bit messy.

 I don't think we can load the keymap later, user space may start remapping
 the keymap from udev.

 Possibly we could create the cec or rc device later but this could be a bit
 messy.

 Could CEC specify:

 #if IS_ENABLED(CONFIG_MEDIA_CEC_RC)
 MODULE_SOFTDEP("rc-cec")
 #endif
>>>
>>> That would need to be:
>>>
>>> MODULE_SOFTDEP("pre: rc-cec")
>>>
>>> I see that the drm_kms_helper and i915 drivers both depend on the cec 
>>> module already,
>>> so yes if that module will request for rc-cec to be loaded before it is 
>>> loaded
>>> (and thus before i915 is loaded) then that should work around this.
>>>
>>> Assuming the user is using a module-loader which honors the softdep...
>>>
>>> Also this assumes that rc_map_get is smart enough to not call 
>>> request_module()
>>> if the module is already loaded, is that the case ?
>>
>> Yes, see rc_map_get().
> 
> I tried this. It works if CONFIG_RC_CORE is set to m, but setting it to
> y resulted in the same problem. It looks like MODULE_SOFTDEP only works if 
> rc_main
> is a module as well.

Yeah that is a known limit of module softdeps, they only work inside modules ...

Still, assuming there is no easy other fix, we could still use this somehow.

I do see that at least Fedora actually has CONFIG_RC_CORE=y for some reason.

I guess we could maybe add the softdep to the CONFIG_RC_MAP module or
maybe to the module which contains the code enabled by CONFIG_DRM_DP_CEC ?

At least Fedora has all drm stuff as modules and also has CONFIG_RC_MAP=m,

I know this is not a real fix but a workaround to get rid of 170,000
backtraces / 14 days being reported by (opted-in) systems running the
Fedora generic kernel config would be welcome regardless of it being the
"perfect" fix.

Regards,

Hans

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [RFC v4 10/11] drm/dp: Extract i915's eDP backlight code into DRM helpers

2021-02-18 Thread Ville Syrjälä
On Thu, Feb 18, 2021 at 10:35:05AM +0200, Jani Nikula wrote:
> On Fri, 12 Feb 2021, Lyude Paul  wrote:
> > I think it wouldn't be a bad idea to just address this with a followup 
> > series
> > instead and use the old DRM_DEBUG_* macros in the mean time.
> 
> aux->dev is there, could also use dev_dbg et al. in the mean time. They
> handle NULL dev gracefully too if the driver didn't set that.

Last I looked aux->dev was random. Some drivers point it at the
connector vs. some at the the pci/platform device.

-- 
Ville Syrjälä
Intel
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [5.10.y regression] i915 clear-residuals mitigation is causing gfx issues

2021-02-18 Thread Hans de Goede
Hi,

On 2/14/21 5:00 PM, Hans de Goede wrote:
> Hi,
> 
> On 2/11/21 1:26 PM, Hans de Goede wrote:
>> Hi,
>>
>> On 2/11/21 11:49 AM, Chris Wilson wrote:



> Started looking for scratch page overwrites, and found this little gem:
> https://patchwork.freedesktop.org/patch/420436/?series=86947=1
>
> Looks promising wrt the cause of overwriting random addresses -- and
> I hope that is the explanation for the glitches/hangs. I have a hsw gt2
> with gnome shell, piglit is happy, but I suspect it is all due to
> placement and so will only occur at random.

 If you can give me a list of commits to cherry-pick then I can prepare
 a Fedora 5.10.y kernel which those added for the group of Fedora users
 who are hitting this to test.
>>>
>>> e627d5923cae ("drm/i915/gt: One more flush for Baytrail clear residuals")
>>> d30bbd62b1bf ("drm/i915/gt: Flush before changing register state")
>>> 1914911f4aa0 ("drm/i915/gt: Correct surface base address for renderclear")
>>
>> Thanks, the test-kernel is building now. I will let you know when I have
>> heard back from the Fedora users (this will likely take 1-2 days).
> 
> I've heard back from 2 of the reporters who were seeing issues with 5.10.9+
> 
> And I'm happy to report 5.10.15 + the 3 commits mentioned above cherry-picked
> on top fixes the graphics glitches for them.
> 
> So if we can get these 3 commits into 5.10.y and 5.11.y then this should be
> resolved.

Unfortunately I just got a report that 5.10.15 + the 3 extra fixes mentioned
above is still causing issues for one user with a
"thinkpad x230 with i5-3320M (HD Graphics 4000)"

The user descibes the problem as: "still have some minor black squares popping
up while scrolling on Firefox."

I've asked this user to test 5.10.14 + the 3 reverts mentioned earlier in the
thread and that kernel does not have this issue.

Chris, any ideas / more fixes to cherry pick for testing ?

Regards,

Hans

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915/vbt: update DP max link rate table (rev6)

2021-02-18 Thread Patchwork
== Series Details ==

Series: drm/i915/vbt: update DP max link rate table (rev6)
URL   : https://patchwork.freedesktop.org/series/86539/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9783_full -> Patchwork_19700_full


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_19700_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_19700_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Possible new issues
---

  Here are the unknown changes that may have been introduced in 
Patchwork_19700_full:

### IGT changes ###

 Possible regressions 

  * igt@i915_selftest@live@memory_region:
- shard-skl:  NOTRUN -> [INCOMPLETE][1]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19700/shard-skl6/igt@i915_selftest@live@memory_region.html

  
Known issues


  Here are the changes found in Patchwork_19700_full that come from known 
issues:

### IGT changes ###

 Issues hit 

  * igt@gem_create@create-massive:
- shard-kbl:  NOTRUN -> [DMESG-WARN][2] ([i915#3002])
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19700/shard-kbl1/igt@gem_cre...@create-massive.html

  * igt@gem_ctx_persistence@engines-hang:
- shard-snb:  NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#1099])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19700/shard-snb6/igt@gem_ctx_persiste...@engines-hang.html

  * igt@gem_eio@unwedge-stress:
- shard-iclb: [PASS][4] -> [TIMEOUT][5] ([i915#1037] / [i915#2481])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9783/shard-iclb7/igt@gem_...@unwedge-stress.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19700/shard-iclb5/igt@gem_...@unwedge-stress.html

  * igt@gem_exec_balancer@hang:
- shard-iclb: [PASS][6] -> [INCOMPLETE][7] ([i915#1895] / 
[i915#2295] / [i915#3031])
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9783/shard-iclb8/igt@gem_exec_balan...@hang.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19700/shard-iclb1/igt@gem_exec_balan...@hang.html

  * igt@gem_exec_fair@basic-deadline:
- shard-kbl:  [PASS][8] -> [FAIL][9] ([i915#2846])
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9783/shard-kbl4/igt@gem_exec_f...@basic-deadline.html
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19700/shard-kbl6/igt@gem_exec_f...@basic-deadline.html
- shard-glk:  NOTRUN -> [FAIL][10] ([i915#2846])
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19700/shard-glk6/igt@gem_exec_f...@basic-deadline.html

  * igt@gem_exec_fair@basic-none-share@rcs0:
- shard-tglb: [PASS][11] -> [FAIL][12] ([i915#2842])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9783/shard-tglb1/igt@gem_exec_fair@basic-none-sh...@rcs0.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19700/shard-tglb7/igt@gem_exec_fair@basic-none-sh...@rcs0.html
- shard-glk:  [PASS][13] -> [FAIL][14] ([i915#2842])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9783/shard-glk5/igt@gem_exec_fair@basic-none-sh...@rcs0.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19700/shard-glk8/igt@gem_exec_fair@basic-none-sh...@rcs0.html

  * igt@gem_exec_fair@basic-none@vcs0:
- shard-kbl:  [PASS][15] -> [FAIL][16] ([i915#2842]) +4 similar 
issues
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9783/shard-kbl1/igt@gem_exec_fair@basic-n...@vcs0.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19700/shard-kbl2/igt@gem_exec_fair@basic-n...@vcs0.html

  * igt@gem_exec_fair@basic-none@vcs1:
- shard-iclb: NOTRUN -> [FAIL][17] ([i915#2842])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19700/shard-iclb4/igt@gem_exec_fair@basic-n...@vcs1.html

  * igt@gem_exec_reloc@basic-parallel:
- shard-kbl:  NOTRUN -> [TIMEOUT][18] ([i915#1729])
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19700/shard-kbl7/igt@gem_exec_re...@basic-parallel.html
- shard-apl:  NOTRUN -> [TIMEOUT][19] ([i915#1729])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19700/shard-apl3/igt@gem_exec_re...@basic-parallel.html

  * igt@gem_exec_reloc@basic-wide-active@bcs0:
- shard-apl:  NOTRUN -> [FAIL][20] ([i915#2389]) +3 similar issues
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19700/shard-apl1/igt@gem_exec_reloc@basic-wide-act...@bcs0.html

  * igt@gem_exec_reloc@basic-wide-active@vcs1:
- shard-iclb: NOTRUN -> [FAIL][21] ([i915#2389])
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19700/shard-iclb1/igt@gem_exec_reloc@basic-wide-act...@vcs1.html

  * 

Re: [Intel-gfx] [PATCH] drm/i915: Nuke INTEL_OUTPUT_FORMAT_INVALID

2021-02-18 Thread Souza, Jose
On Thu, 2021-02-18 at 00:10 +0200, Ville Syrjälä wrote:
> On Wed, Feb 17, 2021 at 04:37:20PM +, Souza, Jose wrote:
> > On Fri, 2021-02-05 at 22:23 +0200, Ville Syrjala wrote:
> > > From: Ville Syrjälä 
> > > 
> > > We tend to use output_format!=RGB as a shorthand for YCbCr, but
> > > this fails if we have a disabled crtc where output_format==INVALID.
> > > We're now getting some fail from intel_color_check() when we have:
> > >  hw.enable==false
> > >  hw.ctm!=NULL
> > >  output_format==INVALID
> > > 
> > > Let's avoid that by throwing INTEL_OUTPUT_FORMAT_INVALID to the
> > > dumpster, and thus everything defaults to RGB when the crtc
> > > is disabled.
> > > 
> > > This does beg the deeper question of how much of the state
> > > should we in fact be validating when hw/uapi.enable==false.
> > > And should we even be doing the uapi->hw copy when
> > > uapi.enable==false? So far I've not been able to come up with
> > > satisfactory answers for myself, so I'm putting it off for the
> > > moment.
> > > 
> > > Cc: Lee Shawn C 
> > > Fixes: 0aa5c3835c8a ("drm/i915: support two CSC module on gen11 and 
> > > later")
> > > Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/2964
> > > Signed-off-by: Ville Syrjälä 
> > > ---
> > >  drivers/gpu/drm/i915/display/intel_crtc.c  | 1 -
> > >  drivers/gpu/drm/i915/display/intel_display.c   | 3 +--
> > >  drivers/gpu/drm/i915/display/intel_display_types.h | 1 -
> > >  3 files changed, 1 insertion(+), 4 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c 
> > > b/drivers/gpu/drm/i915/display/intel_crtc.c
> > > index 57b0a3ebe908..8e77ca7ddf11 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_crtc.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_crtc.c
> > > @@ -109,7 +109,6 @@ void intel_crtc_state_reset(struct intel_crtc_state 
> > > *crtc_state,
> 
> void intel_crtc_state_reset(struct intel_crtc_state *crtc_state,
> struct intel_crtc *crtc)
> {
> memset(crtc_state, 0, sizeof(*crtc_state));
> ...
> 
> > >   crtc_state->cpu_transcoder = INVALID_TRANSCODER;
> > >   crtc_state->master_transcoder = INVALID_TRANSCODER;
> > >   crtc_state->hsw_workaround_pipe = INVALID_PIPE;
> > > - crtc_state->output_format = INTEL_OUTPUT_FORMAT_INVALID;
> > 
> > Missing set output_format to INTEL_OUTPUT_FORMAT_RGB, kmalloc() don't set 
> > memory allocated to zero and INTEL_OUTPUT_FORMAT_INVALID was the index 0 and
> > we were setting it during intel_crtc_state_reset() so we should now set it 
> > to INTEL_OUTPUT_FORMAT_RGB.
> > https://www.kernel.org/doc/htmldocs/kernel-api/mm.html
> 
> ie. we zero out the whole thing. The reason why the explicit assignment
> was here I suppose is that I had assumed INTEL_OUTPUT_FORMAT_INVALID==-1,
> which is the case for INVALID_TRANSCODER/PIPE/etc.

Ah okay, missed the memset().

Reviewed-by: José Roberto de Souza 

> 
> > 
> > With that fixed:
> > 
> > Reviewed-by: José Roberto de Souza 
> > 
> > >   crtc_state->scaler_state.scaler_id = -1;
> > >   crtc_state->mst_master_transcoder = INVALID_TRANSCODER;
> > >  }
> > > diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
> > > b/drivers/gpu/drm/i915/display/intel_display.c
> > > index 92c14f3f0abf..46d0093187f8 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > > @@ -10220,7 +10220,6 @@ static void snprintf_output_types(char *buf, 
> > > size_t len,
> > >  }
> > >  
> > > 
> > > 
> > > 
> > >  static const char * const output_format_str[] = {
> > > - [INTEL_OUTPUT_FORMAT_INVALID] = "Invalid",
> > >   [INTEL_OUTPUT_FORMAT_RGB] = "RGB",
> > >   [INTEL_OUTPUT_FORMAT_YCBCR420] = "YCBCR4:2:0",
> > >   [INTEL_OUTPUT_FORMAT_YCBCR444] = "YCBCR4:4:4",
> > > @@ -10229,7 +10228,7 @@ static const char * const output_format_str[] = {
> > >  static const char *output_formats(enum intel_output_format format)
> > >  {
> > >   if (format >= ARRAY_SIZE(output_format_str))
> > > - format = INTEL_OUTPUT_FORMAT_INVALID;
> > > + return "invalid";
> > >   return output_format_str[format];
> > >  }
> > >  
> > > 
> > > 
> > > 
> > > diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h 
> > > b/drivers/gpu/drm/i915/display/intel_display_types.h
> > > index 307ff4b771f4..b3ac39fea6f0 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> > > +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> > > @@ -830,7 +830,6 @@ struct intel_crtc_wm_state {
> > >  };
> > >  
> > > 
> > > 
> > > 
> > >  enum intel_output_format {
> > > - INTEL_OUTPUT_FORMAT_INVALID,
> > >   INTEL_OUTPUT_FORMAT_RGB,
> > >   INTEL_OUTPUT_FORMAT_YCBCR420,
> > >   INTEL_OUTPUT_FORMAT_YCBCR444,
> > 
> 

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH v3] drm/i915/vbt: update DP max link rate table

2021-02-18 Thread Lee, Shawn C
On Wed, Feb 17, 2021 at 3:45 p.m., Ville Syrjälä wrote:
>On Wed, Feb 17, 2021 at 11:39:35PM +0800, Lee Shawn C wrote:
>> According to Bspec #20124, max link rate table for DP was updated at 
>> BDB version 230. Max link rate can support upto UHBR.
>> 
>> After migrate to BDB v230, the definition for LBR, HBR2 and HBR3 were 
>> changed. For backward compatibility. If BDB version was from 216 to 
>> 229. Driver have to follow original rule to configure DP max link rate 
>> value from VBT.
>> 
>> v2: split the mapping table to two for old and new BDB definition.
>> v3: return link rate instead of assigning it.
>> 
>> Cc: Ville Syrjala 
>> Cc: Imre Deak 
>> Cc: Jani Nikula 
>> Cc: Cooper Chiou 
>> Cc: William Tseng 
>> Signed-off-by: Lee Shawn C 
>> ---
>>  drivers/gpu/drm/i915/display/intel_bios.c | 78 +++
>>  drivers/gpu/drm/i915/display/intel_vbt_defs.h | 23 --
>>  2 files changed, 80 insertions(+), 21 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/i915/display/intel_bios.c 
>> b/drivers/gpu/drm/i915/display/intel_bios.c
>> index 7902d4c2673e..d8305c351b77 100644
>> --- a/drivers/gpu/drm/i915/display/intel_bios.c
>> +++ b/drivers/gpu/drm/i915/display/intel_bios.c
>> @@ -1759,6 +1759,64 @@ static enum port dvo_port_to_port(struct 
>> drm_i915_private *dev_priv,
>>dvo_port);
>>  }
>>  
>> +static int parse_bdb_230_dp_max_link_rate(const int 
>> +vbt_max_link_rate) {
>> +int link_rate;
>
>That variable is rather pointless...
>
>> +
>> +switch (vbt_max_link_rate) {
>> +case BDB_230_VBT_DP_MAX_LINK_RATE_UHBR20:
>> +link_rate = 200;
>> +break;
>
>... when you can just 'return ' here directly.
>Would reduce the noise a bit as well since the break statements would vanish.
>

Update patch v4 and just return the value as you mentioned. 
Please help to review again.

BTW,  I'm sorry I press "test again" button two times and waste test machine 
resource.

Best regards,
Shawn

>> +case BDB_230_VBT_DP_MAX_LINK_RATE_UHBR13P5:
>> +link_rate = 135;
>> +break;
>> +case BDB_230_VBT_DP_MAX_LINK_RATE_UHBR10:
>> +link_rate = 100;
>> +break;
>> +case BDB_230_VBT_DP_MAX_LINK_RATE_HBR3:
>> +link_rate = 81;
>> +break;
>> +case BDB_230_VBT_DP_MAX_LINK_RATE_HBR2:
>> +link_rate = 54;
>> +break;
>> +case BDB_230_VBT_DP_MAX_LINK_RATE_HBR:
>> +link_rate = 27;
>> +break;
>> +case BDB_230_VBT_DP_MAX_LINK_RATE_LBR:
>> +link_rate = 162000;
>> +break;
>> +case BDB_230_VBT_DP_MAX_LINK_RATE_DEF:
>> +default:
>> +link_rate = 0;
>> +break;
>> +}
>> +
>> +return link_rate;
>> +}
>> +
>> +static int parse_bdb_216_dp_max_link_rate(const int 
>> +vbt_max_link_rate) {
>> +int link_rate;
>
>Same here.
>
>With that changed this is
>Reviewed-by: Ville Syrjälä 
>
>> +
>> +switch (vbt_max_link_rate) {
>> +default:
>> +case BDB_216_VBT_DP_MAX_LINK_RATE_HBR3:
>> +link_rate = 81;
>> +break;
>> +case BDB_216_VBT_DP_MAX_LINK_RATE_HBR2:
>> +link_rate = 54;
>> +break;
>> +case BDB_216_VBT_DP_MAX_LINK_RATE_HBR:
>> +link_rate = 27;
>> +break;
>> +case BDB_216_VBT_DP_MAX_LINK_RATE_LBR:
>> +link_rate = 162000;
>> +break;
>> +}
>> +
>> +return link_rate;
>> +}
>> +
>>  static void parse_ddi_port(struct drm_i915_private *dev_priv,
>> struct display_device_data *devdata,
>> u8 bdb_version)
>> @@ -1884,21 +1942,11 @@ static void parse_ddi_port(struct 
>> drm_i915_private *dev_priv,
>>  
>>  /* DP max link rate for CNL+ */
>>  if (bdb_version >= 216) {
>> -switch (child->dp_max_link_rate) {
>> -default:
>> -case VBT_DP_MAX_LINK_RATE_HBR3:
>> -info->dp_max_link_rate = 81;
>> -break;
>> -case VBT_DP_MAX_LINK_RATE_HBR2:
>> -info->dp_max_link_rate = 54;
>> -break;
>> -case VBT_DP_MAX_LINK_RATE_HBR:
>> -info->dp_max_link_rate = 27;
>> -break;
>> -case VBT_DP_MAX_LINK_RATE_LBR:
>> -info->dp_max_link_rate = 162000;
>> -break;
>> -}
>> +if (bdb_version >= 230)
>> +info->dp_max_link_rate = 
>> parse_bdb_230_dp_max_link_rate(child->dp_max_link_rate);
>> +else
>> +info->dp_max_link_rate = 
>> +parse_bdb_216_dp_max_link_rate(child->dp_max_link_rate);
>> +
>>  drm_dbg_kms(_priv->drm,
>>  "Port %c VBT DP max link rate: %d\n",
>>  port_name(port), info->dp_max_link_rate); diff 
>> --git 
>> 

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/vbt: update DP max link rate table (rev6)

2021-02-18 Thread Patchwork
== Series Details ==

Series: drm/i915/vbt: update DP max link rate table (rev6)
URL   : https://patchwork.freedesktop.org/series/86539/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9783 -> Patchwork_19700


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19700/index.html

Known issues


  Here are the changes found in Patchwork_19700 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@i915_selftest@live@gt_lrc:
- fi-tgl-y:   NOTRUN -> [DMESG-FAIL][1] ([i915#2373])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19700/fi-tgl-y/igt@i915_selftest@live@gt_lrc.html

  * igt@i915_selftest@live@gt_pm:
- fi-tgl-y:   NOTRUN -> [DMESG-FAIL][2] ([i915#1759])
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19700/fi-tgl-y/igt@i915_selftest@live@gt_pm.html

  * igt@kms_chamelium@vga-edid-read:
- fi-tgl-y:   NOTRUN -> [SKIP][3] ([fdo#111827]) +8 similar issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19700/fi-tgl-y/igt@kms_chamel...@vga-edid-read.html

  * igt@kms_force_connector_basic@force-load-detect:
- fi-tgl-y:   NOTRUN -> [SKIP][4] ([fdo#109285])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19700/fi-tgl-y/igt@kms_force_connector_ba...@force-load-detect.html

  * igt@prime_self_import@basic-with_one_bo_two_files:
- fi-tgl-y:   NOTRUN -> [DMESG-WARN][5] ([i915#402]) +1 similar 
issue
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19700/fi-tgl-y/igt@prime_self_import@basic-with_one_bo_two_files.html

  
 Possible fixes 

  * igt@i915_selftest@live@blt:
- fi-snb-2520m:   [DMESG-FAIL][6] -> [PASS][7]
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9783/fi-snb-2520m/igt@i915_selftest@l...@blt.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19700/fi-snb-2520m/igt@i915_selftest@l...@blt.html

  
  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1759]: https://gitlab.freedesktop.org/drm/intel/issues/1759
  [i915#2283]: https://gitlab.freedesktop.org/drm/intel/issues/2283
  [i915#2373]: https://gitlab.freedesktop.org/drm/intel/issues/2373
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#3004]: https://gitlab.freedesktop.org/drm/intel/issues/3004
  [i915#3005]: https://gitlab.freedesktop.org/drm/intel/issues/3005
  [i915#3011]: https://gitlab.freedesktop.org/drm/intel/issues/3011
  [i915#3012]: https://gitlab.freedesktop.org/drm/intel/issues/3012
  [i915#3013]: https://gitlab.freedesktop.org/drm/intel/issues/3013
  [i915#3014]: https://gitlab.freedesktop.org/drm/intel/issues/3014
  [i915#3015]: https://gitlab.freedesktop.org/drm/intel/issues/3015
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533


Participating hosts (42 -> 40)
--

  Additional (2): fi-tgl-y fi-hsw-gt1 
  Missing(4): fi-ilk-m540 fi-bsw-cyan fi-bdw-samus fi-hsw-4200u 


Build changes
-

  * Linux: CI_DRM_9783 -> Patchwork_19700

  CI-20190529: 20190529
  CI_DRM_9783: 498a1b2bfd0ecf4401c2f653a82e9ae2c80c9145 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_6005: b69a3c463f0aec46b19c14ac24351d292cb11c08 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_19700: fa8c00f1e8a25472372da9c784892698352367ee @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

fa8c00f1e8a2 drm/i915/vbt: update DP max link rate table

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19700/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] Issue with cec_register_adapter calling request_module() from an async context when called from intel_dp_detect

2021-02-18 Thread Sean Young
Hi,

On Wed, Feb 17, 2021 at 05:29:46PM +0100, Hans Verkuil wrote:
> On 17/02/2021 16:11, Sean Young wrote:
> > On Wed, Feb 17, 2021 at 04:04:11PM +0100, Hans de Goede wrote:
> >> On 2/17/21 3:32 PM, Sean Young wrote:
> >>> On Wed, Feb 17, 2021 at 01:41:46PM +0100, Hans Verkuil wrote:
>  Hi Hans,
> 
>  On 17/02/2021 13:24, Hans de Goede wrote:
> > 
> >
> > Hi Hans,
> >
> > Fedora has a (opt-in) system to automatically collect backtraces from 
> > software
> > crashing on users systems.
> >
> > This includes collecting kernel backtraces (including once triggered by
> > WARN macros) while looking a the top 10 of the most reported backtrace 
> > during the
> > last 2 weeks report from ABRT: 
> > https://retrace.fedoraproject.org/faf/problems/
> >
> > I noticed the following backtrace:
> > https://retrace.fedoraproject.org/faf/problems/8150/
> > which has been reported 17 times by Fedora users who have opted-in 
> > during the
> > last 14 days.
> >
> > The issue here is that cec_register_adapter ends up calling 
> > request_module()
> > from an async context, triggering this warn in kernel/kmod.c 
> > __request_module():
> >
> > /*
> >  * We don't allow synchronous module loading from async.  Module
> >  * init may invoke async_synchronize_full() which will end up
> >  * waiting for this task which already is waiting for the module
> >  * loading to complete, leading to a deadlock.
> >  */
> > WARN_ON_ONCE(wait && current_is_async());
> >
> > The call-path leading to this goes like this:
> >
> >  ? kvasprintf+0x6d/0xa0
> >  ? kobject_set_name_vargs+0x6f/0x90
> >  rc_map_get+0x30/0x60
> 
>  It's not CEC, it is rc_map_get that calls request_module() for rc-cec.ko.
> 
>  I've added Sean Young to the CC list.
> 
>  Sean, is it possible to treat rc-cec as a built-in if MEDIA_CEC_RC is 
>  set?
> 
>  I think this issue is very specific to CEC. I would not expect to see 
>  this
>  with any other rc keymap.
> >>>
> >>> So CEC creates an RC device with a keymap (cec keymap, of course) and then
> >>> the keymap needs to be loaded. We certainly don't want all keymaps as
> >>> builtins, that would be a waste.
> >>>
> >>> The cec keymap is scanned once to build a map from cec codes to linux
> >>> keycodes; making it builtin is not ideal, and makes the build system a
> >>> bit messy.
> >>>
> >>> I don't think we can load the keymap later, user space may start remapping
> >>> the keymap from udev.
> >>>
> >>> Possibly we could create the cec or rc device later but this could be a 
> >>> bit
> >>> messy.
> >>>
> >>> Could CEC specify:
> >>>
> >>> #if IS_ENABLED(CONFIG_MEDIA_CEC_RC)
> >>> MODULE_SOFTDEP("rc-cec")
> >>> #endif
> >>
> >> That would need to be:
> >>
> >> MODULE_SOFTDEP("pre: rc-cec")
> >>
> >> I see that the drm_kms_helper and i915 drivers both depend on the cec 
> >> module already,
> >> so yes if that module will request for rc-cec to be loaded before it is 
> >> loaded
> >> (and thus before i915 is loaded) then that should work around this.
> >>
> >> Assuming the user is using a module-loader which honors the softdep...
> >>
> >> Also this assumes that rc_map_get is smart enough to not call 
> >> request_module()
> >> if the module is already loaded, is that the case ?
> > 
> > Yes, see rc_map_get().
> 
> I tried this. It works if CONFIG_RC_CORE is set to m, but setting it to
> y resulted in the same problem. It looks like MODULE_SOFTDEP only works if 
> rc_main
> is a module as well.

Hmm, I'm not quite sure what is happening here. How can I reproduce this
issue locally?


Sean
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] Issue with cec_register_adapter calling request_module() from an async context when called from intel_dp_detect

2021-02-18 Thread Sean Young
Hi,

On Wed, Feb 17, 2021 at 04:04:11PM +0100, Hans de Goede wrote:
> On 2/17/21 3:32 PM, Sean Young wrote:
> > On Wed, Feb 17, 2021 at 01:41:46PM +0100, Hans Verkuil wrote:
> >> Hi Hans,
> >>
> >> On 17/02/2021 13:24, Hans de Goede wrote:
> >>> 
> >>>
> >>> Hi Hans,
> >>>
> >>> Fedora has a (opt-in) system to automatically collect backtraces from 
> >>> software
> >>> crashing on users systems.
> >>>
> >>> This includes collecting kernel backtraces (including once triggered by
> >>> WARN macros) while looking a the top 10 of the most reported backtrace 
> >>> during the
> >>> last 2 weeks report from ABRT: 
> >>> https://retrace.fedoraproject.org/faf/problems/
> >>>
> >>> I noticed the following backtrace:
> >>> https://retrace.fedoraproject.org/faf/problems/8150/
> >>> which has been reported 17 times by Fedora users who have opted-in 
> >>> during the
> >>> last 14 days.
> >>>
> >>> The issue here is that cec_register_adapter ends up calling 
> >>> request_module()
> >>> from an async context, triggering this warn in kernel/kmod.c 
> >>> __request_module():
> >>>
> >>> /*
> >>>  * We don't allow synchronous module loading from async.  Module
> >>>  * init may invoke async_synchronize_full() which will end up
> >>>  * waiting for this task which already is waiting for the module
> >>>  * loading to complete, leading to a deadlock.
> >>>  */
> >>> WARN_ON_ONCE(wait && current_is_async());
> >>>
> >>> The call-path leading to this goes like this:
> >>>
> >>>  ? kvasprintf+0x6d/0xa0
> >>>  ? kobject_set_name_vargs+0x6f/0x90
> >>>  rc_map_get+0x30/0x60
> >>
> >> It's not CEC, it is rc_map_get that calls request_module() for rc-cec.ko.
> >>
> >> I've added Sean Young to the CC list.
> >>
> >> Sean, is it possible to treat rc-cec as a built-in if MEDIA_CEC_RC is set?
> >>
> >> I think this issue is very specific to CEC. I would not expect to see this
> >> with any other rc keymap.
> > 
> > So CEC creates an RC device with a keymap (cec keymap, of course) and then
> > the keymap needs to be loaded. We certainly don't want all keymaps as
> > builtins, that would be a waste.
> > 
> > The cec keymap is scanned once to build a map from cec codes to linux
> > keycodes; making it builtin is not ideal, and makes the build system a
> > bit messy.
> > 
> > I don't think we can load the keymap later, user space may start remapping
> > the keymap from udev.
> > 
> > Possibly we could create the cec or rc device later but this could be a bit
> > messy.
> > 
> > Could CEC specify:
> > 
> > #if IS_ENABLED(CONFIG_MEDIA_CEC_RC)
> > MODULE_SOFTDEP("rc-cec")
> > #endif
> 
> That would need to be:
> 
> MODULE_SOFTDEP("pre: rc-cec")
> 
> I see that the drm_kms_helper and i915 drivers both depend on the cec module 
> already,
> so yes if that module will request for rc-cec to be loaded before it is loaded
> (and thus before i915 is loaded) then that should work around this.
> 
> Assuming the user is using a module-loader which honors the softdep...
> 
> Also this assumes that rc_map_get is smart enough to not call request_module()
> if the module is already loaded, is that the case ?

Yes, see rc_map_get().

Thanks,

Sean
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] Issue with cec_register_adapter calling request_module() from an async context when called from intel_dp_detect

2021-02-18 Thread Sean Young
On Wed, Feb 17, 2021 at 01:41:46PM +0100, Hans Verkuil wrote:
> Hi Hans,
> 
> On 17/02/2021 13:24, Hans de Goede wrote:
> > 
> > 
> > Hi Hans,
> > 
> > Fedora has a (opt-in) system to automatically collect backtraces from 
> > software
> > crashing on users systems.
> > 
> > This includes collecting kernel backtraces (including once triggered by
> > WARN macros) while looking a the top 10 of the most reported backtrace 
> > during the
> > last 2 weeks report from ABRT: 
> > https://retrace.fedoraproject.org/faf/problems/
> > 
> > I noticed the following backtrace:
> > https://retrace.fedoraproject.org/faf/problems/8150/
> > which has been reported 17 times by Fedora users who have opted-in 
> > during the
> > last 14 days.
> > 
> > The issue here is that cec_register_adapter ends up calling request_module()
> > from an async context, triggering this warn in kernel/kmod.c 
> > __request_module():
> > 
> > /*
> >  * We don't allow synchronous module loading from async.  Module
> >  * init may invoke async_synchronize_full() which will end up
> >  * waiting for this task which already is waiting for the module
> >  * loading to complete, leading to a deadlock.
> >  */
> > WARN_ON_ONCE(wait && current_is_async());
> > 
> > The call-path leading to this goes like this:
> > 
> >  ? kvasprintf+0x6d/0xa0
> >  ? kobject_set_name_vargs+0x6f/0x90
> >  rc_map_get+0x30/0x60
> 
> It's not CEC, it is rc_map_get that calls request_module() for rc-cec.ko.
> 
> I've added Sean Young to the CC list.
> 
> Sean, is it possible to treat rc-cec as a built-in if MEDIA_CEC_RC is set?
> 
> I think this issue is very specific to CEC. I would not expect to see this
> with any other rc keymap.

So CEC creates an RC device with a keymap (cec keymap, of course) and then
the keymap needs to be loaded. We certainly don't want all keymaps as
builtins, that would be a waste.

The cec keymap is scanned once to build a map from cec codes to linux
keycodes; making it builtin is not ideal, and makes the build system a
bit messy.

I don't think we can load the keymap later, user space may start remapping
the keymap from udev.

Possibly we could create the cec or rc device later but this could be a bit
messy.

Could CEC specify:

#if IS_ENABLED(CONFIG_MEDIA_CEC_RC)
MODULE_SOFTDEP("rc-cec")
#endif

?

Sean


> 
> Regards,
> 
>   Hans
> 
> >  rc_register_device+0x108/0x510
> >  cec_register_adapter+0x5c/0x280 [cec]
> >  drm_dp_cec_set_edid+0x11e/0x178 [drm_kms_helper]
> >  intel_dp_set_edid+0x8d/0xc0 [i915]
> >  intel_dp_detect+0x188/0x5c0 [i915]
> >  drm_helper_probe_single_connector_modes+0xc2/0x6d0 [drm_kms_helper]
> >  ? krealloc+0x7b/0xb0
> >  drm_client_modeset_probe+0x25b/0x1320 [drm]
> >  ? kfree+0x1ea/0x200
> >  ? sched_clock+0x5/0x10
> >  ? sched_clock_cpu+0xc/0xa0
> >  __drm_fb_helper_initial_config_and_unlock+0x37/0x470 [drm_kms_helper]
> >  ? _cond_resched+0x16/0x40
> >  intel_fbdev_initial_config+0x14/0x30 [i915]
> >  async_run_entry_fn+0x39/0x160
> > 
> > So 2 questions:
> > 
> > 1. Can we get this fixed please ?
> >Related to this, what happens if we make this an async modprobe
> >(when running from async context) is that a problem, or is it fine
> >if the rc_map module gets loaded later ?
> > 
> > 2. If the answer to 1. is "tricky", "maybe" or some such then can we
> > look into a workaround here ? E.g. do we know in advance which module
> > is going to be requested (1), or does that depend on the EDID data ?
> > 
> > Regards,
> > 
> > Hans
> > 
> > 
> > 1) And can we thus do tricks with a softdep on it ?
> > 
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/vbt: update DP max link rate table (rev6)

2021-02-18 Thread Patchwork
== Series Details ==

Series: drm/i915/vbt: update DP max link rate table (rev6)
URL   : https://patchwork.freedesktop.org/series/86539/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
fa8c00f1e8a2 drm/i915/vbt: update DP max link rate table
-:94: WARNING:LONG_LINE: line length of 105 exceeds 100 columns
#94: FILE: drivers/gpu/drm/i915/display/intel_bios.c:1926:
+   info->dp_max_link_rate = 
parse_bdb_230_dp_max_link_rate(child->dp_max_link_rate);

-:96: WARNING:LONG_LINE: line length of 105 exceeds 100 columns
#96: FILE: drivers/gpu/drm/i915/display/intel_bios.c:1928:
+   info->dp_max_link_rate = 
parse_bdb_216_dp_max_link_rate(child->dp_max_link_rate);

total: 0 errors, 2 warnings, 0 checks, 105 lines checked


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [RFC PATCH 3/9] drm/i915/spi: add driver for on-die spi device

2021-02-18 Thread Winkler, Tomas
> 
> On Wed, Feb 17, 2021 at 08:58:12PM +, Winkler, Tomas wrote:
> >>
> >> On Tue, 16 Feb 2021, Tomas Winkler  wrote:
> >> > Add the platform driver for i915 on-die spi device, exposed via mfd
> >> > framework.
> >> >
> >> > Cc: Rodrigo Vivi 
> >> > Cc: Lucas De Marchi 
> >> > Signed-off-by: Tomas Winkler 
> >> > ---
> >> >  drivers/gpu/drm/i915/Kconfig |   2 +
> >> >  drivers/gpu/drm/i915/Makefile|   3 +
> >> >  drivers/gpu/drm/i915/spi/intel_spi_drv.c | 116
> >> > +++
> >> >  3 files changed, 121 insertions(+)  create mode 100644
> >> > drivers/gpu/drm/i915/spi/intel_spi_drv.c
> >> >
> >> > diff --git a/drivers/gpu/drm/i915/Kconfig
> >> > b/drivers/gpu/drm/i915/Kconfig index abcaa8da45ac..13c870e5878e
> >> > 100644
> >> > --- a/drivers/gpu/drm/i915/Kconfig
> >> > +++ b/drivers/gpu/drm/i915/Kconfig
> >> > @@ -27,6 +27,8 @@ config DRM_I915
> >> >  select CEC_CORE if CEC_NOTIFIER
> >> >  select VMAP_PFN
> >> >  select MFD_CORE
> >> > +select MTD
> >>
> >> Selecting MTD does not seem to be a popular thing to do, which is
> >> usually a clue it's probably the wrong thing to do.
> >Depends, if it is not selected you'll end with wrongly configured system.
> 
> no. I believe the idea is that having a CONFIG_I915_SPI, you could do
> 
>   depends on MTD
> 
> like the other drivers doing similar thing:
> 
>   git grep MTD -- ':(exclude)drivers/mtd' ':(exclude)arch/' '*Kconfig'
MTD is usually used on embedded systems rather than on general distros, 
i915_spi and actually a bit redefines its usage 
so w/o forceful select, it won't be enabled.

> 
> Lucas De Marchi
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [RFC PATCH 3/9] drm/i915/spi: add driver for on-die spi device

2021-02-18 Thread Lucas De Marchi

On Wed, Feb 17, 2021 at 08:58:12PM +, Winkler, Tomas wrote:


On Tue, 16 Feb 2021, Tomas Winkler  wrote:
> Add the platform driver for i915 on-die spi device, exposed via mfd
> framework.
>
> Cc: Rodrigo Vivi 
> Cc: Lucas De Marchi 
> Signed-off-by: Tomas Winkler 
> ---
>  drivers/gpu/drm/i915/Kconfig |   2 +
>  drivers/gpu/drm/i915/Makefile|   3 +
>  drivers/gpu/drm/i915/spi/intel_spi_drv.c | 116
> +++
>  3 files changed, 121 insertions(+)
>  create mode 100644 drivers/gpu/drm/i915/spi/intel_spi_drv.c
>
> diff --git a/drivers/gpu/drm/i915/Kconfig
> b/drivers/gpu/drm/i915/Kconfig index abcaa8da45ac..13c870e5878e 100644
> --- a/drivers/gpu/drm/i915/Kconfig
> +++ b/drivers/gpu/drm/i915/Kconfig
> @@ -27,6 +27,8 @@ config DRM_I915
>select CEC_CORE if CEC_NOTIFIER
>select VMAP_PFN
>select MFD_CORE
> +  select MTD

Selecting MTD does not seem to be a popular thing to do, which is usually a
clue it's probably the wrong thing to do.

Depends, if it is not selected you'll end with wrongly configured system.


no. I believe the idea is that having a CONFIG_I915_SPI, you could do

depends on MTD

like the other drivers doing similar thing:

git grep MTD -- ':(exclude)drivers/mtd' ':(exclude)arch/' '*Kconfig'

Lucas De Marchi
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915/vbt: update DP max link rate table (rev4)

2021-02-18 Thread Patchwork
== Series Details ==

Series: drm/i915/vbt: update DP max link rate table (rev4)
URL   : https://patchwork.freedesktop.org/series/86539/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9783_full -> Patchwork_19699_full


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_19699_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_19699_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Possible new issues
---

  Here are the unknown changes that may have been introduced in 
Patchwork_19699_full:

### IGT changes ###

 Possible regressions 

  * igt@i915_selftest@live@reset:
- shard-skl:  NOTRUN -> [INCOMPLETE][1]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19699/shard-skl5/igt@i915_selftest@l...@reset.html

  
Known issues


  Here are the changes found in Patchwork_19699_full that come from known 
issues:

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_persistence@engines-hang:
- shard-hsw:  NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#1099])
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19699/shard-hsw7/igt@gem_ctx_persiste...@engines-hang.html

  * igt@gem_ctx_persistence@engines-mixed-process:
- shard-snb:  NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#1099]) +3 
similar issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19699/shard-snb5/igt@gem_ctx_persiste...@engines-mixed-process.html

  * igt@gem_exec_balancer@hang:
- shard-iclb: [PASS][4] -> [INCOMPLETE][5] ([i915#1895] / 
[i915#2295])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9783/shard-iclb8/igt@gem_exec_balan...@hang.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19699/shard-iclb2/igt@gem_exec_balan...@hang.html

  * igt@gem_exec_fair@basic-deadline:
- shard-glk:  NOTRUN -> [FAIL][6] ([i915#2846])
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19699/shard-glk9/igt@gem_exec_f...@basic-deadline.html

  * igt@gem_exec_fair@basic-none-share@rcs0:
- shard-glk:  [PASS][7] -> [FAIL][8] ([i915#2842])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9783/shard-glk5/igt@gem_exec_fair@basic-none-sh...@rcs0.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19699/shard-glk2/igt@gem_exec_fair@basic-none-sh...@rcs0.html

  * igt@gem_exec_fair@basic-none-solo@rcs0:
- shard-kbl:  NOTRUN -> [FAIL][9] ([i915#2842])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19699/shard-kbl2/igt@gem_exec_fair@basic-none-s...@rcs0.html

  * igt@gem_exec_fair@basic-none@vecs0:
- shard-kbl:  [PASS][10] -> [FAIL][11] ([i915#2842]) +1 similar 
issue
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9783/shard-kbl1/igt@gem_exec_fair@basic-n...@vecs0.html
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19699/shard-kbl7/igt@gem_exec_fair@basic-n...@vecs0.html

  * igt@gem_exec_fair@basic-pace@vcs1:
- shard-iclb: NOTRUN -> [FAIL][12] ([i915#2842]) +1 similar issue
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19699/shard-iclb4/igt@gem_exec_fair@basic-p...@vcs1.html

  * igt@gem_exec_reloc@basic-many-active@rcs0:
- shard-snb:  NOTRUN -> [FAIL][13] ([i915#2389]) +2 similar issues
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19699/shard-snb5/igt@gem_exec_reloc@basic-many-act...@rcs0.html

  * igt@gem_exec_reloc@basic-parallel:
- shard-kbl:  NOTRUN -> [TIMEOUT][14] ([i915#1729])
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19699/shard-kbl6/igt@gem_exec_re...@basic-parallel.html
- shard-apl:  NOTRUN -> [TIMEOUT][15] ([i915#1729])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19699/shard-apl8/igt@gem_exec_re...@basic-parallel.html

  * igt@gem_exec_reloc@basic-wide-active@bcs0:
- shard-apl:  NOTRUN -> [FAIL][16] ([i915#2389]) +3 similar issues
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19699/shard-apl1/igt@gem_exec_reloc@basic-wide-act...@bcs0.html

  * igt@gem_exec_schedule@u-fairslice@bcs0:
- shard-tglb: [PASS][17] -> [DMESG-WARN][18] ([i915#2803])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9783/shard-tglb2/igt@gem_exec_schedule@u-fairsl...@bcs0.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19699/shard-tglb8/igt@gem_exec_schedule@u-fairsl...@bcs0.html

  * igt@gem_exec_schedule@u-fairslice@rcs0:
- shard-apl:  NOTRUN -> [DMESG-WARN][19] ([i915#1610])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19699/shard-apl8/igt@gem_exec_schedule@u-fairsl...@rcs0.html
- shard-skl:  [PASS][20] -> [DMESG-WARN][21] ([i915#1610] / 

Re: [Intel-gfx] Issue with cec_register_adapter calling request_module() from an async context when called from intel_dp_detect

2021-02-18 Thread Hans Verkuil
On 18/02/2021 09:52, Sean Young wrote:
> Hi,
> 
> On Wed, Feb 17, 2021 at 05:29:46PM +0100, Hans Verkuil wrote:
>> On 17/02/2021 16:11, Sean Young wrote:
>>> On Wed, Feb 17, 2021 at 04:04:11PM +0100, Hans de Goede wrote:
 On 2/17/21 3:32 PM, Sean Young wrote:
> On Wed, Feb 17, 2021 at 01:41:46PM +0100, Hans Verkuil wrote:
>> Hi Hans,
>>
>> On 17/02/2021 13:24, Hans de Goede wrote:
>>> 
>>>
>>> Hi Hans,
>>>
>>> Fedora has a (opt-in) system to automatically collect backtraces from 
>>> software
>>> crashing on users systems.
>>>
>>> This includes collecting kernel backtraces (including once triggered by
>>> WARN macros) while looking a the top 10 of the most reported backtrace 
>>> during the
>>> last 2 weeks report from ABRT: 
>>> https://retrace.fedoraproject.org/faf/problems/
>>>
>>> I noticed the following backtrace:
>>> https://retrace.fedoraproject.org/faf/problems/8150/
>>> which has been reported 17 times by Fedora users who have opted-in 
>>> during the
>>> last 14 days.
>>>
>>> The issue here is that cec_register_adapter ends up calling 
>>> request_module()
>>> from an async context, triggering this warn in kernel/kmod.c 
>>> __request_module():
>>>
>>> /*
>>>  * We don't allow synchronous module loading from async.  Module
>>>  * init may invoke async_synchronize_full() which will end up
>>>  * waiting for this task which already is waiting for the module
>>>  * loading to complete, leading to a deadlock.
>>>  */
>>> WARN_ON_ONCE(wait && current_is_async());
>>>
>>> The call-path leading to this goes like this:
>>>
>>>  ? kvasprintf+0x6d/0xa0
>>>  ? kobject_set_name_vargs+0x6f/0x90
>>>  rc_map_get+0x30/0x60
>>
>> It's not CEC, it is rc_map_get that calls request_module() for rc-cec.ko.
>>
>> I've added Sean Young to the CC list.
>>
>> Sean, is it possible to treat rc-cec as a built-in if MEDIA_CEC_RC is 
>> set?
>>
>> I think this issue is very specific to CEC. I would not expect to see 
>> this
>> with any other rc keymap.
>
> So CEC creates an RC device with a keymap (cec keymap, of course) and then
> the keymap needs to be loaded. We certainly don't want all keymaps as
> builtins, that would be a waste.
>
> The cec keymap is scanned once to build a map from cec codes to linux
> keycodes; making it builtin is not ideal, and makes the build system a
> bit messy.
>
> I don't think we can load the keymap later, user space may start remapping
> the keymap from udev.
>
> Possibly we could create the cec or rc device later but this could be a 
> bit
> messy.
>
> Could CEC specify:
>
> #if IS_ENABLED(CONFIG_MEDIA_CEC_RC)
> MODULE_SOFTDEP("rc-cec")
> #endif

 That would need to be:

 MODULE_SOFTDEP("pre: rc-cec")

 I see that the drm_kms_helper and i915 drivers both depend on the cec 
 module already,
 so yes if that module will request for rc-cec to be loaded before it is 
 loaded
 (and thus before i915 is loaded) then that should work around this.

 Assuming the user is using a module-loader which honors the softdep...

 Also this assumes that rc_map_get is smart enough to not call 
 request_module()
 if the module is already loaded, is that the case ?
>>>
>>> Yes, see rc_map_get().
>>
>> I tried this. It works if CONFIG_RC_CORE is set to m, but setting it to
>> y resulted in the same problem. It looks like MODULE_SOFTDEP only works if 
>> rc_main
>> is a module as well.
> 
> Hmm, I'm not quite sure what is happening here. How can I reproduce this
> issue locally?

You need the right hardware for this, I'm afraid: this issue happens if you have
a DisplayPort-to-HDMI adapter that supports CEC and CONFIG_DRM_DP_CEC is set to 
y.

In my case I have an Intel NUC with a USB-C to HDMI adapter from Club 3D 
(CAC-2504).

I can easily test patches for you.

Regards,

Hans
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [RFC v4 10/11] drm/dp: Extract i915's eDP backlight code into DRM helpers

2021-02-18 Thread Jani Nikula
On Fri, 12 Feb 2021, Lyude Paul  wrote:
> I think it wouldn't be a bad idea to just address this with a followup series
> instead and use the old DRM_DEBUG_* macros in the mean time.

aux->dev is there, could also use dev_dbg et al. in the mean time. They
handle NULL dev gracefully too if the driver didn't set that.

BR,
Jani.

-- 
Jani Nikula, Intel Open Source Graphics Center
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx