Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

radeon/audio: consolidate audio_enable() functions

Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Slava Grigorev <slava.grigorev@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Slava Grigorev and committed by
Alex Deucher
8bf59820 88252d77

+28 -26
+2 -2
drivers/gpu/drm/radeon/dce3_1_afmt.c
··· 137 137 138 138 /* disable audio prior to setting up hw */ 139 139 dig->afmt->pin = radeon_audio_get_pin(encoder); 140 - r600_audio_enable(rdev, dig->afmt->pin, 0); 140 + radeon_audio_enable(rdev, dig->afmt->pin, 0); 141 141 142 142 r600_audio_set_dto(encoder, mode->clock); 143 143 ··· 212 212 r600_hdmi_audio_workaround(encoder); 213 213 214 214 /* enable audio after to setting up hw */ 215 - r600_audio_enable(rdev, dig->afmt->pin, 0xf); 215 + radeon_audio_enable(rdev, dig->afmt->pin, 0xf); 216 216 }
+1 -1
drivers/gpu/drm/radeon/dce6_afmt.c
··· 257 257 return; 258 258 259 259 for (i = 0; i < rdev->audio.num_pins; i++) 260 - dce6_audio_enable(rdev, &rdev->audio.pin[i], false); 260 + radeon_audio_enable(rdev, &rdev->audio.pin[i], false); 261 261 262 262 rdev->audio.enabled = false; 263 263 }
+4 -14
drivers/gpu/drm/radeon/evergreen_hdmi.c
··· 34 34 #include "atom.h" 35 35 36 36 /* enable the audio stream */ 37 - static void dce4_audio_enable(struct radeon_device *rdev, 37 + void dce4_audio_enable(struct radeon_device *rdev, 38 38 struct r600_audio_pin *pin, 39 39 u8 enable_mask) 40 40 { ··· 300 300 301 301 /* disable audio prior to setting up hw */ 302 302 dig->afmt->pin = radeon_audio_get_pin(encoder); 303 - if (ASIC_IS_DCE6(rdev)) { 304 - dce6_audio_enable(rdev, dig->afmt->pin, 0); 305 - } else { 306 - dce4_audio_enable(rdev, dig->afmt->pin, 0); 307 - } 303 + radeon_audio_enable(rdev, dig->afmt->pin, 0); 308 304 309 305 evergreen_audio_set_dto(encoder, mode->clock); 310 306 ··· 431 435 WREG32(AFMT_RAMP_CONTROL3 + offset, 0x00000001); 432 436 433 437 /* enable audio after to setting up hw */ 434 - if (ASIC_IS_DCE6(rdev)) 435 - dce6_audio_enable(rdev, dig->afmt->pin, 1); 436 - else 437 - dce4_audio_enable(rdev, dig->afmt->pin, 0xf); 438 + radeon_audio_enable(rdev, dig->afmt->pin, 0xf); 438 439 } 439 440 440 441 void evergreen_hdmi_enable(struct drm_encoder *encoder, bool enable) ··· 451 458 return; 452 459 453 460 if (!enable && dig->afmt->pin) { 454 - if (ASIC_IS_DCE6(rdev)) 455 - dce6_audio_enable(rdev, dig->afmt->pin, 0); 456 - else 457 - dce4_audio_enable(rdev, dig->afmt->pin, 0); 461 + radeon_audio_enable(rdev, dig->afmt->pin, 0); 458 462 dig->afmt->pin = NULL; 459 463 } 460 464
+4 -5
drivers/gpu/drm/radeon/r600_hdmi.c
··· 192 192 if (!rdev->audio.enabled) 193 193 return; 194 194 195 - r600_audio_enable(rdev, &rdev->audio.pin[0], 0); 196 - 195 + radeon_audio_enable(rdev, &rdev->audio.pin[0], 0); 197 196 rdev->audio.enabled = false; 198 197 } 199 198 ··· 488 489 489 490 /* disable audio prior to setting up hw */ 490 491 dig->afmt->pin = radeon_audio_get_pin(encoder); 491 - r600_audio_enable(rdev, dig->afmt->pin, 0xf); 492 + radeon_audio_enable(rdev, dig->afmt->pin, 0); 492 493 493 494 r600_audio_set_dto(encoder, mode->clock); 494 495 ··· 574 575 WREG32(HDMI0_RAMP_CONTROL3 + offset, 0x00000001); 575 576 576 577 /* enable audio after to setting up hw */ 577 - r600_audio_enable(rdev, dig->afmt->pin, 0xf); 578 + radeon_audio_enable(rdev, dig->afmt->pin, 0xf); 578 579 } 579 580 580 581 /** ··· 660 661 return; 661 662 662 663 if (!enable && dig->afmt->pin) { 663 - r600_audio_enable(rdev, dig->afmt->pin, 0); 664 + radeon_audio_enable(rdev, dig->afmt->pin, 0); 664 665 dig->afmt->pin = NULL; 665 666 } 666 667
+13 -4
drivers/gpu/drm/radeon/radeon_audio.c
··· 30 30 31 31 void r600_audio_enable(struct radeon_device *rdev, struct r600_audio_pin *pin, 32 32 u8 enable_mask); 33 + void dce4_audio_enable(struct radeon_device *rdev, struct r600_audio_pin *pin, 34 + u8 enable_mask); 33 35 void dce6_audio_enable(struct radeon_device *rdev, struct r600_audio_pin *pin, 34 36 u8 enable_mask); 35 37 u32 dce6_endpoint_rreg(struct radeon_device *rdev, u32 offset, u32 reg); ··· 88 86 static struct radeon_audio_basic_funcs dce32_funcs = { 89 87 .endpoint_rreg = radeon_audio_rreg, 90 88 .endpoint_wreg = radeon_audio_wreg, 89 + .enable = r600_audio_enable, 91 90 }; 92 91 93 92 static struct radeon_audio_basic_funcs dce4_funcs = { 94 93 .endpoint_rreg = radeon_audio_rreg, 95 94 .endpoint_wreg = radeon_audio_wreg, 95 + .enable = dce4_audio_enable, 96 96 }; 97 97 98 98 static struct radeon_audio_basic_funcs dce6_funcs = { 99 99 .endpoint_rreg = dce6_endpoint_rreg, 100 100 .endpoint_wreg = dce6_endpoint_wreg, 101 + .enable = dce6_audio_enable, 101 102 }; 102 103 103 104 static struct radeon_audio_funcs dce32_hdmi_funcs = { ··· 206 201 207 202 /* disable audio. it will be set up later */ 208 203 for (i = 0; i < rdev->audio.num_pins; i++) 209 - if (ASIC_IS_DCE6(rdev)) 210 - dce6_audio_enable(rdev, &rdev->audio.pin[i], false); 211 - else 212 - r600_audio_enable(rdev, &rdev->audio.pin[i], false); 204 + radeon_audio_enable(rdev, &rdev->audio.pin[i], false); 213 205 214 206 return 0; 215 207 } ··· 372 370 373 371 if (radeon_encoder->audio && radeon_encoder->audio->select_pin) 374 372 radeon_encoder->audio->select_pin(encoder); 373 + } 374 + 375 + void radeon_audio_enable(struct radeon_device *rdev, 376 + struct r600_audio_pin *pin, u8 enable_mask) 377 + { 378 + if (rdev->audio.funcs->enable) 379 + rdev->audio.funcs->enable(rdev, pin, enable_mask); 375 380 }
+4
drivers/gpu/drm/radeon/radeon_audio.h
··· 37 37 u32 (*endpoint_rreg)(struct radeon_device *rdev, u32 offset, u32 reg); 38 38 void (*endpoint_wreg)(struct radeon_device *rdev, 39 39 u32 offset, u32 reg, u32 v); 40 + void (*enable)(struct radeon_device *rdev, 41 + struct r600_audio_pin *pin, u8 enable_mask); 40 42 }; 41 43 42 44 struct radeon_audio_funcs ··· 66 64 struct drm_display_mode *mode); 67 65 struct r600_audio_pin *radeon_audio_get_pin(struct drm_encoder *encoder); 68 66 void radeon_audio_select_pin(struct drm_encoder *encoder); 67 + void radeon_audio_enable(struct radeon_device *rdev, 68 + struct r600_audio_pin *pin, u8 enable_mask); 69 69 70 70 #endif