aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2014-09-18 16:27:46 -0400
committerAlex Deucher <alexander.deucher@amd.com>2014-10-01 09:00:02 -0400
commitd740a93337e7b04b2b648fbc4bcf5f8726d98202 (patch)
tree7a8a1e9e775db0acbebfd473dfd0cd9d82f65fcb
parentf68fdbe42539851f1bbf9a4dee5150f467a64c36 (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.c23
-rw-r--r--drivers/gpu/drm/radeon/r600_audio.c25
-rw-r--r--drivers/gpu/drm/radeon/radeon_encoders.c21
-rw-r--r--drivers/gpu/drm/radeon/radeon_mode.h1
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)
291bool radeon_atom_get_tv_timings(struct radeon_device *rdev, int index, 291bool 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
295static 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
317static bool radeon_atom_mode_fixup(struct drm_encoder *encoder, 294static 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 */
35static 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 */
58static int r600_audio_chipset_supported(struct radeon_device *rdev) 35static 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
385bool 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);
777extern int atombios_get_encoder_mode(struct drm_encoder *encoder); 777extern int atombios_get_encoder_mode(struct drm_encoder *encoder);
778extern bool atombios_set_edp_panel_power(struct drm_connector *connector, int action); 778extern bool atombios_set_edp_panel_power(struct drm_connector *connector, int action);
779extern void radeon_encoder_set_active_device(struct drm_encoder *encoder); 779extern void radeon_encoder_set_active_device(struct drm_encoder *encoder);
780extern bool radeon_encoder_is_digital(struct drm_encoder *encoder);
780 781
781extern void radeon_crtc_load_lut(struct drm_crtc *crtc); 782extern void radeon_crtc_load_lut(struct drm_crtc *crtc);
782extern int atombios_crtc_set_base(struct drm_crtc *crtc, int x, int y, 783extern int atombios_crtc_set_base(struct drm_crtc *crtc, int x, int y,