diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2014-09-18 16:27:46 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2014-10-01 09:00:02 -0400 |
commit | d740a93337e7b04b2b648fbc4bcf5f8726d98202 (patch) | |
tree | 7a8a1e9e775db0acbebfd473dfd0cd9d82f65fcb | |
parent | f68fdbe42539851f1bbf9a4dee5150f467a64c36 (diff) |
drm/radeon: consolidate duplicate encode is digital function
Only need one copy.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/radeon/atombios_encoders.c | 23 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/r600_audio.c | 25 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_encoders.c | 21 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_mode.h | 1 |
4 files changed, 23 insertions, 47 deletions
diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c index a7f2ddf09a9d..b8cd7975f797 100644 --- a/drivers/gpu/drm/radeon/atombios_encoders.c +++ b/drivers/gpu/drm/radeon/atombios_encoders.c | |||
@@ -291,29 +291,6 @@ static void radeon_atom_backlight_exit(struct radeon_encoder *encoder) | |||
291 | bool radeon_atom_get_tv_timings(struct radeon_device *rdev, int index, | 291 | bool radeon_atom_get_tv_timings(struct radeon_device *rdev, int index, |
292 | struct drm_display_mode *mode); | 292 | struct drm_display_mode *mode); |
293 | 293 | ||
294 | |||
295 | static inline bool radeon_encoder_is_digital(struct drm_encoder *encoder) | ||
296 | { | ||
297 | struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); | ||
298 | switch (radeon_encoder->encoder_id) { | ||
299 | case ENCODER_OBJECT_ID_INTERNAL_LVDS: | ||
300 | case ENCODER_OBJECT_ID_INTERNAL_TMDS1: | ||
301 | case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_TMDS1: | ||
302 | case ENCODER_OBJECT_ID_INTERNAL_LVTM1: | ||
303 | case ENCODER_OBJECT_ID_INTERNAL_DVO1: | ||
304 | case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1: | ||
305 | case ENCODER_OBJECT_ID_INTERNAL_DDI: | ||
306 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY: | ||
307 | case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA: | ||
308 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY1: | ||
309 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY2: | ||
310 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY3: | ||
311 | return true; | ||
312 | default: | ||
313 | return false; | ||
314 | } | ||
315 | } | ||
316 | |||
317 | static bool radeon_atom_mode_fixup(struct drm_encoder *encoder, | 294 | static bool radeon_atom_mode_fixup(struct drm_encoder *encoder, |
318 | const struct drm_display_mode *mode, | 295 | const struct drm_display_mode *mode, |
319 | struct drm_display_mode *adjusted_mode) | 296 | struct drm_display_mode *adjusted_mode) |
diff --git a/drivers/gpu/drm/radeon/r600_audio.c b/drivers/gpu/drm/radeon/r600_audio.c index bffac10c4296..4c7163c1b656 100644 --- a/drivers/gpu/drm/radeon/r600_audio.c +++ b/drivers/gpu/drm/radeon/r600_audio.c | |||
@@ -30,29 +30,6 @@ | |||
30 | #include "atom.h" | 30 | #include "atom.h" |
31 | 31 | ||
32 | /* | 32 | /* |
33 | * check if enc_priv stores radeon_encoder_atom_dig | ||
34 | */ | ||
35 | static bool radeon_dig_encoder(struct drm_encoder *encoder) | ||
36 | { | ||
37 | struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); | ||
38 | switch (radeon_encoder->encoder_id) { | ||
39 | case ENCODER_OBJECT_ID_INTERNAL_LVDS: | ||
40 | case ENCODER_OBJECT_ID_INTERNAL_TMDS1: | ||
41 | case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_TMDS1: | ||
42 | case ENCODER_OBJECT_ID_INTERNAL_LVTM1: | ||
43 | case ENCODER_OBJECT_ID_INTERNAL_DVO1: | ||
44 | case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1: | ||
45 | case ENCODER_OBJECT_ID_INTERNAL_DDI: | ||
46 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY: | ||
47 | case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA: | ||
48 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY1: | ||
49 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY2: | ||
50 | return true; | ||
51 | } | ||
52 | return false; | ||
53 | } | ||
54 | |||
55 | /* | ||
56 | * check if the chipset is supported | 33 | * check if the chipset is supported |
57 | */ | 34 | */ |
58 | static int r600_audio_chipset_supported(struct radeon_device *rdev) | 35 | static int r600_audio_chipset_supported(struct radeon_device *rdev) |
@@ -134,7 +111,7 @@ void r600_audio_update_hdmi(struct work_struct *work) | |||
134 | } | 111 | } |
135 | 112 | ||
136 | list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { | 113 | list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { |
137 | if (!radeon_dig_encoder(encoder)) | 114 | if (!radeon_encoder_is_digital(encoder)) |
138 | continue; | 115 | continue; |
139 | if (changed || r600_hdmi_buffer_status_changed(encoder)) | 116 | if (changed || r600_hdmi_buffer_status_changed(encoder)) |
140 | r600_hdmi_update_audio_settings(encoder); | 117 | r600_hdmi_update_audio_settings(encoder); |
diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/radeon/radeon_encoders.c index 3c2094c25b53..109843dab5e5 100644 --- a/drivers/gpu/drm/radeon/radeon_encoders.c +++ b/drivers/gpu/drm/radeon/radeon_encoders.c | |||
@@ -382,3 +382,24 @@ bool radeon_dig_monitor_is_duallink(struct drm_encoder *encoder, | |||
382 | } | 382 | } |
383 | } | 383 | } |
384 | 384 | ||
385 | bool radeon_encoder_is_digital(struct drm_encoder *encoder) | ||
386 | { | ||
387 | struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); | ||
388 | switch (radeon_encoder->encoder_id) { | ||
389 | case ENCODER_OBJECT_ID_INTERNAL_LVDS: | ||
390 | case ENCODER_OBJECT_ID_INTERNAL_TMDS1: | ||
391 | case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_TMDS1: | ||
392 | case ENCODER_OBJECT_ID_INTERNAL_LVTM1: | ||
393 | case ENCODER_OBJECT_ID_INTERNAL_DVO1: | ||
394 | case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1: | ||
395 | case ENCODER_OBJECT_ID_INTERNAL_DDI: | ||
396 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY: | ||
397 | case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA: | ||
398 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY1: | ||
399 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY2: | ||
400 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY3: | ||
401 | return true; | ||
402 | default: | ||
403 | return false; | ||
404 | } | ||
405 | } | ||
diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h index e27608c29c11..04db2fdd8692 100644 --- a/drivers/gpu/drm/radeon/radeon_mode.h +++ b/drivers/gpu/drm/radeon/radeon_mode.h | |||
@@ -777,6 +777,7 @@ extern void atombios_digital_setup(struct drm_encoder *encoder, int action); | |||
777 | extern int atombios_get_encoder_mode(struct drm_encoder *encoder); | 777 | extern int atombios_get_encoder_mode(struct drm_encoder *encoder); |
778 | extern bool atombios_set_edp_panel_power(struct drm_connector *connector, int action); | 778 | extern bool atombios_set_edp_panel_power(struct drm_connector *connector, int action); |
779 | extern void radeon_encoder_set_active_device(struct drm_encoder *encoder); | 779 | extern void radeon_encoder_set_active_device(struct drm_encoder *encoder); |
780 | extern bool radeon_encoder_is_digital(struct drm_encoder *encoder); | ||
780 | 781 | ||
781 | extern void radeon_crtc_load_lut(struct drm_crtc *crtc); | 782 | extern void radeon_crtc_load_lut(struct drm_crtc *crtc); |
782 | extern int atombios_crtc_set_base(struct drm_crtc *crtc, int x, int y, | 783 | extern int atombios_crtc_set_base(struct drm_crtc *crtc, int x, int y, |