All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrzej Pietrasiewicz <andrzej.p@collabora.com>
To: dri-devel@lists.freedesktop.org
Cc: "Y.C. Chen" <yc_chen@aspeedtech.com>,
	"Heiko Stübner" <heiko@sntech.de>,
	"Sam Ravnborg" <sam@ravnborg.org>,
	"Neil Armstrong" <narmstrong@baylibre.com>,
	"David Airlie" <airlied@linux.ie>,
	"Douglas Anderson" <dianders@chromium.org>,
	"Andrzej Hajda" <a.hajda@samsung.com>,
	"Laurent Pinchart" <Laurent.pinchart@ideasonboard.com>,
	"Benjamin Gaignard" <benjamin.gaignard@linaro.org>,
	kernel@collabora.com, "Fabio Estevam" <festevam@gmail.com>,
	"David (ChunMing) Zhou" <David1.Zhou@amd.com>,
	linux-samsung-soc@vger.kernel.org,
	linux-rockchip@lists.infradead.org,
	"Joonyoung Shim" <jy0922.shim@samsung.com>,
	"Oleksandr Andrushchenko" <oleksandr_andrushchenko@epam.com>,
	"Vincent Abriou" <vincent.abriou@st.com>,
	"Krzysztof Kozlowski" <krzk@kernel.org>,
	"Jonathan Hunter" <jonathanh@nvidia.com>,
	"Maxime Ripard" <maxime.ripard@bootlin.com>,
	"Chen-Yu Tsai" <wens@csie.org>, "Kukjin Kim" <kgene@kernel.org>
Subject: [PATCH v5 00/24] Associate ddc adapters with connectors
Date: Wed, 24 Jul 2019 15:59:22 +0200	[thread overview]
Message-ID: <cover.1563960855.git.andrzej.p@collabora.com> (raw)

It is difficult for a user to know which of the i2c adapters is for which
drm connector. This series addresses this problem.

The idea is to have a symbolic link in connector's sysfs directory, e.g.:

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

The user then knows that their card0-HDMI-A-1 uses i2c-2 and can e.g. run
ddcutil:

ddcutil -b 2 getvcp 0x10
VCP code 0x10 (Brightness): current value =    90, max value =   100

The first patch in the series adds struct i2c_adapter pointer to struct
drm_connector. If the field is used by a particular driver, then an
appropriate symbolic link is created by the generic code, which is also added
by this patch.

Patch 2 adds a new variant of drm_connector_init(), see the changelog
below.

Patches 3..24 are examples of how to convert a driver to this new scheme.

v1..v2:

- used fixed name "ddc" for the symbolic link in order to make it easy for
userspace to find the i2c adapter

v2..v3:

- converted as many drivers as possible.

v3..v4:

- added Reviewed-by for patch 01/23
- moved "ddc" field assignment to before drm_connector_init() is called
in msm, vc4, sti, mgag200, ast, amdgpu, radeon
- simplified the code in amdgpu and radeon at the expense of some lines
exceeding 80 characters as per Alex Deucher's suggestion
- added i915

v4..v5:

- changed "include <linux/i2c.h>" to "struct i2c_adapter;"
in drm_connector.h, consequently, added "include <linux/i2c.h>"
in drm_sysfs.c.
- added "drm_connector_init_with_ddc()" variant to ensure that the ddc
field of drm_connector is preserved accross its invocation
- accordingly changed invocations of drm_connector_init() in the
touched drivers to use the new variant

@Benjamin
@Shawn
@Thomas

There were your Acked-by or Reviewed-by for some patches in v4, but now
that the patches use the newly added function I'm not sure I can still
include those tags without you actually confirming. Can I? Or can you
please re-review? 

TODO: nouveau, gma500, omapdrm, panel-simple - if applicable.
Other drivers are either already converted or don't mention neither
"ddc" nor "i2c_adapter".

Andrzej Pietrasiewicz (24):
  drm: Include ddc adapter pointer in struct drm_connector
  drm: Add drm_connector_init() variant with ddc
  drm/exynos: Provide ddc symlink in connector's sysfs
  drm: rockchip: Provide ddc symlink in rk3066_hdmi sysfs directory
  drm: rockchip: Provide ddc symlink in inno_hdmi sysfs directory
  drm/msm/hdmi: Provide ddc symlink in hdmi connector sysfs directory
  drm/sun4i: hdmi: Provide ddc symlink in sun4i hdmi connector sysfs
    directory
  drm/mediatek: Provide ddc symlink in hdmi connector sysfs directory
  drm/tegra: Provide ddc symlink in output connector sysfs directory
  drm/imx: imx-ldb: Provide ddc symlink in connector's sysfs
  drm/imx: imx-tve: Provide ddc symlink in connector's sysfs
  drm/vc4: Provide ddc symlink in connector sysfs directory
  drm: zte: Provide ddc symlink in hdmi connector sysfs directory
  drm: zte: Provide ddc symlink in vga connector sysfs directory
  drm/tilcdc: Provide ddc symlink in connector sysfs directory
  drm: sti: Provide ddc symlink in hdmi connector sysfs directory
  drm/mgag200: Provide ddc symlink in connector sysfs directory
  drm/ast: Provide ddc symlink in connector sysfs directory
  drm/bridge: dumb-vga-dac: Provide ddc symlink in connector sysfs
    directory
  drm/bridge: dw-hdmi: Provide ddc symlink in connector sysfs directory
  drm/bridge: ti-tfp410: Provide ddc symlink in connector sysfs
    directory
  drm/amdgpu: Provide ddc symlink in connector sysfs directory
  drm/radeon: Provide ddc symlink in connector sysfs directory
  drm/i915: Provide ddc symlink in hdmi connector sysfs directory

 .../gpu/drm/amd/amdgpu/amdgpu_connectors.c    |  95 ++++++++----
 drivers/gpu/drm/ast/ast_mode.c                |  13 +-
 drivers/gpu/drm/bridge/dumb-vga-dac.c         |  25 ++--
 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c     |  46 +++---
 drivers/gpu/drm/bridge/ti-tfp410.c            |  25 ++--
 drivers/gpu/drm/drm_connector.c               |  19 +++
 drivers/gpu/drm/drm_sysfs.c                   |   8 +
 drivers/gpu/drm/exynos/exynos_hdmi.c          |  17 ++-
 drivers/gpu/drm/i915/display/intel_hdmi.c     |  11 +-
 drivers/gpu/drm/imx/imx-ldb.c                 |  20 +--
 drivers/gpu/drm/imx/imx-tve.c                 |  14 +-
 drivers/gpu/drm/mediatek/mtk_hdmi.c           |  16 +-
 drivers/gpu/drm/mgag200/mgag200_mode.c        |  13 +-
 drivers/gpu/drm/msm/hdmi/hdmi_connector.c     |   6 +-
 drivers/gpu/drm/radeon/radeon_connectors.c    | 141 +++++++++++++-----
 drivers/gpu/drm/rockchip/inno_hdmi.c          |  23 +--
 drivers/gpu/drm/rockchip/rk3066_hdmi.c        |  24 +--
 drivers/gpu/drm/sti/sti_hdmi.c                |   6 +-
 drivers/gpu/drm/sun4i/sun4i_hdmi.h            |   1 -
 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c        |  21 +--
 drivers/gpu/drm/tegra/drm.h                   |   1 -
 drivers/gpu/drm/tegra/hdmi.c                  |   7 +-
 drivers/gpu/drm/tegra/output.c                |  12 +-
 drivers/gpu/drm/tegra/sor.c                   |  13 +-
 drivers/gpu/drm/tilcdc/tilcdc_tfp410.c        |   6 +-
 drivers/gpu/drm/vc4/vc4_hdmi.c                |  26 ++--
 drivers/gpu/drm/zte/zx_hdmi.c                 |  31 ++--
 drivers/gpu/drm/zte/zx_vga.c                  |  31 ++--
 include/drm/drm_connector.h                   |  16 ++
 29 files changed, 428 insertions(+), 259 deletions(-)

-- 
2.17.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

             reply	other threads:[~2019-07-24 13:59 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-24 13:59 Andrzej Pietrasiewicz [this message]
2019-07-24 13:59 ` [PATCH v5 01/24] drm: Include ddc adapter pointer in struct drm_connector Andrzej Pietrasiewicz
     [not found]   ` <e82d6aca4f8abc95834c8a36c101d153518bb1ac.1563960855.git.andrzej.p-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2019-07-26  6:37     ` Sam Ravnborg
2019-07-26  8:08       ` Sam Ravnborg
2019-07-26  8:08         ` Sam Ravnborg
2019-07-26 12:18       ` Andrzej Pietrasiewicz
2019-07-26 12:18         ` Andrzej Pietrasiewicz
2019-07-24 13:59 ` [PATCH v5 02/24] drm: Add drm_connector_init() variant with ddc Andrzej Pietrasiewicz
     [not found]   ` <53f5ded2971235e5b63c9a3ed4ed8bccf10c78f2.1563960855.git.andrzej.p-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2019-07-24 17:16     ` Thomas Zimmermann
2019-07-24 17:16       ` Thomas Zimmermann
2019-07-24 17:16       ` Thomas Zimmermann
2019-07-26  6:35     ` Sam Ravnborg
2019-07-29  8:42   ` Jani Nikula
2019-07-24 13:59 ` [PATCH v5 03/24] drm/exynos: Provide ddc symlink in connector's sysfs Andrzej Pietrasiewicz
2019-07-24 13:59 ` [PATCH v5 04/24] drm: rockchip: Provide ddc symlink in rk3066_hdmi sysfs directory Andrzej Pietrasiewicz
2019-07-24 13:59 ` [PATCH v5 05/24] drm: rockchip: Provide ddc symlink in inno_hdmi " Andrzej Pietrasiewicz
2019-07-24 13:59 ` [PATCH v5 06/24] drm/msm/hdmi: Provide ddc symlink in hdmi connector " Andrzej Pietrasiewicz
2019-07-24 13:59 ` [PATCH v5 08/24] drm/mediatek: " Andrzej Pietrasiewicz
2019-07-24 13:59 ` [PATCH v5 09/24] drm/tegra: Provide ddc symlink in output " Andrzej Pietrasiewicz
2019-07-24 13:59 ` [PATCH v5 10/24] drm/imx: imx-ldb: Provide ddc symlink in connector's sysfs Andrzej Pietrasiewicz
2019-07-24 13:59 ` [PATCH v5 11/24] drm/imx: imx-tve: " Andrzej Pietrasiewicz
2019-07-24 13:59 ` [PATCH v5 12/24] drm/vc4: Provide ddc symlink in connector sysfs directory Andrzej Pietrasiewicz
2019-07-24 13:59 ` [PATCH v5 13/24] drm: zte: Provide ddc symlink in hdmi " Andrzej Pietrasiewicz
2019-07-24 13:59 ` [PATCH v5 14/24] drm: zte: Provide ddc symlink in vga " Andrzej Pietrasiewicz
2019-07-24 13:59 ` [PATCH v5 15/24] drm/tilcdc: Provide ddc symlink in " Andrzej Pietrasiewicz
2019-07-24 13:59 ` [PATCH v5 16/24] drm: sti: Provide ddc symlink in hdmi " Andrzej Pietrasiewicz
2019-07-24 13:59 ` [PATCH v5 17/24] drm/mgag200: Provide ddc symlink in " Andrzej Pietrasiewicz
     [not found]   ` <f86dfa1ed6e84ab8b36a0b2c24df897bdb957294.1563960855.git.andrzej.p-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2019-07-24 17:17     ` Thomas Zimmermann
2019-07-24 13:59 ` [PATCH v5 18/24] drm/ast: " Andrzej Pietrasiewicz
2019-07-24 17:17   ` Thomas Zimmermann
2019-07-24 17:17     ` Thomas Zimmermann
2019-07-24 17:17     ` Thomas Zimmermann
2019-07-24 13:59 ` [PATCH v5 19/24] drm/bridge: dumb-vga-dac: " Andrzej Pietrasiewicz
2019-07-24 13:59 ` [PATCH v5 20/24] drm/bridge: dw-hdmi: " Andrzej Pietrasiewicz
2019-07-24 13:59 ` [PATCH v5 21/24] drm/bridge: ti-tfp410: " Andrzej Pietrasiewicz
2019-07-24 13:59 ` [PATCH v5 22/24] drm/amdgpu: " Andrzej Pietrasiewicz
     [not found] ` <cover.1563960855.git.andrzej.p-ZGY8ohtN/8qB+jHODAdFcQ@public.gmane.org>
2019-07-24 13:59   ` [PATCH v5 07/24] drm/sun4i: hdmi: Provide ddc symlink in sun4i hdmi " Andrzej Pietrasiewicz
2019-07-24 13:59   ` [PATCH v5 23/24] drm/radeon: Provide ddc symlink in " Andrzej Pietrasiewicz
2019-07-24 13:59   ` [PATCH v5 24/24] drm/i915: Provide ddc symlink in hdmi " Andrzej Pietrasiewicz
2019-07-24 14:19 ` ✗ Fi.CI.CHECKPATCH: warning for Associate ddc adapters with connectors (rev2) Patchwork
2019-07-24 16:37 ` ✓ Fi.CI.BAT: success " Patchwork
2019-07-24 19:47 ` ✓ Fi.CI.IGT: " Patchwork

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=cover.1563960855.git.andrzej.p@collabora.com \
    --to=andrzej.p@collabora.com \
    --cc=David1.Zhou@amd.com \
    --cc=Laurent.pinchart@ideasonboard.com \
    --cc=a.hajda@samsung.com \
    --cc=airlied@linux.ie \
    --cc=benjamin.gaignard@linaro.org \
    --cc=dianders@chromium.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=festevam@gmail.com \
    --cc=heiko@sntech.de \
    --cc=jonathanh@nvidia.com \
    --cc=jy0922.shim@samsung.com \
    --cc=kernel@collabora.com \
    --cc=kgene@kernel.org \
    --cc=krzk@kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=maxime.ripard@bootlin.com \
    --cc=narmstrong@baylibre.com \
    --cc=oleksandr_andrushchenko@epam.com \
    --cc=sam@ravnborg.org \
    --cc=vincent.abriou@st.com \
    --cc=wens@csie.org \
    --cc=yc_chen@aspeedtech.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: link
Be 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.