[PATCH] drm/radeon/kms: disable the tv encoder when tv/cv is not in use

Alex Deucher alexdeucher at gmail.com
Tue Apr 13 08:21:59 PDT 2010


Switching between TV and VGA caused VGA to break on some systems
since the TV encoder was left enabled when VGA was used.

fixes fdo bug 25520.

Signed-off-by: Alex Deucher <alexdeucher at gmail.com>
Cc: stable <stable at kernel.org>
---
 drivers/gpu/drm/radeon/radeon_encoders.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c
b/drivers/gpu/drm/radeon/radeon_encoders.c
index c52fc30..d61a141 100644
--- a/drivers/gpu/drm/radeon/radeon_encoders.c
+++ b/drivers/gpu/drm/radeon/radeon_encoders.c
@@ -1373,8 +1373,12 @@ radeon_atom_encoder_mode_set(struct drm_encoder *encoder,
 	case ENCODER_OBJECT_ID_INTERNAL_DAC2:
 	case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2:
 		atombios_dac_setup(encoder, ATOM_ENABLE);
-		if (radeon_encoder->active_device & (ATOM_DEVICE_TV_SUPPORT |
ATOM_DEVICE_CV_SUPPORT))
-			atombios_tv_setup(encoder, ATOM_ENABLE);
+		if (radeon_encoder->devices & (ATOM_DEVICE_TV_SUPPORT |
ATOM_DEVICE_CV_SUPPORT)) {
+			if (radeon_encoder->active_device & (ATOM_DEVICE_TV_SUPPORT |
ATOM_DEVICE_CV_SUPPORT))
+				atombios_tv_setup(encoder, ATOM_ENABLE);
+			else
+				atombios_tv_setup(encoder, ATOM_DISABLE);
+		}
 		break;
 	}
 	atombios_apply_encoder_quirks(encoder, adjusted_mode);
-- 
1.5.6.3

--000e0ce0f3c873437504841fe3f5
Content-Type: text/x-diff; charset=US-ASCII; 
	name="0001-drm-radeon-kms-disable-the-tv-encoder-when-tv-cv-is.patch"
Content-Disposition: attachment; 
	filename="0001-drm-radeon-kms-disable-the-tv-encoder-when-tv-cv-is.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_g7yv7tqe0

RnJvbSA2NTVhN2IzYzY5ODg5MmFlMzhkZGEyZDViMTUwZTgyZjFlMzVlODE4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4IERldWNoZXIgPGFsZXhkZXVjaGVyQGdtYWlsLmNvbT4K
RGF0ZTogVHVlLCAxMyBBcHIgMjAxMCAxMToyMTo1OSAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIGRy
bS9yYWRlb24va21zOiBkaXNhYmxlIHRoZSB0diBlbmNvZGVyIHdoZW4gdHYvY3YgaXMgbm90IGlu
IHVzZQoKU3dpdGNoaW5nIGJldHdlZW4gVFYgYW5kIFZHQSBjYXVzZWQgVkdBIHRvIGJyZWFrIG9u
IHNvbWUgc3lzdGVtcwpzaW5jZSB0aGUgVFYgZW5jb2RlciB3YXMgbGVmdCBlbmFibGVkIHdoZW4g
VkdBIHdhcyB1c2VkLgoKZml4ZXMgZmRvIGJ1ZyAyNTUyMC4KClNpZ25lZC1vZmYtYnk6IEFsZXgg
RGV1Y2hlciA8YWxleGRldWNoZXJAZ21haWwuY29tPgpDYzogc3RhYmxlIDxzdGFibGVAa2VybmVs
Lm9yZz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9lbmNvZGVycy5jIHwgICAg
OCArKysrKystLQogMSBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z
KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZW5jb2RlcnMu
YyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2VuY29kZXJzLmMKaW5kZXggYzUyZmMz
MC4uZDYxYTE0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZW5j
b2RlcnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9lbmNvZGVycy5jCkBA
IC0xMzczLDggKzEzNzMsMTIgQEAgcmFkZW9uX2F0b21fZW5jb2Rlcl9tb2RlX3NldChzdHJ1Y3Qg
ZHJtX2VuY29kZXIgKmVuY29kZXIsCiAJY2FzZSBFTkNPREVSX09CSkVDVF9JRF9JTlRFUk5BTF9E
QUMyOgogCWNhc2UgRU5DT0RFUl9PQkpFQ1RfSURfSU5URVJOQUxfS0xEU0NQX0RBQzI6CiAJCWF0
b21iaW9zX2RhY19zZXR1cChlbmNvZGVyLCBBVE9NX0VOQUJMRSk7Ci0JCWlmIChyYWRlb25fZW5j
b2Rlci0+YWN0aXZlX2RldmljZSAmIChBVE9NX0RFVklDRV9UVl9TVVBQT1JUIHwgQVRPTV9ERVZJ
Q0VfQ1ZfU1VQUE9SVCkpCi0JCQlhdG9tYmlvc190dl9zZXR1cChlbmNvZGVyLCBBVE9NX0VOQUJM
RSk7CisJCWlmIChyYWRlb25fZW5jb2Rlci0+ZGV2aWNlcyAmIChBVE9NX0RFVklDRV9UVl9TVVBQ
T1JUIHwgQVRPTV9ERVZJQ0VfQ1ZfU1VQUE9SVCkpIHsKKwkJCWlmIChyYWRlb25fZW5jb2Rlci0+
YWN0aXZlX2RldmljZSAmIChBVE9NX0RFVklDRV9UVl9TVVBQT1JUIHwgQVRPTV9ERVZJQ0VfQ1Zf
U1VQUE9SVCkpCisJCQkJYXRvbWJpb3NfdHZfc2V0dXAoZW5jb2RlciwgQVRPTV9FTkFCTEUpOwor
CQkJZWxzZQorCQkJCWF0b21iaW9zX3R2X3NldHVwKGVuY29kZXIsIEFUT01fRElTQUJMRSk7CisJ
CX0KIAkJYnJlYWs7CiAJfQogCWF0b21iaW9zX2FwcGx5X2VuY29kZXJfcXVpcmtzKGVuY29kZXIs
IGFkanVzdGVkX21vZGUpOwotLSAKMS41LjYuMwoK
--000e0ce0f3c873437504841fe3f5--


More information about the dri-devel mailing list