[PATCH v10 0/3] drivers: ddcci: add drivers for DDCCI

From: Yusuf Khan
Date: Sun Apr 03 2022 - 19:09:50 EST


This patch adds the DDCCI driver by Christoph Grenz into the kernel.
The original gitlab page is loacted at https://gitlab.com/ddcci-driv
er-linux/ddcci-driver-linux/-/tree/master.

DDC/CI is a control protocol for monitor settings supported by most
monitors since about 2005. A chardev and sysfs interface is provided.
A backlight driver using DDCCI is also provided in the seccond patch.

Signed-off-by: Yusuf Khan <yusisamerican@xxxxxxxxx>
Signed-off-by: Christoph Grenz <christophg+lkml@xxxxxxxxxxxxx>
---
v2: Fix typos.

v3: Add documentation, move files around, replace semaphores with
mutexes, and replaced <asm-generic/fcntl.h> with <linux/fcntl.h>.
"imirkin"(which due to his involvement in the dri-devel irc channel
I cant help but assume to be a DRM developer) said that the DDC/CI
bus does not intefere with the buses that DRM is involved with.

v4: Move some documentation, fix grammer mistakes, remove usages of
likely(), and clarify some documentation.

v5: Fix grammer mistakes, remove usages of likely(), and clarify
some documentation.

v6: Change contact information to reference Christoph Grenz.

v7: Remove all instances of the unlikely() macro.

v8: Modify documentation to provide updated date and kernel
documentation, fix SPDX lines, use isalpha instead of redefining
logic, change maximum amount of bytes that can be written to be
conformant with DDC/CI specification, prevent userspace from holding
locks with the open file descriptor, remove ddcci_cdev_seek, dont
refine sysfs_emit() logic, use EXPORT_SYMBOL_GPL instead of
EXPORT_SYMBOL, remove ddcci_device_remove_void, remove module
paramaters and version, and split into 2 patches.

v9: Fix IS_ANY_ID matching for compilers and archs where char is
unsigned char and use the cannonical patch format.
Reported-by: kernel test robot <lkp@xxxxxxxxx>

v10: Change patch title to "drivers: ddcci: add drivers for DDCCI
and change" and change patch descriptions to add more detailed
explanations of function.

Patch 1: Add the main DDCCI component.

Patch 2: Add the backlight driver that utilizes the DDCCI driver.

Patch 3: Add documentation for the DDCCI drivers.

Yusuf Khan (3):
drivers: ddcci: add drivers for DDCCI
drivers: ddcci: add drivers for DDCCI
drivers: ddcci: add drivers for DDCCI

Documentation/ABI/testing/sysfs-driver-ddcci | 57 +
Documentation/driver-api/ddcci.rst | 122 ++
drivers/char/Kconfig | 11 +
drivers/char/Makefile | 1 +
drivers/char/ddcci.c | 1805 ++++++++++++++++++
drivers/video/backlight/Kconfig | 11 +
drivers/video/backlight/Makefile | 1 +
drivers/video/backlight/ddcci-backlight.c | 411 ++++
include/linux/ddcci.h | 163 ++
9 files changed, 2582 insertions(+)
create mode 100644 Documentation/ABI/testing/sysfs-driver-ddcci
create mode 100644 Documentation/driver-api/ddcci.rst
create mode 100644 drivers/char/ddcci.c
create mode 100644 drivers/video/backlight/ddcci-backlight.c
create mode 100644 include/linux/ddcci.h

--
2.25.1