drm drivers project report (week of May 11th and May 18th)

From: Emmanuel Vadot <manu_at_bidouilliste.com>
Date: Mon, 25 May 2020 10:38:05 +0200
 Hello all,

 First of all sorry for forgetting to send a report last week.

 A lot happened in two weeks.

 We are now 98% synced with Linux 5.2 and I've taggued a release
yesterday (https://github.com/freebsd/drm-kmod/releases/tag/drm_v5.2_8)
and this is now in ports in graphics/drm-devel-kmod
(https://svnweb.freebsd.org/ports?view=revision&revision=536403). The
2% remaining is a small patch that uses the rcu in Linux and cause
problem for us on FreeBSD. I'll send an email this week to hackers with
more details as I've spent quite some time on it and don't really
understand what's goind on.

 This ports should be fine to use for any users of Intel or AMD. If any
users of the vboxvideo and vmwgfx see any problem please tell my and
I'll fix any issue. 
For users of >Skylake Intel there is a known problem with laptop panel
where the console doesn't refresh, this is due to a mechanism called
PSR, Panel Self Refresh, where the driver shutdown the embedded display
port link to save battery and the panel keeps a copy of framebuffer to
display it.
 This is a known problem for any of our kmod >4.16. I mostly understand
what's going on but will be able to fix it when I receive my > Skylake
laptop (hopefully tomorow). If you have such issue setting
hw.i915kms.enable_psr=0 in /boot/loader.conf (See below for the sysctl
update).

 To have 5.2 correctly compiling and running a number of commits have
been made to linuxkpi in base :
https://svnweb.freebsd.org/changeset/base/361007
https://svnweb.freebsd.org/changeset/base/361245
https://svnweb.freebsd.org/changeset/base/361246
https://svnweb.freebsd.org/changeset/base/361247
https://svnweb.freebsd.org/changeset/base/361343

 On the code side a new file kconfig.mk was added, it's used to
"emulate" the kconfig option of the Linux kernel and allow us to define
the needed options based on the architectures but also
enabling/disabling some option based on make variable such as
DRM_LEGACY (Linux have deprecated some drm interface and they are only
compiled if DRM_LEGACY is in KConfig). We use to define the CONFIG_* in
a header file but doing it this way allow us to compile or not some
files based on the options.

 The main Makefile was also reworked to allow compiling only certain
modules using the KMODS make variable, this is mostly useful for
developement purpose (when bisecting a problem on a certain kmod for
example) but could also be used as port options so people won't waste
cycle compiling amdgpu+radeon+ttm modules when they only want the
i915kms one. I'll add such options in the port during this week.

 The sysctls exposed by the drm drivers also have changed, due to how
linuxkpi works every module parametters is translated to sysctls under
compat.linuxkpi, I didn't liked that as a users doesn't need to know
what linuxkpi is or that the drm drivers uses it. So I've added them
under hw.<modulename>. So if you used compat.linuxkpi.i915_something
it's now also exposed as hw.i915kms.something.
 It's more logical, I think, to use hw.<modulename> as this is where we
put the sysctls/tunable for hardware related configuration. It also
allow a users to sysctl -d hw.<modulename> and see every configuration
description without having to sysctl -a  | grep <modulename>.
 The old sysctls under compat.linuxkpi are still there so if you
already rely on some configuration it will still work.

 On the 5.3 side, it's now synced at ~33%. 5.3 is a big release, more
than 1500 patches for the differents DRM modules.
 You can track the progress here :
https://github.com/freebsd/drm-kmod/tree/5.3
 There is a known issue on intel (at least skylake), the commit have
been identified and I'm working on fixing the issue. On amd side it's
working well for me on my picasso laptop.
 Again a number of commits in base linuxkpi have been made :
https://svnweb.freebsd.org/changeset/base/361138
https://svnweb.freebsd.org/changeset/base/361139
https://svnweb.freebsd.org/changeset/base/361140
https://svnweb.freebsd.org/changeset/base/361418
https://svnweb.freebsd.org/changeset/base/361419

 I hope to finish 5.3 this week.

 Cheers,

-- 
Emmanuel Vadot <manu_at_bidouilliste.com> <manu_at_freebsd.org>
Received on Mon May 25 2020 - 06:38:16 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:24 UTC