linux/drivers/gpu/drm
Linus Torvalds 71a7507afb Driver Core changes for 6.2-rc1
Here is the set of driver core and kernfs changes for 6.2-rc1.
 
 The "big" change in here is the addition of a new macro,
 container_of_const() that will preserve the "const-ness" of a pointer
 passed into it.
 
 The "problem" of the current container_of() macro is that if you pass in
 a "const *", out of it can comes a non-const pointer unless you
 specifically ask for it.  For many usages, we want to preserve the
 "const" attribute by using the same call.  For a specific example, this
 series changes the kobj_to_dev() macro to use it, allowing it to be used
 no matter what the const value is.  This prevents every subsystem from
 having to declare 2 different individual macros (i.e.
 kobj_const_to_dev() and kobj_to_dev()) and having the compiler enforce
 the const value at build time, which having 2 macros would not do
 either.
 
 The driver for all of this have been discussions with the Rust kernel
 developers as to how to properly mark driver core, and kobject, objects
 as being "non-mutable".  The changes to the kobject and driver core in
 this pull request are the result of that, as there are lots of paths
 where kobjects and device pointers are not modified at all, so marking
 them as "const" allows the compiler to enforce this.
 
 So, a nice side affect of the Rust development effort has been already
 to clean up the driver core code to be more obvious about object rules.
 
 All of this has been bike-shedded in quite a lot of detail on lkml with
 different names and implementations resulting in the tiny version we
 have in here, much better than my original proposal.  Lots of subsystem
 maintainers have acked the changes as well.
 
 Other than this change, included in here are smaller stuff like:
   - kernfs fixes and updates to handle lock contention better
   - vmlinux.lds.h fixes and updates
   - sysfs and debugfs documentation updates
   - device property updates
 
 All of these have been in the linux-next tree for quite a while with no
 problems, OTHER than some merge issues with other trees that should be
 obvious when you hit them (block tree deletes a driver that this tree
 modifies, iommufd tree modifies code that this tree also touches).  If
 there are merge problems with these trees, please let me know.
 
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -----BEGIN PGP SIGNATURE-----
 
 iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCY5wz3A8cZ3JlZ0Brcm9h
 aC5jb20ACgkQMUfUDdst+yks0ACeKYUlVgCsER8eYW+x18szFa2QTXgAn2h/VhZe
 1Fp53boFaQkGBjl8mGF8
 =v+FB
 -----END PGP SIGNATURE-----

Merge tag 'driver-core-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core

Pull driver core updates from Greg KH:
 "Here is the set of driver core and kernfs changes for 6.2-rc1.

  The "big" change in here is the addition of a new macro,
  container_of_const() that will preserve the "const-ness" of a pointer
  passed into it.

  The "problem" of the current container_of() macro is that if you pass
  in a "const *", out of it can comes a non-const pointer unless you
  specifically ask for it. For many usages, we want to preserve the
  "const" attribute by using the same call. For a specific example, this
  series changes the kobj_to_dev() macro to use it, allowing it to be
  used no matter what the const value is. This prevents every subsystem
  from having to declare 2 different individual macros (i.e.
  kobj_const_to_dev() and kobj_to_dev()) and having the compiler enforce
  the const value at build time, which having 2 macros would not do
  either.

  The driver for all of this have been discussions with the Rust kernel
  developers as to how to properly mark driver core, and kobject,
  objects as being "non-mutable". The changes to the kobject and driver
  core in this pull request are the result of that, as there are lots of
  paths where kobjects and device pointers are not modified at all, so
  marking them as "const" allows the compiler to enforce this.

  So, a nice side affect of the Rust development effort has been already
  to clean up the driver core code to be more obvious about object
  rules.

  All of this has been bike-shedded in quite a lot of detail on lkml
  with different names and implementations resulting in the tiny version
  we have in here, much better than my original proposal. Lots of
  subsystem maintainers have acked the changes as well.

  Other than this change, included in here are smaller stuff like:

   - kernfs fixes and updates to handle lock contention better

   - vmlinux.lds.h fixes and updates

   - sysfs and debugfs documentation updates

   - device property updates

  All of these have been in the linux-next tree for quite a while with
  no problems"

* tag 'driver-core-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (58 commits)
  device property: Fix documentation for fwnode_get_next_parent()
  firmware_loader: fix up to_fw_sysfs() to preserve const
  usb.h: take advantage of container_of_const()
  device.h: move kobj_to_dev() to use container_of_const()
  container_of: add container_of_const() that preserves const-ness of the pointer
  driver core: fix up missed drivers/s390/char/hmcdrv_dev.c class.devnode() conversion.
  driver core: fix up missed scsi/cxlflash class.devnode() conversion.
  driver core: fix up some missing class.devnode() conversions.
  driver core: make struct class.devnode() take a const *
  driver core: make struct class.dev_uevent() take a const *
  cacheinfo: Remove of_node_put() for fw_token
  device property: Add a blank line in Kconfig of tests
  device property: Rename goto label to be more precise
  device property: Move PROPERTY_ENTRY_BOOL() a bit down
  device property: Get rid of __PROPERTY_ENTRY_ARRAY_EL*SIZE*()
  kernfs: fix all kernel-doc warnings and multiple typos
  driver core: pass a const * into of_device_uevent()
  kobject: kset_uevent_ops: make name() callback take a const *
  kobject: kset_uevent_ops: make filter() callback take a const *
  kobject: make kobject_namespace take a const *
  ...
2022-12-16 03:54:54 -08:00
..
amd MM patches for 6.2-rc1. 2022-12-13 19:29:45 -08:00
arm drm/arm/malidp: remove calls to drm_mode_config_cleanup() 2022-11-16 10:33:45 +00:00
armada drm/fb-helper: Perform all fbdev I/O with the same implementation 2022-11-05 17:05:54 +01:00
aspeed drm/fb-helper: Move generic fbdev emulation into separate source file 2022-11-05 17:12:04 +01:00
ast drm/fb-helper: Remove unnecessary include statements 2022-11-05 17:12:04 +01:00
atmel-hlcdc drm/fb-helper: Move generic fbdev emulation into separate source file 2022-11-05 17:12:04 +01:00
bridge drm for 6.2: 2022-12-13 11:59:58 -08:00
display Linux 6.1-rc6 2022-11-24 11:05:43 +10:00
etnaviv MM patches for 6.2-rc1. 2022-12-13 19:29:45 -08:00
exynos MM patches for 6.2-rc1. 2022-12-13 19:29:45 -08:00
fsl-dcu hardening updates for v6.2-rc1 2022-12-14 12:20:00 -08:00
gma500 drm/fb-helper: Perform all fbdev I/O with the same implementation 2022-11-05 17:05:54 +01:00
gud drm/fb-helper: Move generic fbdev emulation into separate source file 2022-11-05 17:12:04 +01:00
hisilicon drm/hisilicon: Use drm_mode_init() for on-stack modes 2022-11-12 01:36:43 +02:00
hyperv drm/fb-helper: Remove unnecessary include statements 2022-11-05 17:12:04 +01:00
i2c drm: tda99x: Don't advertise non-existent capture support 2022-12-02 14:07:19 +00:00
i810
i915 VFIO updates for v6.2-rc1 2022-12-15 13:12:15 -08:00
imx Linux 6.1-rc6 2022-11-24 11:05:43 +10:00
ingenic drm/fb-helper: Move generic fbdev emulation into separate source file 2022-11-05 17:12:04 +01:00
kmb drm/fb-helper: Remove unnecessary include statements 2022-11-05 17:12:04 +01:00
lib
lima Linux 6.1-rc6 2022-11-24 11:05:43 +10:00
logicvc drm/fb-helper: Move generic fbdev emulation into separate source file 2022-11-05 17:12:04 +01:00
mcde drm/fb-helper: Move generic fbdev emulation into separate source file 2022-11-05 17:12:04 +01:00
mediatek Mediatek DRM Next for Linux 6.2 2022-11-24 12:49:36 +10:00
meson drm/fb-helper: Move generic fbdev emulation into separate source file 2022-11-05 17:12:04 +01:00
mga
mgag200 drm/fb-helper: Remove unnecessary include statements 2022-11-05 17:12:04 +01:00
msm Merge tag 'drm-msm-next-2022-11-28' of https://gitlab.freedesktop.org/drm/msm into drm-next 2022-11-30 17:19:18 +10:00
mxsfb drm: lcdif: Set and enable FIFO Panic threshold 2022-11-09 01:31:45 +01:00
nouveau drm-misc-next for 6.2: 2022-11-22 09:21:17 +10:00
omapdrm drm: Assert held reservation lock for dma-buf mmapping 2022-11-11 23:49:47 +03:00
panel Linux 6.1-rc6 2022-11-24 11:05:43 +10:00
panfrost Linux 6.1-rc6 2022-11-24 11:05:43 +10:00
pl111 drm/fb-helper: Move generic fbdev emulation into separate source file 2022-11-05 17:12:04 +01:00
qxl drm/fb-helper: Remove unnecessary include statements 2022-11-05 17:12:04 +01:00
r128
radeon drm/radeon: Fix PCI device refcount leak in radeon_atrm_get_bios() 2022-11-29 11:03:38 -05:00
rcar-du Kconfig fix for RZ/G2L DSI 2022-11-24 12:38:36 +10:00
rockchip Linux 6.1-rc6 2022-11-24 11:05:43 +10:00
savage
scheduler Merge tag 'amd-drm-next-6.2-2022-11-18' of https://gitlab.freedesktop.org/agd5f/linux into drm-next 2022-11-22 13:41:11 +10:00
shmobile drm/plane: Remove drm_plane_init() 2022-09-20 09:37:12 +02:00
sis drm/sis: use idr_init_base() to initialize dev_priv->object_idr 2022-07-28 15:35:56 +01:00
solomon drm/fb-helper: Move generic fbdev emulation into separate source file 2022-11-05 17:12:04 +01:00
sprd drm/gem: rename struct drm_gem_dma_object.{paddr => dma_addr} 2022-08-03 18:32:27 +02:00
sti hardening updates for v6.2-rc1 2022-12-14 12:20:00 -08:00
stm drm/fb-helper: Move generic fbdev emulation into separate source file 2022-11-05 17:12:04 +01:00
sun4i drm/sun4i: dsi: Add the A100 variant 2022-11-07 14:09:54 +01:00
tdfx
tegra drm/tegra: Changes for v6.2-rc1 2022-11-30 13:08:58 +10:00
tests drm for 6.2: 2022-12-13 11:59:58 -08:00
tidss drm/fb-helper: Remove unnecessary include statements 2022-11-05 17:12:04 +01:00
tilcdc drm/fb-helper: Move generic fbdev emulation into separate source file 2022-11-05 17:12:04 +01:00
tiny drm/fb-helper: Move generic fbdev emulation into separate source file 2022-11-05 17:12:04 +01:00
ttm drm/ttm: optimize pool allocations a bit v2 2022-11-08 10:45:30 +01:00
tve200 drm/fb-helper: Move generic fbdev emulation into separate source file 2022-11-05 17:12:04 +01:00
udl drm/fb-helper: Move generic fbdev emulation into separate source file 2022-11-05 17:12:04 +01:00
v3d drm/v3d: add missing mutex_destroy 2022-11-10 11:49:40 -01:00
vboxvideo drm/fb-helper: Remove unnecessary include statements 2022-11-05 17:12:04 +01:00
vc4 Linux 6.1-rc6 2022-11-24 11:05:43 +10:00
vgem
via drm/via: Add new condition to via_dma_cleanup() 2022-09-07 07:01:16 +02:00
virtio drm/fb-helper: Remove unnecessary include statements 2022-11-05 17:12:04 +01:00
vkms drm/fb-helper: Move generic fbdev emulation into separate source file 2022-11-05 17:12:04 +01:00
vmwgfx drm for 6.2: 2022-12-13 11:59:58 -08:00
xen drm/fb-helper: Remove unnecessary include statements 2022-11-05 17:12:04 +01:00
xlnx drm-misc-next for 6.2: 2022-11-16 07:17:32 +10:00
Kconfig Merge tag 'amd-drm-next-6.2-2022-11-18' of https://gitlab.freedesktop.org/agd5f/linux into drm-next 2022-11-22 13:41:11 +10:00
Makefile drivers/accel: define kconfig and register a new major 2022-11-22 13:13:51 +02:00
drm_agpsupport.c
drm_aperture.c drm/aperture: Fix some kerneldoc comments 2022-09-12 09:34:07 +02:00
drm_atomic.c
drm_atomic_helper.c drm/atomic-helper: Add {begin,end}_fb_access to plane helpers 2022-11-08 17:10:27 +01:00
drm_atomic_state_helper.c drm/atomic-helper: Rename drm_atomic_helper_connector_tv_reset to avoid ambiguity 2022-10-10 13:55:47 +02:00
drm_atomic_uapi.c drm/atomic: Add TV subconnector property to get/set_property 2022-10-10 13:56:42 +02:00
drm_auth.c drm: use idr_init_base() to initialize master->lessee_idr 2022-07-28 15:35:55 +01:00
drm_blend.c drm/doc: Fix comment typo 2022-06-28 07:56:32 +02:00
drm_bridge.c drm/bridge: Avoid uninitialized variable warning 2022-07-08 13:41:28 +02:00
drm_bridge_connector.c
drm_buddy.c
drm_bufs.c
drm_cache.c
drm_client.c drm/client: Prevent NULL dereference in drm_client_buffer_delete() 2022-11-02 13:53:57 +03:00
drm_client_modeset.c drm/client: Add some tests for drm_connector_pick_cmdline_mode() 2022-11-15 10:08:37 +01:00
drm_color_mgmt.c drm: fix whitespace in drm_plane_create_color_properties() 2022-08-04 15:24:46 +02:00
drm_connector.c drm-misc-next for 6.2: 2022-10-28 13:16:36 +10:00
drm_context.c
drm_crtc.c drm/crtc: Introduce drmm_crtc_init_with_planes 2022-07-13 10:46:05 +02:00
drm_crtc_helper.c drm/fb-helper: Remove unnecessary include statements 2022-11-05 17:12:04 +01:00
drm_crtc_helper_internal.h
drm_crtc_internal.h drm/edid: move edid load declarations to internal header 2022-10-26 09:53:56 +03:00
drm_damage_helper.c drm: Use original src rect while initializing damage iterator 2022-09-13 14:38:33 +03:00
drm_debugfs.c drm/edid: abstract debugfs override EDID show better 2022-10-26 09:53:08 +03:00
drm_debugfs_crc.c
drm_displayid.c
drm_dma.c
drm_drv.c This tag contains the patches that add the new compute acceleration 2022-11-30 12:01:27 +10:00
drm_dumb_buffers.c
drm_edid.c drm-misc-next for 6.2: 2022-11-22 09:21:17 +10:00
drm_edid_load.c drm/edid/firmware: stop using a throwaway platform device 2022-11-16 14:54:44 +02:00
drm_encoder.c drm/encoder: Introduce drmm_encoder_init 2022-07-13 10:46:05 +02:00
drm_encoder_slave.c
drm_fb_dma_helper.c drm/gem: rename struct drm_gem_dma_object.{paddr => dma_addr} 2022-08-03 18:32:27 +02:00
drm_fb_helper.c Revert "drm/fb-helper: Perform damage handling in deferred-I/O helper" 2022-11-23 09:11:32 +01:00
drm_fbdev_generic.c drm/fbdev: Include <linux/vmalloc.h> 2022-11-08 16:15:48 +01:00
drm_file.c accel: add dedicated minor for accelerator devices 2022-11-22 13:14:44 +02:00
drm_flip_work.c
drm_format_helper.c Linux 6.1-rc6 2022-11-24 11:05:43 +10:00
drm_fourcc.c drm/fourcc: Fix vsub/hsub for Q410 and Q401 2022-11-16 11:29:09 +00:00
drm_framebuffer.c drm/framebuffer: convert to drm_dbg_kms() 2022-09-28 10:43:30 +02:00
drm_gem.c Merge drm/drm-next into drm-misc-next 2022-10-18 15:00:03 +02:00
drm_gem_atomic_helper.c drm/gem: Implement shadow-plane {begin, end}_fb_access with vmap 2022-11-08 17:10:41 +01:00
drm_gem_dma_helper.c drm/gem: Take reservation lock for vmap/vunmap operations 2022-10-18 01:21:38 +03:00
drm_gem_framebuffer_helper.c drm/fb-helper: Remove unnecessary include statements 2022-11-05 17:12:04 +01:00
drm_gem_shmem_helper.c drm/shmem-helper: Avoid vm_open error paths 2022-12-04 18:56:53 +01:00
drm_gem_ttm_helper.c drm/gem: Take reservation lock for vmap/vunmap operations 2022-10-18 01:21:38 +03:00
drm_gem_vram_helper.c drm/gem-vram: Fix deadlock in drm_gem_vram_vmap() 2022-11-14 15:55:21 +03:00
drm_hashtab.c
drm_internal.h drm: Fix potential null-ptr-deref in drm_vblank_destroy_worker() 2022-11-10 18:49:02 -05:00
drm_ioc32.c
drm_ioctl.c drm: Prevent drm_copy_field() to attempt copying a NULL pointer 2022-07-15 10:25:36 +02:00
drm_irq.c
drm_kms_helper_common.c
drm_lease.c
drm_legacy.h
drm_legacy_misc.c
drm_lock.c
drm_managed.c
drm_memory.c
drm_mipi_dbi.c drm/probe-helper: Add drm_crtc_helper_mode_valid_fixed() 2022-09-12 09:14:26 +02:00
drm_mipi_dsi.c gpu/drm: fix repeated words in comments 2022-10-24 09:26:56 +02:00
drm_mm.c
drm_mode_config.c Revert "drm: hide unregistered connectors from GETCONNECTOR IOCTL" 2022-11-15 19:18:41 +01:00
drm_mode_object.c
drm_modes.c drm/connector: Add pixel clock to cmdline mode 2022-11-15 10:10:24 +01:00
drm_modeset_helper.c drm/plane-helper: Provide DRM_PLANE_NON_ATOMIC_FUNCS initializer macro 2022-09-20 09:42:31 +02:00
drm_modeset_lock.c
drm_of.c drm: Remove linux/media-bus-format.h from drm_crtc.h 2022-07-05 21:15:13 +03:00
drm_panel.c
drm_panel_orientation_quirks.c drm: panel-orientation-quirks: Add quirk for Acer Switch V 10 (SW5-017) 2022-11-08 10:12:45 +01:00
drm_pci.c
drm_plane.c drm/plane: Allocate planes with drm_universal_plane_alloc() 2022-09-20 09:41:06 +02:00
drm_plane_helper.c drm/crtc-helper: Add a drm_crtc_helper_atomic_check() helper 2022-10-13 09:17:05 +02:00
drm_prime.c drm: Assert held reservation lock for dma-buf mmapping 2022-11-11 23:49:47 +03:00
drm_print.c drm_print: add _ddebug descriptor to drm_*dbg prototypes 2022-09-24 15:02:02 +02:00
drm_privacy_screen.c
drm_privacy_screen_x86.c
drm_probe_helper.c drm/fb-helper: Remove unnecessary include statements 2022-11-05 17:12:04 +01:00
drm_property.c
drm_rect.c gpu/drm: fix repeated words in comments 2022-10-24 09:27:04 +02:00
drm_scatter.c
drm_self_refresh_helper.c
drm_simple_kms_helper.c drm/atomic-helper: Add {begin,end}_fb_access to plane helpers 2022-11-08 17:10:27 +01:00
drm_syncobj.c
drm_sysfs.c Driver Core changes for 6.2-rc1 2022-12-16 03:54:54 -08:00
drm_trace.h
drm_trace_points.c
drm_vblank.c
drm_vblank_work.c
drm_vm.c
drm_vma_manager.c
drm_writeback.c