From: Andrzej Pietrasiewicz <andrzej.p@collabora.com> To: dri-devel@lists.freedesktop.org Cc: kernel@collabora.com, m.szyprowski@samsung.com, Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, Maxime Ripard <maxime.ripard@bootlin.com>, Sean Paul <sean@poorly.run>, David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>, Inki Dae <inki.dae@samsung.com>, Joonyoung Shim <jy0922.shim@samsung.com>, Seung-Woo Kim <sw0312.kim@samsung.com>, Kyungmin Park <kyungmin.park@samsung.com>, Kukjin Kim <kgene@kernel.org>, Krzysztof Kozlowski <krzk@kernel.org>, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org Subject: [PATCH v2 1/2] drm: Include ddc adapter pointer in struct drm_connector Date: Tue, 25 Jun 2019 12:24:40 +0200 [thread overview] Message-ID: <ef88f682401ae863a91e6c885d83a2756ae20b85.1561458051.git.andrzej.p@collabora.com> (raw) In-Reply-To: <cover.1561458051.git.andrzej.p@collabora.com> In-Reply-To: <cover.1561458051.git.andrzej.p@collabora.com> Add generic code which creates symbolic links in sysfs, pointing to ddc interface used by a particular video output. For example: ls -l /sys/class/drm/card0-HDMI-A-1/ddc lrwxrwxrwx 1 root root 0 Jun 24 10:42 /sys/class/drm/card0-HDMI-A-1/ddc \ -> ../../../../soc/13880000.i2c/i2c-2 This makes it easy for user to associate a display with its ddc adapter and use e.g. ddcutil to control the chosen monitor. This patch adds an i2c_adapter pointer to struct drm_connector. Particular drivers can then use it instead of using their own private instance. If a connector contains a ddc, then create a symbolic link in sysfs. Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com> --- drivers/gpu/drm/drm_sysfs.c | 7 +++++++ include/drm/drm_connector.h | 11 +++++++++++ 2 files changed, 18 insertions(+) diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c index ad10810bc972..26d359b39785 100644 --- a/drivers/gpu/drm/drm_sysfs.c +++ b/drivers/gpu/drm/drm_sysfs.c @@ -294,6 +294,9 @@ int drm_sysfs_connector_add(struct drm_connector *connector) /* Let userspace know we have a new connector */ drm_sysfs_hotplug_event(dev); + if (connector->ddc) + return sysfs_create_link(&connector->kdev->kobj, + &connector->ddc->dev.kobj, "ddc"); return 0; } @@ -301,6 +304,10 @@ void drm_sysfs_connector_remove(struct drm_connector *connector) { if (!connector->kdev) return; + + if (connector->ddc) + sysfs_remove_link(&connector->kdev->kobj, "ddc"); + DRM_DEBUG("removing \"%s\" from sysfs\n", connector->name); diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h index ca745d9feaf5..1ad3d1d54ba7 100644 --- a/include/drm/drm_connector.h +++ b/include/drm/drm_connector.h @@ -23,6 +23,7 @@ #ifndef __DRM_CONNECTOR_H__ #define __DRM_CONNECTOR_H__ +#include <linux/i2c.h> #include <linux/list.h> #include <linux/llist.h> #include <linux/ctype.h> @@ -1308,6 +1309,16 @@ struct drm_connector { * [0]: progressive, [1]: interlaced */ int audio_latency[2]; + + /** + * @ddc: associated ddc adapter. + * A connector usually has its associated ddc adapter. If a driver uses + * this field, then an appropriate symbolic link is created in connector + * sysfs directory to make it easy for the user to tell which i2c + * adapter is for a particular display. + */ + struct i2c_adapter *ddc; + /** * @null_edid_counter: track sinks that give us all zeros for the EDID. * Needed to workaround some HW bugs where we get all 0s -- 2.17.1
WARNING: multiple messages have this Message-ID (diff)
From: Andrzej Pietrasiewicz <andrzej.p@collabora.com> To: dri-devel@lists.freedesktop.org Cc: linux-samsung-soc@vger.kernel.org, Joonyoung Shim <jy0922.shim@samsung.com>, Maxime Ripard <maxime.ripard@bootlin.com>, Seung-Woo Kim <sw0312.kim@samsung.com>, Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, linux-kernel@vger.kernel.org, Krzysztof Kozlowski <krzk@kernel.org>, Inki Dae <inki.dae@samsung.com>, David Airlie <airlied@linux.ie>, Kyungmin Park <kyungmin.park@samsung.com>, Kukjin Kim <kgene@kernel.org>, Daniel Vetter <daniel@ffwll.ch>, kernel@collabora.com, Sean Paul <sean@poorly.run>, linux-arm-kernel@lists.infradead.org, m.szyprowski@samsung.com Subject: [PATCH v2 1/2] drm: Include ddc adapter pointer in struct drm_connector Date: Tue, 25 Jun 2019 12:24:40 +0200 [thread overview] Message-ID: <ef88f682401ae863a91e6c885d83a2756ae20b85.1561458051.git.andrzej.p@collabora.com> (raw) In-Reply-To: <cover.1561458051.git.andrzej.p@collabora.com> In-Reply-To: <cover.1561458051.git.andrzej.p@collabora.com> Add generic code which creates symbolic links in sysfs, pointing to ddc interface used by a particular video output. For example: ls -l /sys/class/drm/card0-HDMI-A-1/ddc lrwxrwxrwx 1 root root 0 Jun 24 10:42 /sys/class/drm/card0-HDMI-A-1/ddc \ -> ../../../../soc/13880000.i2c/i2c-2 This makes it easy for user to associate a display with its ddc adapter and use e.g. ddcutil to control the chosen monitor. This patch adds an i2c_adapter pointer to struct drm_connector. Particular drivers can then use it instead of using their own private instance. If a connector contains a ddc, then create a symbolic link in sysfs. Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com> --- drivers/gpu/drm/drm_sysfs.c | 7 +++++++ include/drm/drm_connector.h | 11 +++++++++++ 2 files changed, 18 insertions(+) diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c index ad10810bc972..26d359b39785 100644 --- a/drivers/gpu/drm/drm_sysfs.c +++ b/drivers/gpu/drm/drm_sysfs.c @@ -294,6 +294,9 @@ int drm_sysfs_connector_add(struct drm_connector *connector) /* Let userspace know we have a new connector */ drm_sysfs_hotplug_event(dev); + if (connector->ddc) + return sysfs_create_link(&connector->kdev->kobj, + &connector->ddc->dev.kobj, "ddc"); return 0; } @@ -301,6 +304,10 @@ void drm_sysfs_connector_remove(struct drm_connector *connector) { if (!connector->kdev) return; + + if (connector->ddc) + sysfs_remove_link(&connector->kdev->kobj, "ddc"); + DRM_DEBUG("removing \"%s\" from sysfs\n", connector->name); diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h index ca745d9feaf5..1ad3d1d54ba7 100644 --- a/include/drm/drm_connector.h +++ b/include/drm/drm_connector.h @@ -23,6 +23,7 @@ #ifndef __DRM_CONNECTOR_H__ #define __DRM_CONNECTOR_H__ +#include <linux/i2c.h> #include <linux/list.h> #include <linux/llist.h> #include <linux/ctype.h> @@ -1308,6 +1309,16 @@ struct drm_connector { * [0]: progressive, [1]: interlaced */ int audio_latency[2]; + + /** + * @ddc: associated ddc adapter. + * A connector usually has its associated ddc adapter. If a driver uses + * this field, then an appropriate symbolic link is created in connector + * sysfs directory to make it easy for the user to tell which i2c + * adapter is for a particular display. + */ + struct i2c_adapter *ddc; + /** * @null_edid_counter: track sinks that give us all zeros for the EDID. * Needed to workaround some HW bugs where we get all 0s -- 2.17.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-06-25 10:24 UTC|newest] Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-06-25 9:46 [PATCH 0/2] Associate ddc adapters with connectors Andrzej Pietrasiewicz 2019-06-25 9:46 ` Andrzej Pietrasiewicz 2019-06-25 9:46 ` Andrzej Pietrasiewicz 2019-06-25 9:46 ` [PATCH 1/2] drm: Include ddc adapter pointer in struct drm_connector Andrzej Pietrasiewicz 2019-06-25 9:46 ` Andrzej Pietrasiewicz 2019-06-25 9:46 ` Andrzej Pietrasiewicz 2019-06-25 9:46 ` [PATCH 2/2] drm/exynos: Provide ddc symlink in connector's sysfs Andrzej Pietrasiewicz 2019-06-25 9:46 ` Andrzej Pietrasiewicz 2019-06-25 9:46 ` Andrzej Pietrasiewicz 2019-06-25 10:03 ` [PATCH 0/2] Associate ddc adapters with connectors Russell King - ARM Linux admin 2019-06-25 10:03 ` Russell King - ARM Linux admin 2019-06-25 10:14 ` Andrzej Pietrasiewicz 2019-06-25 10:14 ` Andrzej Pietrasiewicz 2019-06-25 10:16 ` Russell King - ARM Linux admin 2019-06-25 10:16 ` Russell King - ARM Linux admin 2019-06-25 10:24 ` [PATCH v2 " Andrzej Pietrasiewicz 2019-06-25 10:24 ` Andrzej Pietrasiewicz 2019-06-25 10:24 ` Andrzej Pietrasiewicz [this message] 2019-06-25 10:24 ` [PATCH v2 1/2] drm: Include ddc adapter pointer in struct drm_connector Andrzej Pietrasiewicz 2019-06-25 14:21 ` Daniel Vetter 2019-06-25 14:21 ` Daniel Vetter 2019-06-25 10:24 ` [PATCH v2 2/2] drm/exynos: Provide ddc symlink in connector's sysfs Andrzej Pietrasiewicz 2019-06-25 10:24 ` Andrzej Pietrasiewicz 2019-06-25 13:36 ` [PATCH 0/2] Associate ddc adapters with connectors Emil Velikov 2019-06-25 13:36 ` Emil Velikov 2019-06-25 14:07 ` Daniel Vetter 2019-06-25 14:07 ` Daniel Vetter 2019-06-25 14:07 ` Daniel Vetter 2019-06-25 14:10 ` Russell King - ARM Linux admin 2019-06-25 14:10 ` Russell King - ARM Linux admin 2019-06-25 14:20 ` Daniel Vetter 2019-06-25 14:20 ` Daniel Vetter 2019-06-26 6:50 ` Andrzej Pietrasiewicz 2019-06-26 6:50 ` Andrzej Pietrasiewicz [not found] ` <3fb19371-db7d-f9dc-31a7-1ccd126f6784-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org> 2019-06-28 16:01 ` [PATCH v3 00/22] " Andrzej Pietrasiewicz [not found] ` <cover.1561735433.git.andrzej.p-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org> 2019-06-28 16:01 ` [PATCH v3 01/22] drm: Include ddc adapter pointer in struct drm_connector Andrzej Pietrasiewicz [not found] ` <d6381c020ea1c848a7044d830bdb0ec9663d1619.1561735433.git.andrzej.p-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org> 2019-06-30 8:12 ` Thomas Zimmermann [not found] ` <9b03d145-ec50-927c-55a8-dff1cd51d655-l3A5Bk7waGM@public.gmane.org> 2019-07-01 13:27 ` Andrzej Pietrasiewicz [not found] ` <cf1984e4-50af-302d-ef67-9ad530118c29-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org> 2019-07-01 14:41 ` Thomas Zimmermann [not found] ` <9e65f3c0-941d-d04c-5745-6b3a2965b990-l3A5Bk7waGM@public.gmane.org> 2019-07-05 9:44 ` Andrzej Hajda 2019-07-05 9:44 ` Andrzej Hajda 2019-07-05 9:44 ` Andrzej Hajda 2019-06-28 16:01 ` [PATCH v3 02/22] drm/exynos: Provide ddc symlink in connector's sysfs Andrzej Pietrasiewicz 2019-06-28 16:01 ` [PATCH v3 03/22] drm: rockchip: Provide ddc symlink in rk3066_hdmi sysfs directory Andrzej Pietrasiewicz 2019-06-28 16:01 ` [PATCH v3 04/22] drm: rockchip: Provide ddc symlink in inno_hdmi " Andrzej Pietrasiewicz 2019-06-28 16:01 ` [PATCH v3 05/22] drm/msm/hdmi: Provide ddc symlink in hdmi connector " Andrzej Pietrasiewicz 2019-06-28 16:01 ` [PATCH v3 06/22] drm/sun4i: hdmi: Provide ddc symlink in sun4i " Andrzej Pietrasiewicz 2019-06-28 16:01 ` [PATCH v3 07/22] drm/mediatek: Provide ddc symlink in " Andrzej Pietrasiewicz 2019-06-28 16:01 ` [PATCH v3 08/22] drm/tegra: Provide ddc symlink in output " Andrzej Pietrasiewicz 2019-06-28 16:01 ` [PATCH v3 09/22] drm/imx: imx-ldb: Provide ddc symlink in connector's sysfs Andrzej Pietrasiewicz 2019-06-28 16:01 ` [PATCH v3 10/22] drm/imx: imx-tve: " Andrzej Pietrasiewicz 2019-06-28 16:01 ` [PATCH v3 11/22] drm/vc4: Provide ddc symlink in connector sysfs directory Andrzej Pietrasiewicz 2019-06-28 16:01 ` [PATCH v3 12/22] drm: zte: Provide ddc symlink in hdmi " Andrzej Pietrasiewicz 2019-06-28 16:01 ` [PATCH v3 13/22] drm: zte: Provide ddc symlink in vga " Andrzej Pietrasiewicz 2019-06-28 16:01 ` [PATCH v3 14/22] drm/tilcdc: Provide ddc symlink in " Andrzej Pietrasiewicz 2019-06-28 16:01 ` [PATCH v3 15/22] drm: sti: Provide ddc symlink in hdmi " Andrzej Pietrasiewicz 2019-06-28 16:01 ` [PATCH v3 16/22] drm/mgag200: Provide ddc symlink in " Andrzej Pietrasiewicz 2019-06-28 16:01 ` [PATCH v3 17/22] drm/ast: " Andrzej Pietrasiewicz 2019-06-28 16:01 ` [PATCH v3 18/22] drm/bridge: dumb-vga-dac: " Andrzej Pietrasiewicz 2019-06-28 16:01 ` [PATCH v3 19/22] drm/bridge: dw-hdmi: " Andrzej Pietrasiewicz 2019-06-28 16:01 ` [PATCH v3 20/22] drm/bridge: ti-tfp410: " Andrzej Pietrasiewicz 2019-06-28 16:01 ` [PATCH v3 21/22] drm/amdgpu: " Andrzej Pietrasiewicz [not found] ` <5e355b8bec8fb3907566a741db8cc3e356246a32.1561735433.git.andrzej.p-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org> 2019-07-02 20:54 ` Alex Deucher [not found] ` <CADnq5_MrVoScVFgj3TP2Z+Ky8_32k=Cou5jebuMT5gE1+GZ0cA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2019-07-04 13:17 ` Andrzej Pietrasiewicz [not found] ` <fc26ac17-dc18-f995-53cf-42b50754c916-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org> 2019-07-05 20:17 ` Alex Deucher 2019-06-28 16:01 ` [PATCH v3 22/22] drm/radeon: " Andrzej Pietrasiewicz 2019-07-02 20:56 ` Alex Deucher 2019-06-28 16:45 ` [PATCH v3 00/22] Associate ddc adapters with connectors Daniel Vetter [not found] ` <20190628164514.GS12905-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org> 2019-07-02 15:08 ` Emil Velikov 2019-07-02 15:08 ` Emil Velikov 2019-07-02 15:08 ` Emil Velikov 2019-07-02 15:08 ` Emil Velikov 2019-06-28 16:11 ` Laurent Pinchart [not found] ` <20190628161137.GH4779-N3hz7ZxfLydczECFQUw77jytWr6r+dGw0E9HWUfgJXw@public.gmane.org> 2019-07-05 8:38 ` Andrzej Pietrasiewicz [not found] ` <44f98134-bc8a-133a-b702-589f007b175e-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org> 2019-07-05 8:39 ` Laurent Pinchart
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=ef88f682401ae863a91e6c885d83a2756ae20b85.1561458051.git.andrzej.p@collabora.com \ --to=andrzej.p@collabora.com \ --cc=airlied@linux.ie \ --cc=daniel@ffwll.ch \ --cc=dri-devel@lists.freedesktop.org \ --cc=inki.dae@samsung.com \ --cc=jy0922.shim@samsung.com \ --cc=kernel@collabora.com \ --cc=kgene@kernel.org \ --cc=krzk@kernel.org \ --cc=kyungmin.park@samsung.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-samsung-soc@vger.kernel.org \ --cc=m.szyprowski@samsung.com \ --cc=maarten.lankhorst@linux.intel.com \ --cc=maxime.ripard@bootlin.com \ --cc=sean@poorly.run \ --cc=sw0312.kim@samsung.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.