aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/radeon_mode.h
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2012-09-13 10:56:16 -0400
committerAlex Deucher <alexander.deucher@amd.com>2012-09-20 13:10:44 -0400
commit19eca43e5a52a8e47fdd40e940912b2417c7c055 (patch)
tree9ca6f599f97728f13be6f4abe81829973d1c302a /drivers/gpu/drm/radeon/radeon_mode.h
parent2f454cf1261ba913e2f660b7555864b340502c60 (diff)
drm/radeon: rework crtc pll setup to better support PPLL sharing
We need the calculate the pixel clock before allocating a PPLL in order to insure the clocks really match. Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_mode.h')
-rw-r--r--drivers/gpu/drm/radeon/radeon_mode.h32
1 files changed, 20 insertions, 12 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h
index 5005057974b1..9f45e4bf06e9 100644
--- a/drivers/gpu/drm/radeon/radeon_mode.h
+++ b/drivers/gpu/drm/radeon/radeon_mode.h
@@ -282,6 +282,18 @@ struct radeon_tv_regs {
282 uint16_t v_code_timing[MAX_V_CODE_TIMING_LEN]; 282 uint16_t v_code_timing[MAX_V_CODE_TIMING_LEN];
283}; 283};
284 284
285struct radeon_atom_ss {
286 uint16_t percentage;
287 uint8_t type;
288 uint16_t step;
289 uint8_t delay;
290 uint8_t range;
291 uint8_t refdiv;
292 /* asic_ss */
293 uint16_t rate;
294 uint16_t amount;
295};
296
285struct radeon_crtc { 297struct radeon_crtc {
286 struct drm_crtc base; 298 struct drm_crtc base;
287 int crtc_id; 299 int crtc_id;
@@ -306,6 +318,14 @@ struct radeon_crtc {
306 /* page flipping */ 318 /* page flipping */
307 struct radeon_unpin_work *unpin_work; 319 struct radeon_unpin_work *unpin_work;
308 int deferred_flip_completion; 320 int deferred_flip_completion;
321 /* pll sharing */
322 struct radeon_atom_ss ss;
323 bool ss_enabled;
324 u32 adjusted_clock;
325 int bpc;
326 u32 pll_reference_div;
327 u32 pll_post_div;
328 u32 pll_flags;
309}; 329};
310 330
311struct radeon_encoder_primary_dac { 331struct radeon_encoder_primary_dac {
@@ -359,18 +379,6 @@ struct radeon_encoder_ext_tmds {
359}; 379};
360 380
361/* spread spectrum */ 381/* spread spectrum */
362struct radeon_atom_ss {
363 uint16_t percentage;
364 uint8_t type;
365 uint16_t step;
366 uint8_t delay;
367 uint8_t range;
368 uint8_t refdiv;
369 /* asic_ss */
370 uint16_t rate;
371 uint16_t amount;
372};
373
374struct radeon_encoder_atom_dig { 382struct radeon_encoder_atom_dig {
375 bool linkb; 383 bool linkb;
376 /* atom dig */ 384 /* atom dig */