linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Review required [Was: Associate ddc adapters with connectors]
       [not found] ` <20190726183520.GA22572@ravnborg.org>
@ 2019-07-26 18:55   ` Sam Ravnborg
  2019-07-31  8:00     ` Neil Armstrong
  0 siblings, 1 reply; 10+ messages in thread
From: Sam Ravnborg @ 2019-07-26 18:55 UTC (permalink / raw)
  To: Andrzej Pietrasiewicz
  Cc: Neil Armstrong, David Airlie, Liviu Dudau, dri-devel,
	Douglas Anderson, Thierry Reding, Laurent Pinchart, kernel,
	linux-samsung-soc, Jyri Sarha, Vincent Abriou,
	Krzysztof Kozlowski, Jonathan Hunter, linux-rockchip,
	Chen-Yu Tsai, Kukjin Kim, NXP Linux Team, Dave Airlie, intel-gfx,
	freedreno, linux-tegra, Jonas Karlman, linux-arm-msm,
	Maxime Ripard, Mamta Shukla, linux-mediatek, Rodrigo Vivi,
	Matthias Brugger, Thomas Gleixner, Sean Paul,
	Pengutronix Kernel Team, linux-arm-kernel, Jernej Skrabec,
	amd-gfx, Tomi Valkeinen, Thomas Zimmermann, Seung-Woo Kim,
	linux-kernel, Todor Tomov, Kyungmin Park, Huang Rui,
	Greg Kroah-Hartman, Alex Deucher, Shawn Guo,
	Christian König, Gerd Hoffmann

Hi all.

Andrzej have done a good job following up on feedback and this series is
now ready.

We need ack on the patches touching the individual drivers before we can
proceed.
Please check your drivers and get back.

	Sam

> Hi Andezej.
> 
> On Fri, Jul 26, 2019 at 07:22:54PM +0200, Andrzej Pietrasiewicz wrote:
> > 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.
> > 
> ...
> > 
> > v5..v6:
> > 
> > - improved subject line of patch 1
> > - added kernel-doc for drm_connector_init_with_ddc()
> > - improved kernel-doc for the ddc field of struct drm_connector
> > - added Reviewed-by in patches 17 and 18
> > - added Acked-by in patch 2
> > - made the ownership of ddc i2c_adapter explicit in all patches,
> > this made the affected patches much simpler
> 
> Looks good now.
> Patch 1 and 2 are:
> Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
> 
> The remaining patches are:
> Acked-by: Sam Ravnborg <sam@ravnborg.org>
> 
> 	Sam
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Review required [Was: Associate ddc adapters with connectors]
  2019-07-26 18:55   ` Review required [Was: Associate ddc adapters with connectors] Sam Ravnborg
@ 2019-07-31  8:00     ` Neil Armstrong
  2019-07-31 10:40       ` Sam Ravnborg
  0 siblings, 1 reply; 10+ messages in thread
From: Neil Armstrong @ 2019-07-31  8:00 UTC (permalink / raw)
  To: Sam Ravnborg, Andrzej Pietrasiewicz
  Cc: David Airlie, Liviu Dudau, dri-devel, Douglas Anderson,
	Thierry Reding, Laurent Pinchart, kernel, linux-samsung-soc,
	Jyri Sarha, Vincent Abriou, Krzysztof Kozlowski, Jonathan Hunter,
	linux-rockchip, Chen-Yu Tsai, Kukjin Kim, NXP Linux Team,
	Dave Airlie, intel-gfx, freedreno, linux-tegra, Jonas Karlman,
	linux-arm-msm, Maxime Ripard, Mamta Shukla, linux-mediatek,
	Rodrigo Vivi, Matthias Brugger, Thomas Gleixner, Sean Paul,
	Pengutronix Kernel Team, linux-arm-kernel, Jernej Skrabec,
	amd-gfx, Tomi Valkeinen, Thomas Zimmermann, Seung-Woo Kim,
	linux-kernel, Todor Tomov, Kyungmin Park, Huang Rui,
	Greg Kroah-Hartman, Alex Deucher, Shawn Guo,
	Christian König, Gerd Hoffmann

Hi Sam,

On 26/07/2019 20:55, Sam Ravnborg wrote:
> Hi all.
> 
> Andrzej have done a good job following up on feedback and this series is
> now ready.
> 
> We need ack on the patches touching the individual drivers before we can
> proceed.
> Please check your drivers and get back.

I can apply all core and maintainer-acked patches for now :
1, 2, 7, 10, 11, 16, 17, 18, 19, 20, 21, 22, 23

and Andrzej can resend not applied patches with Yours and Emil's Reviewed-by,
so we can wait a few more days to apply them.

Neil

> 
> 	Sam
> 
>> Hi Andezej.
>>
>> On Fri, Jul 26, 2019 at 07:22:54PM +0200, Andrzej Pietrasiewicz wrote:
>>> 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.
>>>
>> ...
>>>
>>> v5..v6:
>>>
>>> - improved subject line of patch 1
>>> - added kernel-doc for drm_connector_init_with_ddc()
>>> - improved kernel-doc for the ddc field of struct drm_connector
>>> - added Reviewed-by in patches 17 and 18
>>> - added Acked-by in patch 2
>>> - made the ownership of ddc i2c_adapter explicit in all patches,
>>> this made the affected patches much simpler
>>
>> Looks good now.
>> Patch 1 and 2 are:
>> Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
>>
>> The remaining patches are:
>> Acked-by: Sam Ravnborg <sam@ravnborg.org>
>>
>> 	Sam
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/dri-devel


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Review required [Was: Associate ddc adapters with connectors]
  2019-07-31  8:00     ` Neil Armstrong
@ 2019-07-31 10:40       ` Sam Ravnborg
  2019-07-31 13:10         ` Andrzej Pietrasiewicz
  0 siblings, 1 reply; 10+ messages in thread
From: Sam Ravnborg @ 2019-07-31 10:40 UTC (permalink / raw)
  To: Neil Armstrong
  Cc: Andrzej Pietrasiewicz, David Airlie, Liviu Dudau, dri-devel,
	linux-kernel, Matthias Brugger, Thierry Reding, Laurent Pinchart,
	Shawn Guo, kernel, linux-samsung-soc, Sean Paul,
	Krzysztof Kozlowski, Jonathan Hunter, linux-rockchip,
	Chen-Yu Tsai, Kukjin Kim, NXP Linux Team, Dave Airlie,
	Thomas Zimmermann, Jonas Karlman, linux-arm-msm, intel-gfx,
	Jyri Sarha, Mamta Shukla, linux-mediatek, Maxime Ripard,
	Rodrigo Vivi, linux-tegra, Thomas Gleixner, Vincent Abriou,
	linux-arm-kernel, Jernej Skrabec, amd-gfx, Tomi Valkeinen,
	Greg Kroah-Hartman, Seung-Woo Kim, Douglas Anderson, Todor Tomov,
	Kyungmin Park, Huang Rui, Pengutronix Kernel Team, Alex Deucher,
	freedreno, Christian König, Gerd Hoffmann

Hi Neil.

On Wed, Jul 31, 2019 at 10:00:14AM +0200, Neil Armstrong wrote:
> Hi Sam,
> 
> On 26/07/2019 20:55, Sam Ravnborg wrote:
> > Hi all.
> > 
> > Andrzej have done a good job following up on feedback and this series is
> > now ready.
> > 
> > We need ack on the patches touching the individual drivers before we can
> > proceed.
> > Please check your drivers and get back.
> 
> I can apply all core and maintainer-acked patches for now :
> 1, 2, 7, 10, 11, 16, 17, 18, 19, 20, 21, 22, 23
> 
> and Andrzej can resend not applied patches with Yours and Emil's Reviewed-by,
> so we can wait a few more days to apply them.

Sounds like a good plan.
Thanks for thaking care of this.

	Sam

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Review required [Was: Associate ddc adapters with connectors]
  2019-07-31 10:40       ` Sam Ravnborg
@ 2019-07-31 13:10         ` Andrzej Pietrasiewicz
  2019-07-31 14:22           ` Neil Armstrong
  0 siblings, 1 reply; 10+ messages in thread
From: Andrzej Pietrasiewicz @ 2019-07-31 13:10 UTC (permalink / raw)
  To: Sam Ravnborg, Neil Armstrong
  Cc: David Airlie, Liviu Dudau, dri-devel, linux-kernel,
	Matthias Brugger, Thierry Reding, Laurent Pinchart, Shawn Guo,
	kernel, linux-samsung-soc, Sean Paul, Krzysztof Kozlowski,
	Jonathan Hunter, linux-rockchip, Chen-Yu Tsai, Kukjin Kim,
	NXP Linux Team, Dave Airlie, Thomas Zimmermann, Jonas Karlman,
	linux-arm-msm, intel-gfx, Jyri Sarha, Mamta Shukla,
	linux-mediatek, Maxime Ripard, Rodrigo Vivi, linux-tegra,
	Thomas Gleixner, Vincent Abriou, linux-arm-kernel,
	Jernej Skrabec, amd-gfx, Tomi Valkeinen, Greg Kroah-Hartman,
	Seung-Woo Kim, Douglas Anderson, Todor Tomov, Kyungmin Park,
	Huang Rui, Pengutronix Kernel Team, Alex Deucher, freedreno,
	Christian König, Gerd Hoffmann

W dniu 31.07.2019 o 12:40, Sam Ravnborg pisze:
> Hi Neil.
> 
> On Wed, Jul 31, 2019 at 10:00:14AM +0200, Neil Armstrong wrote:
>> Hi Sam,
>>
>> On 26/07/2019 20:55, Sam Ravnborg wrote:
>>> Hi all.
>>>
>>> Andrzej have done a good job following up on feedback and this series is
>>> now ready.
>>>
>>> We need ack on the patches touching the individual drivers before we can
>>> proceed.
>>> Please check your drivers and get back.
>>
>> I can apply all core and maintainer-acked patches for now :
>> 1, 2, 7, 10, 11, 16, 17, 18, 19, 20, 21, 22, 23
>>
>> and Andrzej can resend not applied patches with Yours and Emil's Reviewed-by,
>> so we can wait a few more days to apply them.
> 
> Sounds like a good plan.
> Thanks for thaking care of this.

When is it good time to resend patches 3, 4, 5, 6, 8, 9, 12, 13, 14, 15, 24 as a
new series?

Andrzej

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Review required [Was: Associate ddc adapters with connectors]
  2019-07-31 13:10         ` Andrzej Pietrasiewicz
@ 2019-07-31 14:22           ` Neil Armstrong
  2019-07-31 15:32             ` Neil Armstrong
  0 siblings, 1 reply; 10+ messages in thread
From: Neil Armstrong @ 2019-07-31 14:22 UTC (permalink / raw)
  To: Andrzej Pietrasiewicz, Sam Ravnborg
  Cc: David Airlie, Liviu Dudau, dri-devel, linux-kernel,
	Matthias Brugger, Thierry Reding, Laurent Pinchart, Shawn Guo,
	kernel, linux-samsung-soc, Sean Paul, Krzysztof Kozlowski,
	Jonathan Hunter, linux-rockchip, Chen-Yu Tsai, Kukjin Kim,
	NXP Linux Team, Dave Airlie, Thomas Zimmermann, Jonas Karlman,
	linux-arm-msm, intel-gfx, Jyri Sarha, Mamta Shukla,
	linux-mediatek, Maxime Ripard, Rodrigo Vivi, linux-tegra,
	Thomas Gleixner, Vincent Abriou, linux-arm-kernel,
	Jernej Skrabec, amd-gfx, Tomi Valkeinen, Greg Kroah-Hartman,
	Seung-Woo Kim, Douglas Anderson, Todor Tomov, Kyungmin Park,
	Huang Rui, Pengutronix Kernel Team, Alex Deucher, freedreno,
	Christian König, Gerd Hoffmann

On 31/07/2019 15:10, Andrzej Pietrasiewicz wrote:
> W dniu 31.07.2019 o 12:40, Sam Ravnborg pisze:
>> Hi Neil.
>>
>> On Wed, Jul 31, 2019 at 10:00:14AM +0200, Neil Armstrong wrote:
>>> Hi Sam,
>>>
>>> On 26/07/2019 20:55, Sam Ravnborg wrote:
>>>> Hi all.
>>>>
>>>> Andrzej have done a good job following up on feedback and this series is
>>>> now ready.
>>>>
>>>> We need ack on the patches touching the individual drivers before we can
>>>> proceed.
>>>> Please check your drivers and get back.
>>>
>>> I can apply all core and maintainer-acked patches for now :
>>> 1, 2, 7, 10, 11, 16, 17, 18, 19, 20, 21, 22, 23
>>>
>>> and Andrzej can resend not applied patches with Yours and Emil's Reviewed-by,
>>> so we can wait a few more days to apply them.
>>
>> Sounds like a good plan.
>> Thanks for thaking care of this.
> 
> When is it good time to resend patches 3, 4, 5, 6, 8, 9, 12, 13, 14, 15, 24 as a
> new series?

I'll ping you when everything is applied, build-tested and pushed on drm-misc-next

Neil

> 
> Andrzej


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Review required [Was: Associate ddc adapters with connectors]
  2019-07-31 14:22           ` Neil Armstrong
@ 2019-07-31 15:32             ` Neil Armstrong
       [not found]               ` <cover.1564591626.git.andrzej.p@collabora.com>
  0 siblings, 1 reply; 10+ messages in thread
From: Neil Armstrong @ 2019-07-31 15:32 UTC (permalink / raw)
  To: Andrzej Pietrasiewicz, Sam Ravnborg
  Cc: David Airlie, Liviu Dudau, dri-devel, linux-kernel,
	Matthias Brugger, Thierry Reding, Laurent Pinchart, Shawn Guo,
	kernel, linux-samsung-soc, Sean Paul, Krzysztof Kozlowski,
	Jonathan Hunter, linux-rockchip, Chen-Yu Tsai, Kukjin Kim,
	NXP Linux Team, Dave Airlie, Thomas Zimmermann, Jonas Karlman,
	linux-arm-msm, intel-gfx, Jyri Sarha, Mamta Shukla,
	linux-mediatek, Maxime Ripard, Rodrigo Vivi, linux-tegra,
	Thomas Gleixner, Vincent Abriou, linux-arm-kernel,
	Jernej Skrabec, amd-gfx, Tomi Valkeinen, Greg Kroah-Hartman,
	Seung-Woo Kim, Douglas Anderson, Todor Tomov, Kyungmin Park,
	Huang Rui, Pengutronix Kernel Team, Alex Deucher, freedreno,
	Christian König, Gerd Hoffmann

Hi Andrzej,

On 31/07/2019 16:22, Neil Armstrong wrote:
> On 31/07/2019 15:10, Andrzej Pietrasiewicz wrote:
>> W dniu 31.07.2019 o 12:40, Sam Ravnborg pisze:
>>> Hi Neil.
>>>
>>> On Wed, Jul 31, 2019 at 10:00:14AM +0200, Neil Armstrong wrote:
>>>> Hi Sam,
>>>>
>>>> On 26/07/2019 20:55, Sam Ravnborg wrote:
>>>>> Hi all.
>>>>>
>>>>> Andrzej have done a good job following up on feedback and this series is
>>>>> now ready.
>>>>>
>>>>> We need ack on the patches touching the individual drivers before we can
>>>>> proceed.
>>>>> Please check your drivers and get back.
>>>>
>>>> I can apply all core and maintainer-acked patches for now :
>>>> 1, 2, 7, 10, 11, 16, 17, 18, 19, 20, 21, 22, 23
>>>>
>>>> and Andrzej can resend not applied patches with Yours and Emil's Reviewed-by,
>>>> so we can wait a few more days to apply them.
>>>
>>> Sounds like a good plan.
>>> Thanks for thaking care of this.
>>
>> When is it good time to resend patches 3, 4, 5, 6, 8, 9, 12, 13, 14, 15, 24 as a
>> new series?
> 
> I'll ping you when everything is applied, build-tested and pushed on drm-misc-next

I pushed 1, 2, 7, 10, 11, 16, 17, 18, 19, 20, 21, 22, 23 :
bed7a2182de6 drm/radeon: Provide ddc symlink in connector sysfs directory
5b50fa2b35a4 drm/amdgpu: Provide ddc symlink in connector sysfs directory
cfb444552926 drm/bridge: ti-tfp410: Provide ddc symlink in connector sysfs directory
9ebc4d2140ad drm/bridge: dw-hdmi: Provide ddc symlink in connector sysfs directory
a4f9087e85de drm/bridge: dumb-vga-dac: Provide ddc symlink in connector sysfs directory
350fd554ee44 drm/ast: Provide ddc symlink in connector sysfs directory
9572ae176a10 drm/mgag200: Provide ddc symlink in connector sysfs directory
7058e76682d7 drm: sti: Provide ddc symlink in hdmi connector sysfs directory
2ae7eb372ed4 drm/imx: imx-tve: Provide ddc symlink in connector's sysfs
be0ec35940bc drm/imx: imx-ldb: Provide ddc symlink in connector's sysfs
1e8f17855ff8 drm/sun4i: hdmi: Provide ddc symlink in sun4i hdmi connector sysfs directory
100163df4203 drm: Add drm_connector_init() variant with ddc
e1a29c6c5955 drm: Add ddc link in sysfs created by drm_connector

Neil

> 
> Neil
> 
>>
>> Andrzej
> 


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 02/13] drm/radeon: Eliminate possible use of an uninitialized variable
       [not found]                 ` <cfff357a07bfa572baad058947f281b7095e1794.1564591626.git.andrzej.p@collabora.com>
@ 2019-08-01 12:15                   ` Neil Armstrong
  2019-08-01 16:36                     ` [PATCH] drm/radeon: Provide ddc symlink in connector sysfs directory Andrzej Pietrasiewicz
  0 siblings, 1 reply; 10+ messages in thread
From: Neil Armstrong @ 2019-08-01 12:15 UTC (permalink / raw)
  To: Andrzej Pietrasiewicz, dri-devel
  Cc: David Airlie, Bhawanpreet Lakha, Thierry Reding, Mamta Shukla,
	kernel, Anthony Koo, linux-samsung-soc, Tomi Valkeinen,
	David Francis, Kyungmin Park, Krzysztof Kozlowski,
	Jonathan Hunter, linux-rockchip, Kukjin Kim, linux-arm-kernel,
	linux-arm-msm, freedreno, linux-tegra, Leo Li, linux-kernel,
	intel-gfx, linux-mediatek, Jyri Sarha, Rodrigo Vivi,
	Matthias Brugger, Thomas Gleixner, Sean Paul, Allison Randal,
	amd-gfx, Greg Kroah-Hartman, Seung-Woo Kim, Nicholas Kazlauskas,
	Todor Tomov, Alex Deucher, Shawn Guo, Christian König

Hi Andrzej,

I had to revert the previous patch, so you should re-spin it entirely :

================================
After merging the drm-misc tree, today's linux-next build (x86_64
allmodconfig) failed like this:

drivers/gpu/drm/radeon/radeon_connectors.c: In function 'radeon_add_legacy_connector':
drivers/gpu/drm/radeon/radeon_connectors.c:2433:5: error: 'ddc' undeclared (first use in this function)
     ddc = &radeon_connector->ddc_bus->adapter;
     ^~~
drivers/gpu/drm/radeon/radeon_connectors.c:2433:5: note: each undeclared identifier is reported only once for each function it appears in

Caused by commit

  bed7a2182de6 ("drm/radeon: Provide ddc symlink in connector sysfs directory")

I have used the drm-misc tree from next-20190731 for today.
==================================

Neil

On 31/07/2019 18:58, Andrzej Pietrasiewicz wrote:
> ddc local variable is passed to drm_connector_init_with_ddc() and should
> be NULL if no ddc is available.
> 
> Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com>
> ---
>  drivers/gpu/drm/radeon/radeon_connectors.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
> index b3ad8d890801..d11131d03ed6 100644
> --- a/drivers/gpu/drm/radeon/radeon_connectors.c
> +++ b/drivers/gpu/drm/radeon/radeon_connectors.c
> @@ -1870,7 +1870,7 @@ radeon_add_atom_connector(struct drm_device *dev,
>  	struct radeon_connector_atom_dig *radeon_dig_connector;
>  	struct drm_encoder *encoder;
>  	struct radeon_encoder *radeon_encoder;
> -	struct i2c_adapter *ddc;
> +	struct i2c_adapter *ddc = NULL;
>  	uint32_t subpixel_order = SubPixelNone;
>  	bool shared_ddc = false;
>  	bool is_dp_bridge = false;
> 


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH] drm/radeon: Provide ddc symlink in connector sysfs directory
  2019-08-01 12:15                   ` [PATCH 02/13] drm/radeon: Eliminate possible use of an uninitialized variable Neil Armstrong
@ 2019-08-01 16:36                     ` Andrzej Pietrasiewicz
  0 siblings, 0 replies; 10+ messages in thread
From: Andrzej Pietrasiewicz @ 2019-08-01 16:36 UTC (permalink / raw)
  To: dri-devel
  Cc: kernel, narmstrong, Alex Deucher, Christian König,
	David (ChunMing) Zhou, David Airlie, Daniel Vetter, amd-gfx,
	linux-kernel

Use the ddc pointer provided by the generic connector.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com>
---
This is the same patch as in the series:

https://www.spinics.net/lists/dri-devel/msg220128.html

but this time without a bug.

radeon_add_legacy_connector() uses a local ddc variable, but it has
not been declared in the previous version of this patch.

Compile tested.

 drivers/gpu/drm/radeon/radeon_connectors.c | 143 +++++++++++++++------
 1 file changed, 107 insertions(+), 36 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
index c60d1a44d22a..62d37eddf99c 100644
--- a/drivers/gpu/drm/radeon/radeon_connectors.c
+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
@@ -1870,6 +1870,7 @@ radeon_add_atom_connector(struct drm_device *dev,
 	struct radeon_connector_atom_dig *radeon_dig_connector;
 	struct drm_encoder *encoder;
 	struct radeon_encoder *radeon_encoder;
+	struct i2c_adapter *ddc = NULL;
 	uint32_t subpixel_order = SubPixelNone;
 	bool shared_ddc = false;
 	bool is_dp_bridge = false;
@@ -1947,17 +1948,21 @@ radeon_add_atom_connector(struct drm_device *dev,
 		radeon_connector->con_priv = radeon_dig_connector;
 		if (i2c_bus->valid) {
 			radeon_connector->ddc_bus = radeon_i2c_lookup(rdev, i2c_bus);
-			if (radeon_connector->ddc_bus)
+			if (radeon_connector->ddc_bus) {
 				has_aux = true;
-			else
+				ddc = &radeon_connector->ddc_bus->adapter;
+			} else {
 				DRM_ERROR("DP: Failed to assign ddc bus! Check dmesg for i2c errors.\n");
+			}
 		}
 		switch (connector_type) {
 		case DRM_MODE_CONNECTOR_VGA:
 		case DRM_MODE_CONNECTOR_DVIA:
 		default:
-			drm_connector_init(dev, &radeon_connector->base,
-					   &radeon_dp_connector_funcs, connector_type);
+			drm_connector_init_with_ddc(dev, &radeon_connector->base,
+						    &radeon_dp_connector_funcs,
+						    connector_type,
+						    ddc);
 			drm_connector_helper_add(&radeon_connector->base,
 						 &radeon_dp_connector_helper_funcs);
 			connector->interlace_allowed = true;
@@ -1979,8 +1984,10 @@ radeon_add_atom_connector(struct drm_device *dev,
 		case DRM_MODE_CONNECTOR_HDMIA:
 		case DRM_MODE_CONNECTOR_HDMIB:
 		case DRM_MODE_CONNECTOR_DisplayPort:
-			drm_connector_init(dev, &radeon_connector->base,
-					   &radeon_dp_connector_funcs, connector_type);
+			drm_connector_init_with_ddc(dev, &radeon_connector->base,
+						    &radeon_dp_connector_funcs,
+						    connector_type,
+						    ddc);
 			drm_connector_helper_add(&radeon_connector->base,
 						 &radeon_dp_connector_helper_funcs);
 			drm_object_attach_property(&radeon_connector->base.base,
@@ -2027,8 +2034,10 @@ radeon_add_atom_connector(struct drm_device *dev,
 			break;
 		case DRM_MODE_CONNECTOR_LVDS:
 		case DRM_MODE_CONNECTOR_eDP:
-			drm_connector_init(dev, &radeon_connector->base,
-					   &radeon_lvds_bridge_connector_funcs, connector_type);
+			drm_connector_init_with_ddc(dev, &radeon_connector->base,
+						    &radeon_lvds_bridge_connector_funcs,
+						    connector_type,
+						    ddc);
 			drm_connector_helper_add(&radeon_connector->base,
 						 &radeon_dp_connector_helper_funcs);
 			drm_object_attach_property(&radeon_connector->base.base,
@@ -2042,13 +2051,18 @@ radeon_add_atom_connector(struct drm_device *dev,
 	} else {
 		switch (connector_type) {
 		case DRM_MODE_CONNECTOR_VGA:
-			drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type);
-			drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs);
 			if (i2c_bus->valid) {
 				radeon_connector->ddc_bus = radeon_i2c_lookup(rdev, i2c_bus);
 				if (!radeon_connector->ddc_bus)
 					DRM_ERROR("VGA: Failed to assign ddc bus! Check dmesg for i2c errors.\n");
+				else
+					ddc = &radeon_connector->ddc_bus->adapter;
 			}
+			drm_connector_init_with_ddc(dev, &radeon_connector->base,
+						    &radeon_vga_connector_funcs,
+						    connector_type,
+						    ddc);
+			drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs);
 			radeon_connector->dac_load_detect = true;
 			drm_object_attach_property(&radeon_connector->base.base,
 						      rdev->mode_info.load_detect_property,
@@ -2067,13 +2081,18 @@ radeon_add_atom_connector(struct drm_device *dev,
 			connector->doublescan_allowed = true;
 			break;
 		case DRM_MODE_CONNECTOR_DVIA:
-			drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type);
-			drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs);
 			if (i2c_bus->valid) {
 				radeon_connector->ddc_bus = radeon_i2c_lookup(rdev, i2c_bus);
 				if (!radeon_connector->ddc_bus)
 					DRM_ERROR("DVIA: Failed to assign ddc bus! Check dmesg for i2c errors.\n");
+				else
+					ddc = &radeon_connector->ddc_bus->adapter;
 			}
+			drm_connector_init_with_ddc(dev, &radeon_connector->base,
+						    &radeon_vga_connector_funcs,
+						    connector_type,
+						    ddc);
+			drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs);
 			radeon_connector->dac_load_detect = true;
 			drm_object_attach_property(&radeon_connector->base.base,
 						      rdev->mode_info.load_detect_property,
@@ -2098,13 +2117,18 @@ radeon_add_atom_connector(struct drm_device *dev,
 				goto failed;
 			radeon_dig_connector->igp_lane_info = igp_lane_info;
 			radeon_connector->con_priv = radeon_dig_connector;
-			drm_connector_init(dev, &radeon_connector->base, &radeon_dvi_connector_funcs, connector_type);
-			drm_connector_helper_add(&radeon_connector->base, &radeon_dvi_connector_helper_funcs);
 			if (i2c_bus->valid) {
 				radeon_connector->ddc_bus = radeon_i2c_lookup(rdev, i2c_bus);
 				if (!radeon_connector->ddc_bus)
 					DRM_ERROR("DVI: Failed to assign ddc bus! Check dmesg for i2c errors.\n");
+				else
+					ddc = &radeon_connector->ddc_bus->adapter;
 			}
+			drm_connector_init_with_ddc(dev, &radeon_connector->base,
+						    &radeon_dvi_connector_funcs,
+						    connector_type,
+						    ddc);
+			drm_connector_helper_add(&radeon_connector->base, &radeon_dvi_connector_helper_funcs);
 			subpixel_order = SubPixelHorizontalRGB;
 			drm_object_attach_property(&radeon_connector->base.base,
 						      rdev->mode_info.coherent_mode_property,
@@ -2155,13 +2179,18 @@ radeon_add_atom_connector(struct drm_device *dev,
 				goto failed;
 			radeon_dig_connector->igp_lane_info = igp_lane_info;
 			radeon_connector->con_priv = radeon_dig_connector;
-			drm_connector_init(dev, &radeon_connector->base, &radeon_dvi_connector_funcs, connector_type);
-			drm_connector_helper_add(&radeon_connector->base, &radeon_dvi_connector_helper_funcs);
 			if (i2c_bus->valid) {
 				radeon_connector->ddc_bus = radeon_i2c_lookup(rdev, i2c_bus);
 				if (!radeon_connector->ddc_bus)
 					DRM_ERROR("HDMI: Failed to assign ddc bus! Check dmesg for i2c errors.\n");
+				else
+					ddc = &radeon_connector->ddc_bus->adapter;
 			}
+			drm_connector_init_with_ddc(dev, &radeon_connector->base,
+						    &radeon_dvi_connector_funcs,
+						    connector_type,
+						    ddc);
+			drm_connector_helper_add(&radeon_connector->base, &radeon_dvi_connector_helper_funcs);
 			drm_object_attach_property(&radeon_connector->base.base,
 						      rdev->mode_info.coherent_mode_property,
 						      1);
@@ -2205,15 +2234,20 @@ radeon_add_atom_connector(struct drm_device *dev,
 				goto failed;
 			radeon_dig_connector->igp_lane_info = igp_lane_info;
 			radeon_connector->con_priv = radeon_dig_connector;
-			drm_connector_init(dev, &radeon_connector->base, &radeon_dp_connector_funcs, connector_type);
-			drm_connector_helper_add(&radeon_connector->base, &radeon_dp_connector_helper_funcs);
 			if (i2c_bus->valid) {
 				radeon_connector->ddc_bus = radeon_i2c_lookup(rdev, i2c_bus);
-				if (radeon_connector->ddc_bus)
+				if (radeon_connector->ddc_bus) {
 					has_aux = true;
-				else
+					ddc = &radeon_connector->ddc_bus->adapter;
+				} else {
 					DRM_ERROR("DP: Failed to assign ddc bus! Check dmesg for i2c errors.\n");
+				}
 			}
+			drm_connector_init_with_ddc(dev, &radeon_connector->base,
+						    &radeon_dp_connector_funcs,
+						    connector_type,
+						    ddc);
+			drm_connector_helper_add(&radeon_connector->base, &radeon_dp_connector_helper_funcs);
 			subpixel_order = SubPixelHorizontalRGB;
 			drm_object_attach_property(&radeon_connector->base.base,
 						      rdev->mode_info.coherent_mode_property,
@@ -2255,15 +2289,20 @@ radeon_add_atom_connector(struct drm_device *dev,
 				goto failed;
 			radeon_dig_connector->igp_lane_info = igp_lane_info;
 			radeon_connector->con_priv = radeon_dig_connector;
-			drm_connector_init(dev, &radeon_connector->base, &radeon_edp_connector_funcs, connector_type);
-			drm_connector_helper_add(&radeon_connector->base, &radeon_dp_connector_helper_funcs);
 			if (i2c_bus->valid) {
 				radeon_connector->ddc_bus = radeon_i2c_lookup(rdev, i2c_bus);
-				if (radeon_connector->ddc_bus)
+				if (radeon_connector->ddc_bus) {
 					has_aux = true;
-				else
+					ddc = &radeon_connector->ddc_bus->adapter;
+				} else {
 					DRM_ERROR("DP: Failed to assign ddc bus! Check dmesg for i2c errors.\n");
+				}
 			}
+			drm_connector_init_with_ddc(dev, &radeon_connector->base,
+						    &radeon_edp_connector_funcs,
+						    connector_type,
+						    ddc);
+			drm_connector_helper_add(&radeon_connector->base, &radeon_dp_connector_helper_funcs);
 			drm_object_attach_property(&radeon_connector->base.base,
 						      dev->mode_config.scaling_mode_property,
 						      DRM_MODE_SCALE_FULLSCREEN);
@@ -2274,7 +2313,10 @@ radeon_add_atom_connector(struct drm_device *dev,
 		case DRM_MODE_CONNECTOR_SVIDEO:
 		case DRM_MODE_CONNECTOR_Composite:
 		case DRM_MODE_CONNECTOR_9PinDIN:
-			drm_connector_init(dev, &radeon_connector->base, &radeon_tv_connector_funcs, connector_type);
+			drm_connector_init_with_ddc(dev, &radeon_connector->base,
+						    &radeon_tv_connector_funcs,
+						    connector_type,
+						    ddc);
 			drm_connector_helper_add(&radeon_connector->base, &radeon_tv_connector_helper_funcs);
 			radeon_connector->dac_load_detect = true;
 			drm_object_attach_property(&radeon_connector->base.base,
@@ -2294,13 +2336,18 @@ radeon_add_atom_connector(struct drm_device *dev,
 				goto failed;
 			radeon_dig_connector->igp_lane_info = igp_lane_info;
 			radeon_connector->con_priv = radeon_dig_connector;
-			drm_connector_init(dev, &radeon_connector->base, &radeon_lvds_connector_funcs, connector_type);
-			drm_connector_helper_add(&radeon_connector->base, &radeon_lvds_connector_helper_funcs);
 			if (i2c_bus->valid) {
 				radeon_connector->ddc_bus = radeon_i2c_lookup(rdev, i2c_bus);
 				if (!radeon_connector->ddc_bus)
 					DRM_ERROR("LVDS: Failed to assign ddc bus! Check dmesg for i2c errors.\n");
+				else
+					ddc = &radeon_connector->ddc_bus->adapter;
 			}
+			drm_connector_init_with_ddc(dev, &radeon_connector->base,
+						    &radeon_lvds_connector_funcs,
+						    connector_type,
+						    ddc);
+			drm_connector_helper_add(&radeon_connector->base, &radeon_lvds_connector_helper_funcs);
 			drm_object_attach_property(&radeon_connector->base.base,
 						      dev->mode_config.scaling_mode_property,
 						      DRM_MODE_SCALE_FULLSCREEN);
@@ -2344,6 +2391,7 @@ radeon_add_legacy_connector(struct drm_device *dev,
 	struct radeon_device *rdev = dev->dev_private;
 	struct drm_connector *connector;
 	struct radeon_connector *radeon_connector;
+	struct i2c_adapter *ddc = NULL;
 	uint32_t subpixel_order = SubPixelNone;
 
 	if (connector_type == DRM_MODE_CONNECTOR_Unknown)
@@ -2378,13 +2426,18 @@ radeon_add_legacy_connector(struct drm_device *dev,
 
 	switch (connector_type) {
 	case DRM_MODE_CONNECTOR_VGA:
-		drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type);
-		drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs);
 		if (i2c_bus->valid) {
 			radeon_connector->ddc_bus = radeon_i2c_lookup(rdev, i2c_bus);
 			if (!radeon_connector->ddc_bus)
 				DRM_ERROR("VGA: Failed to assign ddc bus! Check dmesg for i2c errors.\n");
+			else
+				ddc = &radeon_connector->ddc_bus->adapter;
 		}
+		drm_connector_init_with_ddc(dev, &radeon_connector->base,
+					    &radeon_vga_connector_funcs,
+					    connector_type,
+					    ddc);
+		drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs);
 		radeon_connector->dac_load_detect = true;
 		drm_object_attach_property(&radeon_connector->base.base,
 					      rdev->mode_info.load_detect_property,
@@ -2395,13 +2448,18 @@ radeon_add_legacy_connector(struct drm_device *dev,
 		connector->doublescan_allowed = true;
 		break;
 	case DRM_MODE_CONNECTOR_DVIA:
-		drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type);
-		drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs);
 		if (i2c_bus->valid) {
 			radeon_connector->ddc_bus = radeon_i2c_lookup(rdev, i2c_bus);
 			if (!radeon_connector->ddc_bus)
 				DRM_ERROR("DVIA: Failed to assign ddc bus! Check dmesg for i2c errors.\n");
+			else
+				ddc = &radeon_connector->ddc_bus->adapter;
 		}
+		drm_connector_init_with_ddc(dev, &radeon_connector->base,
+					    &radeon_vga_connector_funcs,
+					    connector_type,
+					    ddc);
+		drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs);
 		radeon_connector->dac_load_detect = true;
 		drm_object_attach_property(&radeon_connector->base.base,
 					      rdev->mode_info.load_detect_property,
@@ -2413,13 +2471,18 @@ radeon_add_legacy_connector(struct drm_device *dev,
 		break;
 	case DRM_MODE_CONNECTOR_DVII:
 	case DRM_MODE_CONNECTOR_DVID:
-		drm_connector_init(dev, &radeon_connector->base, &radeon_dvi_connector_funcs, connector_type);
-		drm_connector_helper_add(&radeon_connector->base, &radeon_dvi_connector_helper_funcs);
 		if (i2c_bus->valid) {
 			radeon_connector->ddc_bus = radeon_i2c_lookup(rdev, i2c_bus);
 			if (!radeon_connector->ddc_bus)
 				DRM_ERROR("DVI: Failed to assign ddc bus! Check dmesg for i2c errors.\n");
+			else
+				ddc = &radeon_connector->ddc_bus->adapter;
 		}
+		drm_connector_init_with_ddc(dev, &radeon_connector->base,
+					    &radeon_dvi_connector_funcs,
+					    connector_type,
+					    ddc);
+		drm_connector_helper_add(&radeon_connector->base, &radeon_dvi_connector_helper_funcs);
 		if (connector_type == DRM_MODE_CONNECTOR_DVII) {
 			radeon_connector->dac_load_detect = true;
 			drm_object_attach_property(&radeon_connector->base.base,
@@ -2436,7 +2499,10 @@ radeon_add_legacy_connector(struct drm_device *dev,
 	case DRM_MODE_CONNECTOR_SVIDEO:
 	case DRM_MODE_CONNECTOR_Composite:
 	case DRM_MODE_CONNECTOR_9PinDIN:
-		drm_connector_init(dev, &radeon_connector->base, &radeon_tv_connector_funcs, connector_type);
+		drm_connector_init_with_ddc(dev, &radeon_connector->base,
+					    &radeon_tv_connector_funcs,
+					    connector_type,
+					    ddc);
 		drm_connector_helper_add(&radeon_connector->base, &radeon_tv_connector_helper_funcs);
 		radeon_connector->dac_load_detect = true;
 		/* RS400,RC410,RS480 chipset seems to report a lot
@@ -2458,13 +2524,18 @@ radeon_add_legacy_connector(struct drm_device *dev,
 		connector->doublescan_allowed = false;
 		break;
 	case DRM_MODE_CONNECTOR_LVDS:
-		drm_connector_init(dev, &radeon_connector->base, &radeon_lvds_connector_funcs, connector_type);
-		drm_connector_helper_add(&radeon_connector->base, &radeon_lvds_connector_helper_funcs);
 		if (i2c_bus->valid) {
 			radeon_connector->ddc_bus = radeon_i2c_lookup(rdev, i2c_bus);
 			if (!radeon_connector->ddc_bus)
 				DRM_ERROR("LVDS: Failed to assign ddc bus! Check dmesg for i2c errors.\n");
+			else
+				ddc = &radeon_connector->ddc_bus->adapter;
 		}
+		drm_connector_init_with_ddc(dev, &radeon_connector->base,
+					    &radeon_lvds_connector_funcs,
+					    connector_type,
+					    ddc);
+		drm_connector_helper_add(&radeon_connector->base, &radeon_lvds_connector_helper_funcs);
 		drm_object_attach_property(&radeon_connector->base.base,
 					      dev->mode_config.scaling_mode_property,
 					      DRM_MODE_SCALE_FULLSCREEN);
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH 05/13] drm: rockchip: Provide ddc symlink in inno_hdmi sysfs directory
       [not found]                 ` <52272b8ebf403361ff96e04bf14f5a7389116f73.1564591626.git.andrzej.p@collabora.com>
@ 2019-08-06  8:36                   ` Heiko Stuebner
  0 siblings, 0 replies; 10+ messages in thread
From: Heiko Stuebner @ 2019-08-06  8:36 UTC (permalink / raw)
  To: Andrzej Pietrasiewicz, amd-gfx, linux-kernel, Sean Paul
  Cc: dri-devel, kernel, Harry Wentland, Leo Li, Alex Deucher,
	Christian König, David (ChunMing) Zhou, David Airlie,
	Daniel Vetter, Sandy Huang, linux-arm-kernel, linux-samsung-soc,
	intel-gfx, linux-mediatek, linux-arm-msm, freedreno,
	linux-rockchip, linux-tegra

Am Mittwoch, 31. Juli 2019, 18:58:14 CEST schrieb Andrzej Pietrasiewicz:
> Use the ddc pointer provided by the generic connector.
> 
> Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com>
> Acked-by: Sam Ravnborg <sam@ravnborg.org>
> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>

Acked-by: Heiko Stuebner <heiko@sntech.de>





^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 04/13] drm: rockchip: Provide ddc symlink in rk3066_hdmi sysfs directory
       [not found]                 ` <e3058e1973c9c7649a0818450188b5c3db442b3e.1564591626.git.andrzej.p@collabora.com>
@ 2019-08-06  8:36                   ` Heiko Stuebner
  0 siblings, 0 replies; 10+ messages in thread
From: Heiko Stuebner @ 2019-08-06  8:36 UTC (permalink / raw)
  To: Andrzej Pietrasiewicz, Sean Paul, Sam Ravnborg, amd-gfx
  Cc: dri-devel, kernel, Harry Wentland, Leo Li, Alex Deucher,
	Christian König, David (ChunMing) Zhou, David Airlie,
	Daniel Vetter, Inki Dae, Joonyoung Shim, Seung-Woo Kim,
	Kyungmin Park, Kukjin Kim, Krzysztof Kozlowski, Jani Nikula,
	Sandy Huang, linux-kernel, linux-arm-kernel, linux-samsung-soc,
	intel-gfx, linux-mediatek, linux-arm-msm, freedreno,
	linux-rockchip, linux-tegra

Am Mittwoch, 31. Juli 2019, 18:58:13 CEST schrieb Andrzej Pietrasiewicz:
> Use the ddc pointer provided by the generic connector.
> 
> Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com>
> Acked-by: Sam Ravnborg <sam@ravnborg.org>
> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>

Acked-by: Heiko Stuebner <heiko@sntech.de>




^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2019-08-06  8:37 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <cover.1564161140.git.andrzej.p@collabora.com>
     [not found] ` <20190726183520.GA22572@ravnborg.org>
2019-07-26 18:55   ` Review required [Was: Associate ddc adapters with connectors] Sam Ravnborg
2019-07-31  8:00     ` Neil Armstrong
2019-07-31 10:40       ` Sam Ravnborg
2019-07-31 13:10         ` Andrzej Pietrasiewicz
2019-07-31 14:22           ` Neil Armstrong
2019-07-31 15:32             ` Neil Armstrong
     [not found]               ` <cover.1564591626.git.andrzej.p@collabora.com>
     [not found]                 ` <cfff357a07bfa572baad058947f281b7095e1794.1564591626.git.andrzej.p@collabora.com>
2019-08-01 12:15                   ` [PATCH 02/13] drm/radeon: Eliminate possible use of an uninitialized variable Neil Armstrong
2019-08-01 16:36                     ` [PATCH] drm/radeon: Provide ddc symlink in connector sysfs directory Andrzej Pietrasiewicz
     [not found]                 ` <52272b8ebf403361ff96e04bf14f5a7389116f73.1564591626.git.andrzej.p@collabora.com>
2019-08-06  8:36                   ` [PATCH 05/13] drm: rockchip: Provide ddc symlink in inno_hdmi " Heiko Stuebner
     [not found]                 ` <e3058e1973c9c7649a0818450188b5c3db442b3e.1564591626.git.andrzej.p@collabora.com>
2019-08-06  8:36                   ` [PATCH 04/13] drm: rockchip: Provide ddc symlink in rk3066_hdmi " Heiko Stuebner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).