From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-vn0-f45.google.com ([209.85.216.45]:33909 "EHLO mail-vn0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932660AbbERQZE (ORCPT ); Mon, 18 May 2015 12:25:04 -0400 Received: by vnbf129 with SMTP id f129so2864403vnb.1 for ; Mon, 18 May 2015 09:25:00 -0700 (PDT) From: Alex Deucher To: dri-devel@lists.freedesktop.org Cc: Alex Deucher , stable@vger.kernel.org Subject: [PATCH] drm/radeon: properly select encoder in radeon_audio_detect Date: Mon, 18 May 2015 12:24:50 -0400 Message-Id: <1431966291-1449-4-git-send-email-alexander.deucher@amd.com> In-Reply-To: <1431966291-1449-1-git-send-email-alexander.deucher@amd.com> References: <1431966291-1449-1-git-send-email-alexander.deucher@amd.com> Sender: stable-owner@vger.kernel.org List-ID: Need to handle DVI where we way end up with an analog encoder in some cases. Reported-by: Julian Margetson Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org --- drivers/gpu/drm/radeon/radeon_audio.c | 18 ++++++++++-------- drivers/gpu/drm/radeon/radeon_connectors.c | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/radeon/radeon_audio.c b/drivers/gpu/drm/radeon/radeon_audio.c index dcb7796..31b60f6 100644 --- a/drivers/gpu/drm/radeon/radeon_audio.c +++ b/drivers/gpu/drm/radeon/radeon_audio.c @@ -453,22 +453,24 @@ void radeon_audio_enable(struct radeon_device *rdev, void radeon_audio_detect(struct drm_connector *connector, enum drm_connector_status status) { - struct radeon_device *rdev; - struct radeon_encoder *radeon_encoder; + struct drm_device *dev = connector->dev; + struct radeon_device *rdev = dev->dev_private; struct radeon_encoder_atom_dig *dig; + const struct drm_connector_helper_funcs *connector_funcs = + connector->helper_private; + struct drm_encoder *encoder = connector_funcs->best_encoder(connector); + struct radeon_encoder *radeon_encoder; - if (!connector || !connector->encoder) + if (!connector || !encoder) return; - if (!radeon_encoder_is_digital(connector->encoder)) + if (!radeon_encoder_is_digital(encoder)) return; - rdev = connector->encoder->dev->dev_private; - if (!radeon_audio_chipset_supported(rdev)) return; - radeon_encoder = to_radeon_encoder(connector->encoder); + radeon_encoder = to_radeon_encoder(encoder); dig = radeon_encoder->enc_priv; if (!dig->afmt) @@ -484,7 +486,7 @@ void radeon_audio_detect(struct drm_connector *connector, else radeon_encoder->audio = rdev->audio.hdmi_funcs; - dig->afmt->pin = radeon_audio_get_pin(connector->encoder); + dig->afmt->pin = radeon_audio_get_pin(encoder); if (drm_detect_monitor_audio(radeon_connector_edid(connector))) { radeon_audio_enable(rdev, dig->afmt->pin, 0xf); } else { diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c index d17d251..c251eac 100644 --- a/drivers/gpu/drm/radeon/radeon_connectors.c +++ b/drivers/gpu/drm/radeon/radeon_connectors.c @@ -1379,7 +1379,7 @@ out: /* updated in get modes as well since we need to know if it's analog or digital */ radeon_connector_update_scratch_regs(connector, ret); - if (radeon_audio != 0) { + if ((radeon_audio != 0) && (radeon_connector->use_digital)) { radeon_connector_get_edid(connector); radeon_audio_detect(connector, ret); } -- 1.8.3.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH] drm/radeon: properly select encoder in radeon_audio_detect Date: Mon, 18 May 2015 12:24:50 -0400 Message-ID: <1431966291-1449-4-git-send-email-alexander.deucher@amd.com> References: <1431966291-1449-1-git-send-email-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-vn0-f52.google.com (mail-vn0-f52.google.com [209.85.216.52]) by gabe.freedesktop.org (Postfix) with ESMTP id 584266E040 for ; Mon, 18 May 2015 09:25:01 -0700 (PDT) Received: by vnbf1 with SMTP id f1so1421427vnb.6 for ; Mon, 18 May 2015 09:25:00 -0700 (PDT) In-Reply-To: <1431966291-1449-1-git-send-email-alexander.deucher@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Alex Deucher , stable@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org TmVlZCB0byBoYW5kbGUgRFZJIHdoZXJlIHdlIHdheSBlbmQgdXAgd2l0aCBhbiBhbmFsb2cgZW5j b2RlcgppbiBzb21lIGNhc2VzLgoKUmVwb3J0ZWQtYnk6IEp1bGlhbiBNYXJnZXRzb24gPHJ1bmF3 YXlAY2FuZHcubXM+ClNpZ25lZC1vZmYtYnk6IEFsZXggRGV1Y2hlciA8YWxleGFuZGVyLmRldWNo ZXJAYW1kLmNvbT4KQ2M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcKLS0tCiBkcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbl9hdWRpby5jICAgICAgfCAxOCArKysrKysrKysrLS0tLS0tLS0KIGRy aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Nvbm5lY3RvcnMuYyB8ICAyICstCiAyIGZpbGVz IGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXVkaW8uYyBiL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX2F1ZGlvLmMKaW5kZXggZGNiNzc5Ni4uMzFiNjBmNiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXVkaW8uYworKysgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbl9hdWRpby5jCkBAIC00NTMsMjIgKzQ1MywyNCBAQCB2b2lkIHJhZGVv bl9hdWRpb19lbmFibGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiB2b2lkIHJhZGVvbl9h dWRpb19kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJCSBlbnVtIGRy bV9jb25uZWN0b3Jfc3RhdHVzIHN0YXR1cykKIHsKLQlzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRl djsKLQlzdHJ1Y3QgcmFkZW9uX2VuY29kZXIgKnJhZGVvbl9lbmNvZGVyOworCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmRldjsKKwlzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRl diA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IHJhZGVvbl9lbmNvZGVyX2F0b21fZGlnICpk aWc7CisJY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzICpjb25uZWN0b3Jf ZnVuY3MgPQorCQljb25uZWN0b3ItPmhlbHBlcl9wcml2YXRlOworCXN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlciA9IGNvbm5lY3Rvcl9mdW5jcy0+YmVzdF9lbmNvZGVyKGNvbm5lY3Rvcik7CisJ c3RydWN0IHJhZGVvbl9lbmNvZGVyICpyYWRlb25fZW5jb2RlcjsKIAotCWlmICghY29ubmVjdG9y IHx8ICFjb25uZWN0b3ItPmVuY29kZXIpCisJaWYgKCFjb25uZWN0b3IgfHwgIWVuY29kZXIpCiAJ CXJldHVybjsKIAotCWlmICghcmFkZW9uX2VuY29kZXJfaXNfZGlnaXRhbChjb25uZWN0b3ItPmVu Y29kZXIpKQorCWlmICghcmFkZW9uX2VuY29kZXJfaXNfZGlnaXRhbChlbmNvZGVyKSkKIAkJcmV0 dXJuOwogCi0JcmRldiA9IGNvbm5lY3Rvci0+ZW5jb2Rlci0+ZGV2LT5kZXZfcHJpdmF0ZTsKLQog CWlmICghcmFkZW9uX2F1ZGlvX2NoaXBzZXRfc3VwcG9ydGVkKHJkZXYpKQogCQlyZXR1cm47CiAK LQlyYWRlb25fZW5jb2RlciA9IHRvX3JhZGVvbl9lbmNvZGVyKGNvbm5lY3Rvci0+ZW5jb2Rlcik7 CisJcmFkZW9uX2VuY29kZXIgPSB0b19yYWRlb25fZW5jb2RlcihlbmNvZGVyKTsKIAlkaWcgPSBy YWRlb25fZW5jb2Rlci0+ZW5jX3ByaXY7CiAKIAlpZiAoIWRpZy0+YWZtdCkKQEAgLTQ4NCw3ICs0 ODYsNyBAQCB2b2lkIHJhZGVvbl9hdWRpb19kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvciwKIAkJZWxzZQogCQkJcmFkZW9uX2VuY29kZXItPmF1ZGlvID0gcmRldi0+YXVkaW8u aGRtaV9mdW5jczsKIAotCQlkaWctPmFmbXQtPnBpbiA9IHJhZGVvbl9hdWRpb19nZXRfcGluKGNv bm5lY3Rvci0+ZW5jb2Rlcik7CisJCWRpZy0+YWZtdC0+cGluID0gcmFkZW9uX2F1ZGlvX2dldF9w aW4oZW5jb2Rlcik7CiAJCWlmIChkcm1fZGV0ZWN0X21vbml0b3JfYXVkaW8ocmFkZW9uX2Nvbm5l Y3Rvcl9lZGlkKGNvbm5lY3RvcikpKSB7CiAJCQlyYWRlb25fYXVkaW9fZW5hYmxlKHJkZXYsIGRp Zy0+YWZtdC0+cGluLCAweGYpOwogCQl9IGVsc2UgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9yYWRlb25fY29ubmVjdG9ycy5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y YWRlb25fY29ubmVjdG9ycy5jCmluZGV4IGQxN2QyNTEuLmMyNTFlYWMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Nvbm5lY3RvcnMuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl9jb25uZWN0b3JzLmMKQEAgLTEzNzksNyArMTM3OSw3IEBAIG91 dDoKIAkvKiB1cGRhdGVkIGluIGdldCBtb2RlcyBhcyB3ZWxsIHNpbmNlIHdlIG5lZWQgdG8ga25v dyBpZiBpdCdzIGFuYWxvZyBvciBkaWdpdGFsICovCiAJcmFkZW9uX2Nvbm5lY3Rvcl91cGRhdGVf c2NyYXRjaF9yZWdzKGNvbm5lY3RvciwgcmV0KTsKIAotCWlmIChyYWRlb25fYXVkaW8gIT0gMCkg eworCWlmICgocmFkZW9uX2F1ZGlvICE9IDApICYmIChyYWRlb25fY29ubmVjdG9yLT51c2VfZGln aXRhbCkpIHsKIAkJcmFkZW9uX2Nvbm5lY3Rvcl9nZXRfZWRpZChjb25uZWN0b3IpOwogCQlyYWRl b25fYXVkaW9fZGV0ZWN0KGNvbm5lY3RvciwgcmV0KTsKIAl9Ci0tIAoxLjguMy4xCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=