Thomas Zimmermann
49a3f51dfe
drm/gem: Use struct dma_buf_map in GEM vmap ops and convert GEM backends
...
This patch replaces the vmap/vunmap's use of raw pointers in GEM object
functions with instances of struct dma_buf_map. GEM backends are
converted as well. For most of them, this simply changes the returned type.
TTM-based drivers now return information about the location of the memory,
either system or I/O memory. GEM VRAM helpers and qxl now use ttm_bo_vmap()
et al. Amdgpu, nouveau and radeon use drm_gem_ttm_vmap() et al instead of
implementing their own vmap callbacks.
v7:
* init QXL cursor to mapped BO buffer (kernel test robot)
v5:
* update vkms after switch to shmem
v4:
* use ttm_bo_vmap(), drm_gem_ttm_vmap(), et al. (Daniel, Christian)
* fix a trailing { in drm_gem_vmap()
* remove several empty functions instead of converting them (Daniel)
* comment uses of raw pointers with a TODO (Daniel)
* TODO list: convert more helpers to use struct dma_buf_map
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Acked-by: Christian König <christian.koenig@amd.com >
Tested-by: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20201103093015.1063-7-tzimmermann@suse.de
2020-11-09 09:19:24 +01:00
Thomas Zimmermann
0454bc59be
drm/tiny/gm12u320: Retrieve USB device from struct drm_device.dev
...
Drop the driver's udev field in favor of struct drm_device.dev. No
functional changes made.
v3:
* upcast dev with gm12u320_to_usb_device()
v2:
* upcast dev with drm_dev_get_usb_device()
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20201103113456.3066-2-tzimmermann@suse.de
2020-11-09 09:16:13 +01:00
Daniel Vetter
70a59dd829
drm/<drivers>: Constify struct drm_driver
...
Only the following drivers aren't converted:
- amdgpu, because of the driver_feature mangling due to virt support.
Subsequent patch will address this.
- nouveau, because DRIVER_ATOMIC uapi is still not the default on the
platforms where it's supported (i.e. again driver_feature mangling)
- vc4, again because of driver_feature mangling
- qxl, because the ioctl table is somewhere else and moving that is
maybe a bit too much, hence the num_ioctls assignment prevents a
const driver structure.
- arcpgu, because that is stuck behind a pending tiny-fication series
from me.
- legacy drivers, because legacy requires non-const drm_driver.
Note that for armada I also went ahead and made the ioctl array const.
Only cc'ing the driver people who've not been converted (everyone else
is way too much).
v2: Fix one misplaced const static, should be static const (0day)
v3:
- Improve commit message (Sam)
Acked-by: Sam Ravnborg <sam@ravnborg.org >
Cc: kernel test robot <lkp@intel.com >
Acked-by: Maxime Ripard <mripard@kernel.org >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Dave Airlie <airlied@redhat.com >
Cc: Gerd Hoffmann <kraxel@redhat.com >
Cc: virtualization@lists.linux-foundation.org
Cc: Harry Wentland <harry.wentland@amd.com >
Cc: Leo Li <sunpeng.li@amd.com >
Cc: Alex Deucher <alexander.deucher@amd.com >
Cc: Christian König <christian.koenig@amd.com >
Cc: Eric Anholt <eric@anholt.net >
Cc: Maxime Ripard <mripard@kernel.org >
Cc: Ben Skeggs <bskeggs@redhat.com >
Cc: nouveau@lists.freedesktop.org
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20201104100425.1922351-5-daniel.vetter@ffwll.ch
2020-11-06 10:31:26 +01:00
Daniel Vetter
7e06886bbf
drm/mipi-dbi: Remove ->enabled
...
The atomic helpers try really hard to not lose track of things,
duplicating enabled tracking in the driver is at best confusing.
Double-enabling or disabling is a bug in atomic helpers.
In the fb_dirty function we can just assume that the fb always exists,
simple display pipe helpers guarantee that the crtc is only enabled
together with the output, so we always have a primary plane around.
Now in the update function we need to be a notch more careful, since
that can also get called when the crtc is off. And we don't want to
upload frames when that's the case, so filter that out too.
Reviewed-by: Noralf Trønnes <noralf@tronnes.org >
Acked-by: David Lechner <david@lechnology.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: Maxime Ripard <mripard@kernel.org >
Cc: Thomas Zimmermann <tzimmermann@suse.de >
Cc: David Airlie <airlied@linux.ie >
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: David Lechner <david@lechnology.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20200612160056.2082681-7-daniel.vetter@ffwll.ch
2020-06-24 09:17:34 +02:00
Daniel Vetter
e8411b7ede
drm/tiny/repaper: Drop edp->enabled
...
Same patch as the mipi-dbi one, atomic tracks this for us already, we
just have to check the right thing.
Reviewed-by: Noralf Trønnes <noralf@tronnes.org >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: "Noralf Trønnes" <noralf@tronnes.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200612160056.2082681-8-daniel.vetter@ffwll.ch
2020-06-24 09:17:30 +02:00
Thomas Zimmermann
06d6620164
drm/cma-helper: Rework DRM_GEM_CMA_VMAP_DRIVER_OPS macro
...
Rename the macro to DRM_GEM_CMA_DRIVER_OPS_VMAP to align naming with
SHMEM helpers and drm_gem_cma_prime_import_sg_table_vmap(). An variant of
the macro is provided for drivers that override the default .dumb_create
callback. Adapt drivers to the changes.
v3:
* rename macro to signal implicit vmap on imported buffers
v2:
* provide DRM_GEM_CMA_DRIVER_OPS_WITH_DUMB_CREATE
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Sam Ravnborg <sam@ravnborg.org >
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Reviewed-by: Emil Velikov <emil.velikov@collabora.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20200605073247.4057-3-tzimmermann@suse.de
2020-06-10 09:01:41 +02:00
Daniel Vetter
b0548a245d
drm/cirrus: Move to drm/tiny
...
Because it is. Huge congrats to everyone who made this kind of
refactoring happen!
Acked-by: Gerd Hoffmann <kraxel@redhat.com >
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de >
Acked-by: Sam Ravnborg <sam@ravnborg.org >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Dave Airlie <airlied@redhat.com >
Cc: Gerd Hoffmann <kraxel@redhat.com >
Cc: virtualization@lists.linux-foundation.org
Link: https://patchwork.freedesktop.org/patch/msgid/20200415074034.175360-38-daniel.vetter@ffwll.ch
2020-04-28 16:05:15 +02:00
Daniel Vetter
7ced4801d2
drm/gm12u320: Don't use drm_device->dev_private
...
Upcasting using a container_of macro is more typesafe, faster and
easier for the compiler to optimize.
Acked-by: Sam Ravnborg <sam@ravnborg.org >
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Hans de Goede <hdegoede@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20200415074034.175360-23-daniel.vetter@ffwll.ch
2020-04-28 15:55:19 +02:00
Daniel Vetter
9213142d6b
drm/gm12u320: Use devm_drm_dev_alloc
...
Already using devm_drm_dev_init, so very simple replacment.
Acked-by: Sam Ravnborg <sam@ravnborg.org >
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Hans de Goede <hdegoede@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20200415074034.175360-22-daniel.vetter@ffwll.ch
2020-04-28 15:54:38 +02:00
Daniel Vetter
f3eb15bb79
drm/hx8357d: Use devm_drm_dev_alloc
...
Already using devm_drm_dev_init, so very simple replacment.
Acked-by: Eric Anholt <eric@anholt.net >
Acked-by: Sam Ravnborg <sam@ravnborg.org >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Eric Anholt <eric@anholt.net >
Link: https://patchwork.freedesktop.org/patch/msgid/20200415074034.175360-21-daniel.vetter@ffwll.ch
2020-04-28 15:48:26 +02:00
Daniel Vetter
4c99859f3b
drm/ili9225: Use devm_drm_dev_alloc
...
Already using devm_drm_dev_init, so very simple replacment.
Acked-by: David Lechner <david@lechnology.com >
Acked-by: Sam Ravnborg <sam@ravnborg.org >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: David Lechner <david@lechnology.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20200415074034.175360-20-daniel.vetter@ffwll.ch
2020-04-28 15:48:20 +02:00
Daniel Vetter
5301e305c6
drm/ili9341: Use devm_drm_dev_alloc
...
Already using devm_drm_dev_init, so very simple replacment.
Acked-by: David Lechner <david@lechnology.com >
Acked-by: Sam Ravnborg <sam@ravnborg.org >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: "Noralf Trønnes" <noralf@tronnes.org >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Daniel Vetter <daniel.vetter@ffwll.ch >
Cc: Eric Anholt <eric@anholt.net >
Cc: David Lechner <david@lechnology.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20200415074034.175360-19-daniel.vetter@ffwll.ch
2020-04-28 15:48:14 +02:00
Daniel Vetter
3d49ea2294
drm/ili9486: Use devm_drm_dev_alloc
...
Already using devm_drm_dev_init, so very simple replacment.
Acked-by: Noralf Trønnes <noralf@tronnes.org >
Acked-by: Sam Ravnborg <sam@ravnborg.org >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Kamlesh Gurudasani <kamlesh.gurudasani@gmail.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20200415074034.175360-18-daniel.vetter@ffwll.ch
2020-04-28 15:48:07 +02:00
Daniel Vetter
35d8ef4ba2
drm/mi0283qt: Use devm_drm_dev_alloc
...
Already using devm_drm_dev_init, so very simple replacment.
Acked-by: Noralf Trønnes <noralf@tronnes.org >
Acked-by: Sam Ravnborg <sam@ravnborg.org >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: "Noralf Trønnes" <noralf@tronnes.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200415074034.175360-17-daniel.vetter@ffwll.ch
2020-04-28 15:48:00 +02:00
Daniel Vetter
98904f3d2d
drm/repaper: Use devm_drm_dev_alloc
...
Already using devm_drm_dev_init, so very simple replacment.
Acked-by: Noralf Trønnes <noralf@tronnes.org >
Acked-by: Sam Ravnborg <sam@ravnborg.org >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: "Noralf Trønnes" <noralf@tronnes.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200415074034.175360-16-daniel.vetter@ffwll.ch
2020-04-28 15:47:54 +02:00
Daniel Vetter
e20b873802
drm/st7586: Use devm_drm_dev_alloc
...
Already using devm_drm_dev_init, so very simple replacment.
Acked-by: David Lechner <david@lechnology.com >
Acked-by: Sam Ravnborg <sam@ravnborg.org >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: David Lechner <david@lechnology.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20200415074034.175360-15-daniel.vetter@ffwll.ch
2020-04-28 15:44:10 +02:00
Daniel Vetter
14877bc715
drm/st7735r: Use devm_drm_dev_alloc
...
Already using devm_drm_dev_init, so very simple replacment.
Aside: There was an oddity in the old code, we allocated priv but in
the error path we've freed priv->dbidev ...
Acked-by: David Lechner <david@lechnology.com >
Acked-by: Sam Ravnborg <sam@ravnborg.org >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: David Lechner <david@lechnology.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20200415074034.175360-14-daniel.vetter@ffwll.ch
2020-04-28 15:44:05 +02:00
Daniel Vetter
3421a6c409
drm/mipi-dbi: Drop explicit drm_mode_config_cleanup call
...
Allows us to drop the drm_driver.release callback from all
drivers, and remove the mipi_dbi_release() function.
This is made possible by a preceeding patch which added a drmm_
cleanup action to drm_mode_config_init(), hence all we need to do to
ensure that drm_mode_config_cleanup() is run on final drm_device
cleanup is check the new error code for _init().
v2: Explain why this cleanup is possible (Laurent).
v3: Use drmm_mode_config_init() for more clarity (Sam, Thomas)
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Thomas Zimmermann <tzimmermann@suse.de >
Acked-by: Sam Ravnborg <sam@ravnborg.org >
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Reviewed-by: Noralf Trønnes <noralf@tronnes.org > (v2)
Tested-by: Noralf Trønnes <noralf@tronnes.org >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: Maxime Ripard <mripard@kernel.org >
Cc: Thomas Zimmermann <tzimmermann@suse.de >
Cc: David Airlie <airlied@linux.ie >
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: Eric Anholt <eric@anholt.net >
Cc: David Lechner <david@lechnology.com >
Cc: Kamlesh Gurudasani <kamlesh.gurudasani@gmail.com >
Cc: "Noralf Trønnes" <noralf@tronnes.org >
Cc: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200323144950.3018436-49-daniel.vetter@ffwll.ch
2020-03-26 16:09:10 +01:00
Daniel Vetter
53bdebf7fe
drm/mipi-dbi: Move drm_mode_config_init into mipi library
...
7/7 drivers agree that's the right choice, let's do this.
This avoids duplicating the same old error checking code over all 7
drivers, which is the motivation here.
Acked-by: Sam Ravnborg <sam@ravnborg.org >
Reviewed-by: Noralf Trønnes <noralf@tronnes.org >
Tested-by: Noralf Trønnes <noralf@tronnes.org >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: Maxime Ripard <mripard@kernel.org >
Cc: Thomas Zimmermann <tzimmermann@suse.de >
Cc: David Airlie <airlied@linux.ie >
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: Eric Anholt <eric@anholt.net >
Cc: David Lechner <david@lechnology.com >
Cc: Kamlesh Gurudasani <kamlesh.gurudasani@gmail.com >
Cc: "Noralf Trønnes" <noralf@tronnes.org >
Cc: Sam Ravnborg <sam@ravnborg.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200323144950.3018436-48-daniel.vetter@ffwll.ch
2020-03-26 16:09:03 +01:00
Daniel Vetter
be9f2b0348
drm/repaper: Drop explicit drm_mode_config_cleanup call
...
Allows us to drop the drm_driver.release callback.
This is made possible by a preceeding patch which added a drmm_
cleanup action to drm_mode_config_init(), hence all we need to do to
ensure that drm_mode_config_cleanup() is run on final drm_device
cleanup is check the new error code for _init().
v2: Explain why this cleanup is possible (Laurent).
v3: Use drmm_mode_config_init() for more clarity (Sam, Thomas)
I also noticed that I've failed to add the error checking,
__must_check caught that.
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Thomas Zimmermann <tzimmermann@suse.de >
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Reviewed-by: Noralf Trønnes <noralf@tronnes.org > (v2)
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: "Noralf Trønnes" <noralf@tronnes.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200323144950.3018436-47-daniel.vetter@ffwll.ch
2020-03-26 16:08:57 +01:00
Daniel Vetter
8f2cb9379f
drm/gm12u320: Simplify upload work
...
Instead of having a work item that never stops (which really should be
a kthread), with a dedicated workqueue to not upset anyone else, use a
delayed work. A bunch of changes:
- We can throw out all the custom wakeup and requeue logic and state
tracking. If we schedule the work with a 0 delay it'll get
scheduled immediately.
- Persistent state (frame & draw_status_timeout) need to be moved out
of the work.
- diff is bigger than the changes, biggest chunk is reindenting the
work fn because it lost its while loop.
Lots of code deleting as consequence all over. Specifically we can
delete the drm_driver.release code now!
v2: Review from Hans:
- Use mod_delayed_work in the plane update path to make sure we do
actually schedule immediately). In the worker we still want
queue_delayed_work, which won't modify the timeout when the work is
already scheduled. Which is exactly what we want if the work races
with a plane update.
- Switch to system_long_wq, Hans says on usb2 a plane upload can take
80 ms.
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Hans de Goede <hdegoede@redhat.com >
Cc: "Noralf Trønnes" <noralf@tronnes.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200323144950.3018436-46-daniel.vetter@ffwll.ch
2020-03-26 16:08:52 +01:00
Daniel Vetter
7ef64ed121
drm/gm12u320: Use helpers for shutdown/suspend/resume
...
Also there's a race in the disconnect implemenation. First shut
down, then unplug, leaves a window where userspace could sneak
in and restart the entire machinery.
With this we can also delete the very un-atomic global pipe_enabled
tracking.
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Hans de Goede <hdegoede@redhat.com >
Cc: "Noralf Trønnes" <noralf@tronnes.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200323144950.3018436-45-daniel.vetter@ffwll.ch
2020-03-26 16:08:47 +01:00
Daniel Vetter
993f5b193d
drm/gm12u320: Use devm_drm_dev_init
...
Only drops the drm_dev_put, but hey a few lines!
Reviewed-by: Hans de Goede <hdegoede@redhat.com >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Hans de Goede <hdegoede@redhat.com >
Cc: "Noralf Trønnes" <noralf@tronnes.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200323144950.3018436-44-daniel.vetter@ffwll.ch
2020-03-26 16:08:42 +01:00
Daniel Vetter
08373edcb9
drm/gm12u320: More drmm_
...
The drm_mode_config_cleanup call we can drop, and all the allocations
we can switch over to drmm_kzalloc. Unfortunately the work queue is
still present, so can't get rid of the drm_driver->release function
outright.
v2: Use drmm_mode_config_init() for more clarity (Sam, Thomas)
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Thomas Zimmermann <tzimmermann@suse.de >
Reviewed-by: Hans de Goede <hdegoede@redhat.com > (v1)
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Hans de Goede <hdegoede@redhat.com >
Cc: "Noralf Trønnes" <noralf@tronnes.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20200323144950.3018436-43-daniel.vetter@ffwll.ch
2020-03-26 16:08:36 +01:00
Daniel Vetter
d33b58d011
drm: Garbage collect drm_dev_fini
...
It has become empty. Given the few users I figured not much point
splitting this up.
v2: Rebase over i915 changes.
v3: Rebase over patch split fix.
Acked-by: Sam Ravnborg <sam@ravnborg.org >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20200323144950.3018436-26-daniel.vetter@ffwll.ch
2020-03-26 15:45:36 +01:00