35,7 → 35,7 |
*/ |
static int r600_audio_chipset_supported(struct radeon_device *rdev) |
{ |
return (rdev->family >= CHIP_R600 && rdev->family < CHIP_RV710) |
return rdev->family >= CHIP_R600 |
|| rdev->family == CHIP_RS600 |
|| rdev->family == CHIP_RS690 |
|| rdev->family == CHIP_RS740; |
147,15 → 147,23 |
} |
|
/* |
* turn on/off audio engine |
*/ |
static void r600_audio_engine_enable(struct radeon_device *rdev, bool enable) |
{ |
DRM_INFO("%s audio support", enable ? "Enabling" : "Disabling"); |
WREG32_P(R600_AUDIO_ENABLE, enable ? 0x81000000 : 0x0, ~0x81000000); |
} |
|
/* |
* initialize the audio vars and register the update timer |
*/ |
int r600_audio_init(struct radeon_device *rdev) |
{ |
if (!r600_audio_chipset_supported(rdev)) |
if (!radeon_audio || !r600_audio_chipset_supported(rdev)) |
return 0; |
|
DRM_INFO("%s audio support", radeon_audio ? "Enabling" : "Disabling"); |
WREG32_P(R600_AUDIO_ENABLE, radeon_audio ? 0x81000000 : 0x0, ~0x81000000); |
r600_audio_engine_enable(rdev, true); |
|
rdev->audio_channels = -1; |
rdev->audio_rate = -1; |
258,10 → 266,10 |
*/ |
void r600_audio_fini(struct radeon_device *rdev) |
{ |
if (!r600_audio_chipset_supported(rdev)) |
if (!radeon_audio || !r600_audio_chipset_supported(rdev)) |
return; |
|
WREG32_P(R600_AUDIO_ENABLE, 0x0, ~0x81000000); |
// del_timer(&rdev->audio_timer); |
|
// del_timer(&rdev->audio_timer); |
r600_audio_engine_enable(rdev, false); |
} |