diff options
| author | Alex Deucher <alexdeucher@gmail.com> | 2010-04-06 01:22:41 -0400 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2010-04-06 20:13:09 -0400 |
| commit | affd858907aae7bf7d7d7fa02ff19f35de2ff1d8 (patch) | |
| tree | 4e303e8dfdf2c1ed5eda4d46c4c2cf9e72a71d4b | |
| parent | 7741618766417e77f49013400d3672d65578928a (diff) | |
drm/radeon/kms: clean up atom dac handling
- make sure legacy dac1 has an enc priv
- remove unused num var
- no need for extra tv_dac var in atom dac functions
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_encoders.c | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/radeon/radeon_encoders.c index 52d6f96f274b..c52fc3080b67 100644 --- a/drivers/gpu/drm/radeon/radeon_encoders.c +++ b/drivers/gpu/drm/radeon/radeon_encoders.c | |||
| @@ -317,12 +317,8 @@ atombios_dac_setup(struct drm_encoder *encoder, int action) | |||
| 317 | struct radeon_device *rdev = dev->dev_private; | 317 | struct radeon_device *rdev = dev->dev_private; |
| 318 | struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); | 318 | struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); |
| 319 | DAC_ENCODER_CONTROL_PS_ALLOCATION args; | 319 | DAC_ENCODER_CONTROL_PS_ALLOCATION args; |
| 320 | int index = 0, num = 0; | 320 | int index = 0; |
| 321 | struct radeon_encoder_atom_dac *dac_info = radeon_encoder->enc_priv; | 321 | struct radeon_encoder_atom_dac *dac_info = radeon_encoder->enc_priv; |
| 322 | enum radeon_tv_std tv_std = TV_STD_NTSC; | ||
| 323 | |||
| 324 | if (dac_info->tv_std) | ||
| 325 | tv_std = dac_info->tv_std; | ||
| 326 | 322 | ||
| 327 | memset(&args, 0, sizeof(args)); | 323 | memset(&args, 0, sizeof(args)); |
| 328 | 324 | ||
| @@ -330,12 +326,10 @@ atombios_dac_setup(struct drm_encoder *encoder, int action) | |||
| 330 | case ENCODER_OBJECT_ID_INTERNAL_DAC1: | 326 | case ENCODER_OBJECT_ID_INTERNAL_DAC1: |
| 331 | case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1: | 327 | case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1: |
| 332 | index = GetIndexIntoMasterTable(COMMAND, DAC1EncoderControl); | 328 | index = GetIndexIntoMasterTable(COMMAND, DAC1EncoderControl); |
| 333 | num = 1; | ||
| 334 | break; | 329 | break; |
| 335 | case ENCODER_OBJECT_ID_INTERNAL_DAC2: | 330 | case ENCODER_OBJECT_ID_INTERNAL_DAC2: |
| 336 | case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2: | 331 | case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2: |
| 337 | index = GetIndexIntoMasterTable(COMMAND, DAC2EncoderControl); | 332 | index = GetIndexIntoMasterTable(COMMAND, DAC2EncoderControl); |
| 338 | num = 2; | ||
| 339 | break; | 333 | break; |
| 340 | } | 334 | } |
| 341 | 335 | ||
| @@ -346,7 +340,7 @@ atombios_dac_setup(struct drm_encoder *encoder, int action) | |||
| 346 | else if (radeon_encoder->active_device & (ATOM_DEVICE_CV_SUPPORT)) | 340 | else if (radeon_encoder->active_device & (ATOM_DEVICE_CV_SUPPORT)) |
| 347 | args.ucDacStandard = ATOM_DAC1_CV; | 341 | args.ucDacStandard = ATOM_DAC1_CV; |
| 348 | else { | 342 | else { |
| 349 | switch (tv_std) { | 343 | switch (dac_info->tv_std) { |
| 350 | case TV_STD_PAL: | 344 | case TV_STD_PAL: |
| 351 | case TV_STD_PAL_M: | 345 | case TV_STD_PAL_M: |
| 352 | case TV_STD_SCART_PAL: | 346 | case TV_STD_SCART_PAL: |
| @@ -377,10 +371,6 @@ atombios_tv_setup(struct drm_encoder *encoder, int action) | |||
| 377 | TV_ENCODER_CONTROL_PS_ALLOCATION args; | 371 | TV_ENCODER_CONTROL_PS_ALLOCATION args; |
| 378 | int index = 0; | 372 | int index = 0; |
| 379 | struct radeon_encoder_atom_dac *dac_info = radeon_encoder->enc_priv; | 373 | struct radeon_encoder_atom_dac *dac_info = radeon_encoder->enc_priv; |
| 380 | enum radeon_tv_std tv_std = TV_STD_NTSC; | ||
| 381 | |||
| 382 | if (dac_info->tv_std) | ||
| 383 | tv_std = dac_info->tv_std; | ||
| 384 | 374 | ||
| 385 | memset(&args, 0, sizeof(args)); | 375 | memset(&args, 0, sizeof(args)); |
| 386 | 376 | ||
| @@ -391,7 +381,7 @@ atombios_tv_setup(struct drm_encoder *encoder, int action) | |||
| 391 | if (radeon_encoder->active_device & (ATOM_DEVICE_CV_SUPPORT)) | 381 | if (radeon_encoder->active_device & (ATOM_DEVICE_CV_SUPPORT)) |
| 392 | args.sTVEncoder.ucTvStandard = ATOM_TV_CV; | 382 | args.sTVEncoder.ucTvStandard = ATOM_TV_CV; |
| 393 | else { | 383 | else { |
| 394 | switch (tv_std) { | 384 | switch (dac_info->tv_std) { |
| 395 | case TV_STD_NTSC: | 385 | case TV_STD_NTSC: |
| 396 | args.sTVEncoder.ucTvStandard = ATOM_TV_NTSC; | 386 | args.sTVEncoder.ucTvStandard = ATOM_TV_NTSC; |
| 397 | break; | 387 | break; |
| @@ -1558,12 +1548,14 @@ static const struct drm_encoder_funcs radeon_atom_enc_funcs = { | |||
| 1558 | struct radeon_encoder_atom_dac * | 1548 | struct radeon_encoder_atom_dac * |
| 1559 | radeon_atombios_set_dac_info(struct radeon_encoder *radeon_encoder) | 1549 | radeon_atombios_set_dac_info(struct radeon_encoder *radeon_encoder) |
| 1560 | { | 1550 | { |
| 1551 | struct drm_device *dev = radeon_encoder->base.dev; | ||
| 1552 | struct radeon_device *rdev = dev->dev_private; | ||
| 1561 | struct radeon_encoder_atom_dac *dac = kzalloc(sizeof(struct radeon_encoder_atom_dac), GFP_KERNEL); | 1553 | struct radeon_encoder_atom_dac *dac = kzalloc(sizeof(struct radeon_encoder_atom_dac), GFP_KERNEL); |
| 1562 | 1554 | ||
| 1563 | if (!dac) | 1555 | if (!dac) |
| 1564 | return NULL; | 1556 | return NULL; |
| 1565 | 1557 | ||
| 1566 | dac->tv_std = TV_STD_NTSC; | 1558 | dac->tv_std = radeon_atombios_get_tv_info(rdev); |
| 1567 | return dac; | 1559 | return dac; |
| 1568 | } | 1560 | } |
| 1569 | 1561 | ||
| @@ -1641,6 +1633,7 @@ radeon_add_atom_encoder(struct drm_device *dev, uint32_t encoder_id, uint32_t su | |||
| 1641 | break; | 1633 | break; |
| 1642 | case ENCODER_OBJECT_ID_INTERNAL_DAC1: | 1634 | case ENCODER_OBJECT_ID_INTERNAL_DAC1: |
| 1643 | drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, DRM_MODE_ENCODER_DAC); | 1635 | drm_encoder_init(dev, encoder, &radeon_atom_enc_funcs, DRM_MODE_ENCODER_DAC); |
| 1636 | radeon_encoder->enc_priv = radeon_atombios_set_dac_info(radeon_encoder); | ||
| 1644 | drm_encoder_helper_add(encoder, &radeon_atom_dac_helper_funcs); | 1637 | drm_encoder_helper_add(encoder, &radeon_atom_dac_helper_funcs); |
| 1645 | break; | 1638 | break; |
| 1646 | case ENCODER_OBJECT_ID_INTERNAL_DAC2: | 1639 | case ENCODER_OBJECT_ID_INTERNAL_DAC2: |
