mirror of https://gitee.com/openkylin/linux.git
drm/radeon/kms: move audio params to separated struct
Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Tested-by: Christian König <deathsimple@vodafone.de> Reviewed-by: Christian König <deathsimple@vodafone.de> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
2baf837799
commit
a92553abe5
|
@ -120,18 +120,18 @@ void r600_audio_update_hdmi(struct work_struct *work)
|
|||
struct drm_encoder *encoder;
|
||||
int changes = 0;
|
||||
|
||||
changes |= channels != rdev->audio_channels;
|
||||
changes |= rate != rdev->audio_rate;
|
||||
changes |= bps != rdev->audio_bits_per_sample;
|
||||
changes |= status_bits != rdev->audio_status_bits;
|
||||
changes |= category_code != rdev->audio_category_code;
|
||||
changes |= channels != rdev->audio.channels;
|
||||
changes |= rate != rdev->audio.rate;
|
||||
changes |= bps != rdev->audio.bits_per_sample;
|
||||
changes |= status_bits != rdev->audio.status_bits;
|
||||
changes |= category_code != rdev->audio.category_code;
|
||||
|
||||
if (changes) {
|
||||
rdev->audio_channels = channels;
|
||||
rdev->audio_rate = rate;
|
||||
rdev->audio_bits_per_sample = bps;
|
||||
rdev->audio_status_bits = status_bits;
|
||||
rdev->audio_category_code = category_code;
|
||||
rdev->audio.channels = channels;
|
||||
rdev->audio.rate = rate;
|
||||
rdev->audio.bits_per_sample = bps;
|
||||
rdev->audio.status_bits = status_bits;
|
||||
rdev->audio.category_code = category_code;
|
||||
}
|
||||
|
||||
list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) {
|
||||
|
@ -157,7 +157,7 @@ static void r600_audio_engine_enable(struct radeon_device *rdev, bool enable)
|
|||
WREG32_P(R600_AUDIO_ENABLE,
|
||||
enable ? 0x81000000 : 0x0, ~0x81000000);
|
||||
}
|
||||
rdev->audio_enabled = enable;
|
||||
rdev->audio.enabled = enable;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -170,11 +170,11 @@ int r600_audio_init(struct radeon_device *rdev)
|
|||
|
||||
r600_audio_engine_enable(rdev, true);
|
||||
|
||||
rdev->audio_channels = -1;
|
||||
rdev->audio_rate = -1;
|
||||
rdev->audio_bits_per_sample = -1;
|
||||
rdev->audio_status_bits = 0;
|
||||
rdev->audio_category_code = 0;
|
||||
rdev->audio.channels = -1;
|
||||
rdev->audio.rate = -1;
|
||||
rdev->audio.bits_per_sample = -1;
|
||||
rdev->audio.status_bits = 0;
|
||||
rdev->audio.category_code = 0;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -243,7 +243,7 @@ void r600_audio_set_clock(struct drm_encoder *encoder, int clock)
|
|||
*/
|
||||
void r600_audio_fini(struct radeon_device *rdev)
|
||||
{
|
||||
if (!rdev->audio_enabled)
|
||||
if (!rdev->audio.enabled)
|
||||
return;
|
||||
|
||||
r600_audio_engine_enable(rdev, false);
|
||||
|
|
|
@ -1114,6 +1114,15 @@ int radeon_pm_get_type_index(struct radeon_device *rdev,
|
|||
enum radeon_pm_state_type ps_type,
|
||||
int instance);
|
||||
|
||||
struct r600_audio {
|
||||
bool enabled;
|
||||
int channels;
|
||||
int rate;
|
||||
int bits_per_sample;
|
||||
u8 status_bits;
|
||||
u8 category_code;
|
||||
};
|
||||
|
||||
/*
|
||||
* Benchmarking
|
||||
*/
|
||||
|
@ -1559,15 +1568,7 @@ struct radeon_device {
|
|||
int num_crtc; /* number of crtcs */
|
||||
struct mutex dc_hw_i2c_mutex; /* display controller hw i2c mutex */
|
||||
struct mutex vram_mutex;
|
||||
|
||||
/* audio stuff */
|
||||
bool audio_enabled;
|
||||
int audio_channels;
|
||||
int audio_rate;
|
||||
int audio_bits_per_sample;
|
||||
uint8_t audio_status_bits;
|
||||
uint8_t audio_category_code;
|
||||
|
||||
struct r600_audio audio; /* audio stuff */
|
||||
struct notifier_block acpi_nb;
|
||||
/* only one userspace can use Hyperz features or CMASK at a time */
|
||||
struct drm_file *hyperz_filp;
|
||||
|
|
Loading…
Reference in New Issue