Lines Matching defs:rdev
32 void r600_audio_enable(struct radeon_device *rdev, struct r600_audio_pin *pin,
34 void dce4_audio_enable(struct radeon_device *rdev, struct r600_audio_pin *pin,
36 void dce6_audio_enable(struct radeon_device *rdev, struct r600_audio_pin *pin,
38 u32 dce6_endpoint_rreg(struct radeon_device *rdev, u32 offset, u32 reg);
39 void dce6_endpoint_wreg(struct radeon_device *rdev,
63 struct r600_audio_pin* r600_audio_get_pin(struct radeon_device *rdev);
64 struct r600_audio_pin* dce6_audio_get_pin(struct radeon_device *rdev);
66 void r600_hdmi_audio_set_dto(struct radeon_device *rdev,
68 void dce3_2_audio_set_dto(struct radeon_device *rdev,
70 void dce4_hdmi_audio_set_dto(struct radeon_device *rdev,
72 void dce4_dp_audio_set_dto(struct radeon_device *rdev,
74 void dce6_hdmi_audio_set_dto(struct radeon_device *rdev,
76 void dce6_dp_audio_set_dto(struct radeon_device *rdev,
78 void r600_set_avi_packet(struct radeon_device *rdev, u32 offset,
80 void evergreen_set_avi_packet(struct radeon_device *rdev, u32 offset,
117 static u32 radeon_audio_rreg(struct radeon_device *rdev, u32 offset, u32 reg)
122 static void radeon_audio_wreg(struct radeon_device *rdev, u32 offset,
245 static void radeon_audio_enable(struct radeon_device *rdev,
256 if (rdev->mode_info.mode_config_initialized) {
257 list_for_each_entry(encoder, &rdev->ddev->mode_config.encoder_list, head) {
270 if (rdev->audio.funcs->enable)
271 rdev->audio.funcs->enable(rdev, pin, enable_mask);
274 static void radeon_audio_interface_init(struct radeon_device *rdev)
276 if (ASIC_IS_DCE6(rdev)) {
277 rdev->audio.funcs = &dce6_funcs;
278 rdev->audio.hdmi_funcs = &dce6_hdmi_funcs;
279 rdev->audio.dp_funcs = &dce6_dp_funcs;
280 } else if (ASIC_IS_DCE4(rdev)) {
281 rdev->audio.funcs = &dce4_funcs;
282 rdev->audio.hdmi_funcs = &dce4_hdmi_funcs;
283 rdev->audio.dp_funcs = &dce4_dp_funcs;
284 } else if (ASIC_IS_DCE32(rdev)) {
285 rdev->audio.funcs = &dce32_funcs;
286 rdev->audio.hdmi_funcs = &dce32_hdmi_funcs;
287 rdev->audio.dp_funcs = &dce32_dp_funcs;
289 rdev->audio.funcs = &r600_funcs;
290 rdev->audio.hdmi_funcs = &r600_hdmi_funcs;
291 rdev->audio.dp_funcs = NULL;
295 static int radeon_audio_chipset_supported(struct radeon_device *rdev)
297 return ASIC_IS_DCE2(rdev) && !ASIC_IS_NODCE(rdev);
300 int radeon_audio_init(struct radeon_device *rdev)
304 if (!radeon_audio || !radeon_audio_chipset_supported(rdev))
307 rdev->audio.enabled = true;
309 if (ASIC_IS_DCE83(rdev)) /* KB: 2 streams, 3 endpoints */
310 rdev->audio.num_pins = 3;
311 else if (ASIC_IS_DCE81(rdev)) /* KV: 4 streams, 7 endpoints */
312 rdev->audio.num_pins = 7;
313 else if (ASIC_IS_DCE8(rdev)) /* BN/HW: 6 streams, 7 endpoints */
314 rdev->audio.num_pins = 7;
315 else if (ASIC_IS_DCE64(rdev)) /* OL: 2 streams, 2 endpoints */
316 rdev->audio.num_pins = 2;
317 else if (ASIC_IS_DCE61(rdev)) /* TN: 4 streams, 6 endpoints */
318 rdev->audio.num_pins = 6;
319 else if (ASIC_IS_DCE6(rdev)) /* SI: 6 streams, 6 endpoints */
320 rdev->audio.num_pins = 6;
322 rdev->audio.num_pins = 1;
324 for (i = 0; i < rdev->audio.num_pins; i++) {
325 rdev->audio.pin[i].channels = -1;
326 rdev->audio.pin[i].rate = -1;
327 rdev->audio.pin[i].bits_per_sample = -1;
328 rdev->audio.pin[i].status_bits = 0;
329 rdev->audio.pin[i].category_code = 0;
330 rdev->audio.pin[i].connected = false;
331 rdev->audio.pin[i].offset = pin_offsets[i];
332 rdev->audio.pin[i].id = i;
335 radeon_audio_interface_init(rdev);
338 for (i = 0; i < rdev->audio.num_pins; i++)
339 radeon_audio_enable(rdev, &rdev->audio.pin[i], 0);
344 u32 radeon_audio_endpoint_rreg(struct radeon_device *rdev, u32 offset, u32 reg)
346 if (rdev->audio.funcs->endpoint_rreg)
347 return rdev->audio.funcs->endpoint_rreg(rdev, offset, reg);
352 void radeon_audio_endpoint_wreg(struct radeon_device *rdev, u32 offset,
355 if (rdev->audio.funcs->endpoint_wreg)
356 rdev->audio.funcs->endpoint_wreg(rdev, offset, reg, v);
421 struct radeon_device *rdev = encoder->dev->dev_private;
425 return radeon_encoder->audio->get_pin(rdev);
443 struct radeon_device *rdev = dev->dev_private;
447 if (!radeon_audio_chipset_supported(rdev))
461 radeon_encoder->audio = rdev->audio.dp_funcs;
463 radeon_encoder->audio = rdev->audio.hdmi_funcs;
465 radeon_encoder->audio = rdev->audio.hdmi_funcs;
471 radeon_audio_enable(rdev, dig->pin, 0xf);
473 radeon_audio_enable(rdev, dig->pin, 0);
477 radeon_audio_enable(rdev, dig->pin, 0);
482 void radeon_audio_fini(struct radeon_device *rdev)
486 if (!rdev->audio.enabled)
489 for (i = 0; i < rdev->audio.num_pins; i++)
490 radeon_audio_enable(rdev, &rdev->audio.pin[i], 0);
492 rdev->audio.enabled = false;
497 struct radeon_device *rdev = encoder->dev->dev_private;
502 radeon_encoder->audio->set_dto(rdev, crtc, clock);
508 struct radeon_device *rdev = encoder->dev->dev_private;
540 radeon_encoder->audio->set_avi_packet(rdev, dig->afmt->offset,
734 struct radeon_device *rdev = dev->dev_private;
749 radeon_audio_set_dto(encoder, rdev->clock.vco_freq * 10);