We have to cleanup after i915_perf_init(), even on the error path, as it
passes a pointer into the module to the sysfs core. If we fail to
unregister the sysctl table, we leave a dangling pointer which then may
explode anytime later the sysctl table, we leave a dangling pointer
which then may explo
== Series Details ==
Series: drm/i915: Call i915_perf_fini() on init_hw error unwind
URL : https://patchwork.freedesktop.org/series/41711/
State : failure
== Summary ==
CHK include/config/kernel.release
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease
On Fri, Apr 13, 2018 at 06:57:39PM -0700, Francisco Jerez wrote:
> Peter Zijlstra writes:
>
> > On Thu, Apr 12, 2018 at 12:55:39PM -0700, Francisco Jerez wrote:
> >> Actually assuming that a single geometric feature of the power curve is
> >> known -- it being convex in the frequency range allowe
Quoting Tvrtko Ursulin (2018-04-11 14:52:36)
>
> On 11/04/2018 14:23, Chris Wilson wrote:
> > Quoting Tvrtko Ursulin (2018-04-04 10:51:52)
> >> From: Tvrtko Ursulin
> >>
> >> Realtime scheduling interferes with execlists submission (tasklet) so try
> >> to simplify the PWM loop in a few ways:
> >
This patchset explores the possibility of having generic fbdev emulation
in DRM for drivers that supports dumb buffers which they can export. An
API is added to support in-kernel clients in general.
In this version I was able to reuse the modesetting code from
drm_fb_helper in the client API. This
It only makes sense for userspace clients.
Signed-off-by: Noralf Trønnes
Reviewed-by: Daniel Vetter
---
drivers/gpu/drm/drm_file.c | 18 +-
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/drm_file.c b/drivers/gpu/drm/drm_file.c
index d4588d33f91c..5
From: David Herrmann
Rather than doing drm_file allocation/destruction right in the fops, lets
provide separate helpers. This decouples drm_file management from the
still-mandatory drm-fops. It prepares for use of drm_file without the
fops, both by possible separate fops implementations and APIs
Atomic drivers can't use them so finish what was started in
commit 9c79e0b1d096 ("drm/fb-helper: Give up on kgdb for atomic drivers").
This prepares the ground for creating modesets on demand.
TODO:
- Actually remove the functions, not just the contents.
- Nuke drm_crtc_helper_funcs->mode_set_bas
This the beginning of an API for in-kernel clients.
First out is a display representation that will be used by drm_fb_helper
in order to move out its mode setting code.
Signed-off-by: Noralf Trønnes
---
drivers/gpu/drm/Makefile | 2 +-
drivers/gpu/drm/drm_client.c | 119 +++
For each enabled crtc the functions sets dpms on all registered connectors.
Limit this to only doing it once and on the connectors actually in use.
Signed-off-by: Noralf Trønnes
---
drivers/gpu/drm/drm_fb_helper.c | 11 +--
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/dr
Getting rotation info is cheap so we can do it on demand.
This is done in preparation for the removal of struct drm_fb_helper_crtc.
Cc: Hans de Goede
Signed-off-by: Noralf Trønnes
---
drivers/gpu/drm/drm_fb_helper.c | 131
include/drm/drm_fb_helper.h
The modesetting code is already present, this adds the rest of the API.
Signed-off-by: Noralf Trønnes
---
drivers/gpu/drm/drm_client.c | 573 +
drivers/gpu/drm/drm_debugfs.c | 7 +
drivers/gpu/drm/drm_drv.c | 11 +
drivers/gpu/drm/drm_fi
If there's a DRM master, return -EBUSY.
Block userspace from becoming master by taking the master lock while
the client is setting the mode.
Suggested-by: Daniel Vetter
Signed-off-by: Noralf Trønnes
---
drivers/gpu/drm/drm_auth.c | 33 +
drivers/gpu/drm/drm_
Prepare for moving drm_fb_helper modesetting code to drm_client.
drm_client will be linked to drm.ko, so move
__drm_atomic_helper_disable_plane() and __drm_atomic_helper_set_config()
out of drm_kms_helper.ko.
Signed-off-by: Noralf Trønnes
---
drivers/gpu/drm/drm_atomic.c| 168 +++
This moves the committing part of the modesetting code to drm_client.
Signed-off-by: Noralf Trønnes
---
drivers/gpu/drm/drm_client.c| 242
drivers/gpu/drm/drm_fb_helper.c | 216 +--
include/drm/drm_client.h| 8
Give clients easy access to the display modes.
Signed-off-by: Noralf Trønnes
---
drivers/gpu/drm/drm_client.c | 159 +--
include/drm/drm_client.h | 25 +++
2 files changed, 148 insertions(+), 36 deletions(-)
diff --git a/drivers/gpu/drm/drm_clien
Call the function drm_client_find_display().
No functional change apart from making width/height arguments optional.
Some function name/signature changes and whitespace adjustments.
Signed-off-by: Noralf Trønnes
---
drivers/gpu/drm/drm_client.c| 399
Make ioctl wrappers for functions that will be used by the in-kernel API.
The following functions are touched:
- drm_mode_create_dumb_ioctl()
- drm_mode_destroy_dumb_ioctl()
- drm_mode_addfb2()
- drm_mode_rmfb()
- drm_prime_handle_to_fd_ioctl()
drm_mode_addfb2() also gets the ability to override t
Prepare to move the modeset committing code to drm_client.
Signed-off-by: Noralf Trønnes
---
drivers/gpu/drm/drm_fb_helper.c | 161
include/drm/drm_fb_helper.h | 8 ++
2 files changed, 89 insertions(+), 80 deletions(-)
diff --git a/drivers/gpu/drm/
Add functions to deal with the registred connectors as an array:
- drm_connector_get_all()
- drm_connector_put_all()
And to get the enabled status of those connectors:
drm_connector_get_enabled_status()
This is prep work to remove struct drm_fb_helper_connector.
Signed-off-by: Noralf Trønnes
--
No need to maintain a list of registered connectors. Just use the
connector iterator.
TODO: Remove:
- drm_fb_helper_add_one_connector()
- drm_fb_helper_single_add_all_connectors()
- drm_fb_helper_remove_one_connector()
Signed-off-by: Noralf Trønnes
---
drivers/gpu/drm/drm_fb_helper.c | 359
The stage is now set for a clean removal of drm_fb_helper_crtc.
struct drm_client_display is doing its job now.
Also remove the drm_fb_helper_funcs->initial_config which has been
superseded by drm_driver->initial_client_display.
Signed-off-by: Noralf Trønnes
---
drivers/gpu/drm/drm_fb_helper.c
Move them over from drm_fb_helper since they are connector functions.
Signed-off-by: Noralf Trønnes
---
drivers/gpu/drm/drm_connector.c| 94 ++
drivers/gpu/drm/drm_fb_helper.c| 75 ++
drivers/gpu/drm/i915/intel_fbdev.c | 7
Avoid pinning the module when exporting a GEM object as a dmabuf. This
makes it possible to unload drivers that has in-kernel clients using it.
The client is removed on drm_dev_unregister() so no need to pin the driver.
Signed-off-by: Noralf Trønnes
---
drivers/gpu/drm/drm_prime.c | 24 +
Add a notifier that fires when a new DRM device is registered.
This can be used by the bootsplash client to connect to all devices.
Signed-off-by: Noralf Trønnes
---
drivers/gpu/drm/drm_drv.c | 32
include/drm/drm_drv.h | 4
2 files changed, 36 insertio
As part of moving the modesetting code out of drm_fb_helper and into
drm_client, the drm_fb_helper_funcs->initial_config callback needs to go.
Replace it with a drm_driver->initial_client_display callback that can
work for all in-kernel clients.
TODO:
- Add a patch that moves the function out of i
These helpers keep track of fbdev users and drm_driver.last_close will
only restore fbdev when actually in use. Additionally the display is
turned off when the last user is closing. fbcon is a user in this context.
If struct fb_ops is defined in a library, fb_open() takes a ref on the
library (fb_
A hack to test the client API.
Signed-off-by: Noralf Trønnes
---
drivers/gpu/drm/Makefile | 1 +
drivers/gpu/drm/client/Kconfig | 5 +
drivers/gpu/drm/client/Makefile| 3 +
drivers/gpu/drm/client/drm_vtcon.c | 785 +
4 files changed, 79
A hack to test the client API.
Signed-off-by: Noralf Trønnes
---
drivers/gpu/drm/Kconfig | 2 +
drivers/gpu/drm/Makefile| 1 +
drivers/gpu/drm/client/Kconfig | 9 ++
drivers/gpu/drm/client/drm_bootsplash.c | 248
dri
This adds generic fbdev emulation for drivers that supports
dumb buffers which they can export.
All the driver has to do is call drm_fbdev_generic_setup().
Signed-off-by: Noralf Trønnes
---
drivers/gpu/drm/drm_fb_helper.c | 255
include/drm/drm_fb_helper
Add a selftest to ensure that we restore the whitelisted registers after
rewrite the registers everytime they might be scrubbed, e.g. module
load, reset and resume. For the other volatile workaround registers, we
export their presence via debugfs and check in igt/gem_workarounds.
However, we don't
On Sat, Apr 14, 2018 at 09:18:52AM +, Patchwork wrote:
> == Series Details ==
>
> Series: drm/i915: Call i915_perf_fini() on init_hw error unwind
> URL : https://patchwork.freedesktop.org/series/41711/
> State : failure
>
> == Summary ==
>
> CHK include/config/kernel.release
> CHK
== Series Details ==
Series: drm: Add generic fbdev emulation
URL : https://patchwork.freedesktop.org/series/41713/
State : warning
== Summary ==
$ dim checkpatch origin/drm-tip
81446b0d0a5c drm: provide management functions for drm_file
60830bd79f28 drm/file: Don't set master on in-kernel cli
== Series Details ==
Series: drm: Add generic fbdev emulation
URL : https://patchwork.freedesktop.org/series/41713/
State : warning
== Summary ==
$ dim sparse origin/drm-tip
Commit: drm: provide management functions for drm_file
Okay!
Commit: drm/file: Don't set master on in-kernel clients
Ok
On 14/04/18 02:12, Chris Wilson wrote:
We have to cleanup after i915_perf_init(), even on the error path, as it
passes a pointer into the module to the sysfs core. If we fail to
unregister the sysctl table, we leave a dangling pointer which then may
explode anytime later the sysctl table, we leav
== Series Details ==
Series: drm: Add generic fbdev emulation
URL : https://patchwork.freedesktop.org/series/41713/
State : success
== Summary ==
= CI Bug Log - changes from CI_DRM_4053 -> Patchwork_8690 =
== Summary - SUCCESS ==
No regressions found.
External URL:
https://patchwork.fr
== Series Details ==
Series: drm/i915: Check whitelist registers across resets (rev3)
URL : https://patchwork.freedesktop.org/series/41631/
State : warning
== Summary ==
$ dim checkpatch origin/drm-tip
e8b78ed9f2c3 drm/i915: Check whitelist registers across resets
-:410: WARNING:FILE_PATH_CHAN
On Sat, 14 Apr 2018 11:12:33 +0200, Chris Wilson
wrote:
We have to cleanup after i915_perf_init(), even on the error path, as it
passes a pointer into the module to the sysfs core. If we fail to
unregister the sysctl table, we leave a dangling pointer which then may
explode anytime later the
== Series Details ==
Series: drm/i915: Check whitelist registers across resets (rev3)
URL : https://patchwork.freedesktop.org/series/41631/
State : success
== Summary ==
= CI Bug Log - changes from CI_DRM_4053 -> Patchwork_8691 =
== Summary - SUCCESS ==
No regressions found.
External UR
== Series Details ==
Series: drm/i915: Call i915_perf_fini() on init_hw error unwind
URL : https://patchwork.freedesktop.org/series/41711/
State : success
== Summary ==
= CI Bug Log - changes from CI_DRM_4053 -> Patchwork_8692 =
== Summary - WARNING ==
Minor unknown changes coming with Pat
== Series Details ==
Series: drm: Add generic fbdev emulation
URL : https://patchwork.freedesktop.org/series/41713/
State : success
== Summary ==
= CI Bug Log - changes from CI_DRM_4053_full -> Patchwork_8690_full =
== Summary - SUCCESS ==
No regressions found.
External URL:
https://pa
== Series Details ==
Series: drm/i915: Check whitelist registers across resets (rev3)
URL : https://patchwork.freedesktop.org/series/41631/
State : success
== Summary ==
= CI Bug Log - changes from CI_DRM_4053_full -> Patchwork_8691_full =
== Summary - SUCCESS ==
No regressions found.
E
== Series Details ==
Series: drm/i915: Call i915_perf_fini() on init_hw error unwind
URL : https://patchwork.freedesktop.org/series/41711/
State : success
== Summary ==
= CI Bug Log - changes from CI_DRM_4053_full -> Patchwork_8692_full =
== Summary - SUCCESS ==
No regressions found.
Ex
> On Apr 12, 2018, at 2:21 PM, Taylor, Clinton A
> wrote:
>
>
>
>> On 04/11/2018 04:11 PM, Chris Wilson wrote:
>> Quoting clinton.a.tay...@intel.com (2018-04-12 00:13:26)
>>> From: Clint Taylor
>>>
>>> In commit dc911f5bd8aa ("drm/i915/edp: Allow alternate fixed mode for eDP
>>> if availab
44 matches
Mail list logo