Re: 3.15.0-rc2 radeon HD 7480D [Aruba] blank display

From: Alex Deucher
Date: Tue Apr 22 2014 - 01:54:16 EST


On Mon, Apr 21, 2014 at 10:34 PM, Ken Moffat <zarniwhoop@xxxxxxxxxxxx> wrote:
> On Tue, Apr 22, 2014 at 03:31:06AM +0100, Ken Moffat wrote:
>
> [ resending, somehow lkml dropped out of the Cc. ]
>
>> On Tue, Apr 22, 2014 at 12:19:40AM +0100, Ken Moffat wrote:
>> > On Mon, Apr 21, 2014 at 05:29:27PM -0400, Ed Tomlinson wrote:
>>
>> > > Ken,
>> > >
>> > > You might want to try reverting:
>> > >
>> > > commit 379dfc25e257ffe10eb53b86d2375f7c0f4f33ef
>> > > Author: Alex Deucher <alexdeucher@xxxxxxxxx>
>> > > Date: Mon Apr 7 10:33:46 2014 -0400
>> > >
>> > > drm/radeon/dp: switch to the common i2c over aux code
>> > >
>> > > Provides a nice cleanup in radeon.
>> > >
>> > > Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
>> > > Signed-off-by: Christian KÃnig <christian.koenig@xxxxxxx>
>> > >
>> > > This fixed a similar problem here (see the drm pull thread for rc1)
>> > >
>> > > Thanks
>> > > Ed Tomlinson
>> >
>> > Tried reverting that from rc2, but it didn't help. Thanks anyway.
>> >
>>
>> Well, I *believed* I had created a patch for that commit, and
>> reverted it from -rc2 with patch -R. But I've now bisected through
>> drivers/gpu/drm between v3.14.0 and v3.15-rc2 and the bisection
>> pointed to that same commit, so I guess I did something wrong.
>>
>> There were a couple of other issues along the way (mounting nfs
>> hung on one commit, startx hung on several of the commits, but I've
>> marked those as "good" because I had a display, even if the system
>> was not usable).
>>
>> I've now gone back to linus' tree that I cloned a few hours ago,
>> i.e.
>> commit c089b229dfdd09d59a11d8bc2344bf8196d575ce
>> Merge: 9ac03675010a 0565103d1adb
>> Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
>> Date: Mon Apr 21 10:05:35 2014 -0700
>>
>> Merge branch 'for-linus' of
>> git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml
>>
>> created a branch, and *definitely* reverted
>> 379dfc25e257ffe10eb53b86d2375f7c0f4f33ef (using git revert) in that
>> branch. And this version works fine.
>>
>> So belatedly I see that I seem to have the same problem as Ed. Or
>> at least that the same commit is causing both our problems.
>>
>> Alex - do you need any more information from me to help with this ?

The attached patch should fix it.

Thanks,

Alex
From 9cd764fd57bb2a4e5f618d0f8a64c8154a820688 Mon Sep 17 00:00:00 2001
From: Alex Deucher <alexander.deucher@xxxxxxx>
Date: Tue, 22 Apr 2014 01:49:28 -0400
Subject: [PATCH] drm/radeon/aux: fix hpd assignment for aux bus

The hpd (hot plug detect) pin assignment got lost
in the conversion to to the common i2c over aux
code. Without this information, aux transactions
do not work properly. Fixes DP failures.

Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
---
drivers/gpu/drm/radeon/atombios_dp.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/radeon/atombios_dp.c b/drivers/gpu/drm/radeon/atombios_dp.c
index 1593652..bc0119f 100644
--- a/drivers/gpu/drm/radeon/atombios_dp.c
+++ b/drivers/gpu/drm/radeon/atombios_dp.c
@@ -209,6 +209,7 @@ void radeon_dp_aux_init(struct radeon_connector *radeon_connector)
{
int ret;

+ radeon_connector->ddc_bus->rec.hpd = radeon_connector->hpd.hpd;
radeon_connector->ddc_bus->aux.dev = radeon_connector->base.kdev;
radeon_connector->ddc_bus->aux.transfer = radeon_dp_aux_transfer;
ret = drm_dp_aux_register_i2c_bus(&radeon_connector->ddc_bus->aux);
--
1.7.11.7