summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafał Miłecki <zajec5@gmail.com>2012-04-29 01:35:20 +0400
committerDave Airlie <airlied@redhat.com>2012-05-01 13:57:36 +0400
commita92553abe585429c65d2db0c4567f336f4fdf22b (patch)
tree979ac5f6746dfe83691e1fcb01fad77266f4384a
parent2baf8377997cce10bb730f306392f29794dea217 (diff)
downloadlinux-a92553abe585429c65d2db0c4567f336f4fdf22b.tar.xz
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>
-rw-r--r--drivers/gpu/drm/radeon/r600_audio.c34
-rw-r--r--drivers/gpu/drm/radeon/radeon.h19
2 files changed, 27 insertions, 26 deletions
diff --git a/drivers/gpu/drm/radeon/r600_audio.c b/drivers/gpu/drm/radeon/r600_audio.c
index a7c06c330fe1..b922a3cd90db 100644
--- a/drivers/gpu/drm/radeon/r600_audio.c
+++ b/drivers/gpu/drm/radeon/r600_audio.c
@@ -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);
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index 566ca3b3c873..610acee74a3d 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -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;