diff options
author | Francisco Jerez <currojerez@riseup.net> | 2010-07-04 10:14:42 -0400 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2010-07-12 20:13:20 -0400 |
commit | 8ccfe9e098d5975ef65d17de477f6b7dc0c446db (patch) | |
tree | 1fe23accc759ac779ee41e048769d8ddadf89ea3 /drivers/gpu/drm/nouveau/nv17_tv.c | |
parent | be8860ac0c99c4cd67dfc364c6f57d299f8d7e9d (diff) |
drm/nv04-nv40: Prevent invalid DAC/TVDAC combinations.
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nv17_tv.c')
-rw-r--r-- | drivers/gpu/drm/nouveau/nv17_tv.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nv17_tv.c b/drivers/gpu/drm/nouveau/nv17_tv.c index 44437ff46394..864867ed951a 100644 --- a/drivers/gpu/drm/nouveau/nv17_tv.c +++ b/drivers/gpu/drm/nouveau/nv17_tv.c | |||
@@ -125,6 +125,9 @@ nv17_tv_detect(struct drm_encoder *encoder, struct drm_connector *connector) | |||
125 | struct nv17_tv_encoder *tv_enc = to_tv_enc(encoder); | 125 | struct nv17_tv_encoder *tv_enc = to_tv_enc(encoder); |
126 | struct dcb_entry *dcb = tv_enc->base.dcb; | 126 | struct dcb_entry *dcb = tv_enc->base.dcb; |
127 | 127 | ||
128 | if (nv04_dac_in_use(encoder)) | ||
129 | return connector_status_disconnected; | ||
130 | |||
128 | if (dev_priv->chipset == 0x42 || | 131 | if (dev_priv->chipset == 0x42 || |
129 | dev_priv->chipset == 0x43) | 132 | dev_priv->chipset == 0x43) |
130 | tv_enc->pin_mask = nv42_tv_sample_load(encoder) >> 28 & 0xe; | 133 | tv_enc->pin_mask = nv42_tv_sample_load(encoder) >> 28 & 0xe; |
@@ -296,6 +299,9 @@ static bool nv17_tv_mode_fixup(struct drm_encoder *encoder, | |||
296 | { | 299 | { |
297 | struct nv17_tv_norm_params *tv_norm = get_tv_norm(encoder); | 300 | struct nv17_tv_norm_params *tv_norm = get_tv_norm(encoder); |
298 | 301 | ||
302 | if (nv04_dac_in_use(encoder)) | ||
303 | return false; | ||
304 | |||
299 | if (tv_norm->kind == CTV_ENC_MODE) | 305 | if (tv_norm->kind == CTV_ENC_MODE) |
300 | adjusted_mode->clock = tv_norm->ctv_enc_mode.mode.clock; | 306 | adjusted_mode->clock = tv_norm->ctv_enc_mode.mode.clock; |
301 | else | 307 | else |