This is the second version of the RFC following the comments given on the first version. Nothing materially has changed in regard to how accel devices are registered and exposed to user-space. The changes are mostly re-factoring according to the comments. Changes since v1: - Instead of embedding the accel code inside drm core functions, create accel_drv.c to hold all the new core code and call that code from DRM core. - Replace deprecated IDR with xarray to manage the accel minors. - Remove all #ifdef from drm_drv.c. Instead, there are empty inline implementations in a new header file drm_accel.h (in include/drm/) that will be compiled in case CONFIG_ACCEL is set to 'N'. - Patch-set organization is a bit different: - Patch 1 introduces the accel major code and the new Kconfig. - Patch 2 introduces the accel minor code. - Patch 3 adds the call to accel functions from DRM core code. I still haven't added formal documentation as I want to make sure the general design of the new version is acceptable. If there won't be any major comments, I'll add the documentation and send the next version as the version to be merged to drm-next. The patches are in the following repo: https://git.kernel.org/pub/scm/linux/kernel/git/ogabbay/accel.git/log/?h=accel_v2 The HEAD of that branch is a commit adding a dummy driver that registers an accel device using the new framework. This can be served as a simple reference. v1 cover letter: https://lkml.org/lkml/2022/10/22/544 Thanks, Oded. Oded Gabbay (3): drivers/accel: define kconfig and register a new major accel: add dedicated minor for accelerator devices drm: initialize accel framework Documentation/admin-guide/devices.txt | 5 + MAINTAINERS | 8 + drivers/Kconfig | 2 + drivers/Makefile | 3 + drivers/accel/Kconfig | 24 +++ drivers/accel/Makefile | 10 + drivers/accel/accel_drv.c | 281 ++++++++++++++++++++++++++ drivers/gpu/drm/drm_drv.c | 98 ++++++--- drivers/gpu/drm/drm_file.c | 2 +- drivers/gpu/drm/drm_sysfs.c | 24 ++- include/drm/drm_accel.h | 58 ++++++ include/drm/drm_device.h | 3 + include/drm/drm_drv.h | 8 + include/drm/drm_file.h | 21 +- 14 files changed, 513 insertions(+), 34 deletions(-) create mode 100644 drivers/accel/Kconfig create mode 100644 drivers/accel/Makefile create mode 100644 drivers/accel/accel_drv.c create mode 100644 include/drm/drm_accel.h -- 2.25.1