diff options
author | Jerome Glisse <jglisse@redhat.com> | 2009-07-13 15:04:08 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2009-07-29 01:45:09 -0400 |
commit | c93bb85b5cba3e3a06f2cad8e9bc5c23d3d10aac (patch) | |
tree | 3168bee69e08dcb1f0f509b03ea1693a688d34ef /drivers/gpu/drm/radeon/radeon_mode.h | |
parent | e024e11070a0a0dc7163ce1ec2da354a638bdbed (diff) |
drm/radeon/kms: fix bandwidth computation on avivo hardware
Fix bandwidth computation and crtc priority in memory controller
so that crtc memory request are fullfill in time to avoid display
artifact.
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_mode.h')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_mode.h | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h index ba89b59f6e50..3b09a1f2d8f9 100644 --- a/drivers/gpu/drm/radeon/radeon_mode.h +++ b/drivers/gpu/drm/radeon/radeon_mode.h | |||
@@ -36,6 +36,9 @@ | |||
36 | #include <linux/i2c.h> | 36 | #include <linux/i2c.h> |
37 | #include <linux/i2c-id.h> | 37 | #include <linux/i2c-id.h> |
38 | #include <linux/i2c-algo-bit.h> | 38 | #include <linux/i2c-algo-bit.h> |
39 | #include "radeon_fixed.h" | ||
40 | |||
41 | struct radeon_device; | ||
39 | 42 | ||
40 | #define to_radeon_crtc(x) container_of(x, struct radeon_crtc, base) | 43 | #define to_radeon_crtc(x) container_of(x, struct radeon_crtc, base) |
41 | #define to_radeon_connector(x) container_of(x, struct radeon_connector, base) | 44 | #define to_radeon_connector(x) container_of(x, struct radeon_connector, base) |
@@ -171,6 +174,18 @@ struct radeon_mode_info { | |||
171 | struct atom_context *atom_context; | 174 | struct atom_context *atom_context; |
172 | enum radeon_connector_table connector_table; | 175 | enum radeon_connector_table connector_table; |
173 | bool mode_config_initialized; | 176 | bool mode_config_initialized; |
177 | struct radeon_crtc *crtcs[2]; | ||
178 | }; | ||
179 | |||
180 | struct radeon_native_mode { | ||
181 | /* preferred mode */ | ||
182 | uint32_t panel_xres, panel_yres; | ||
183 | uint32_t hoverplus, hsync_width; | ||
184 | uint32_t hblank; | ||
185 | uint32_t voverplus, vsync_width; | ||
186 | uint32_t vblank; | ||
187 | uint32_t dotclock; | ||
188 | uint32_t flags; | ||
174 | }; | 189 | }; |
175 | 190 | ||
176 | struct radeon_crtc { | 191 | struct radeon_crtc { |
@@ -188,19 +203,11 @@ struct radeon_crtc { | |||
188 | int cursor_height; | 203 | int cursor_height; |
189 | uint32_t legacy_display_base_addr; | 204 | uint32_t legacy_display_base_addr; |
190 | uint32_t legacy_cursor_offset; | 205 | uint32_t legacy_cursor_offset; |
191 | }; | 206 | enum radeon_rmx_type rmx_type; |
192 | 207 | uint32_t devices; | |
193 | #define RADEON_USE_RMX 1 | 208 | fixed20_12 vsc; |
194 | 209 | fixed20_12 hsc; | |
195 | struct radeon_native_mode { | 210 | struct radeon_native_mode native_mode; |
196 | /* preferred mode */ | ||
197 | uint32_t panel_xres, panel_yres; | ||
198 | uint32_t hoverplus, hsync_width; | ||
199 | uint32_t hblank; | ||
200 | uint32_t voverplus, vsync_width; | ||
201 | uint32_t vblank; | ||
202 | uint32_t dotclock; | ||
203 | uint32_t flags; | ||
204 | }; | 211 | }; |
205 | 212 | ||
206 | struct radeon_encoder_primary_dac { | 213 | struct radeon_encoder_primary_dac { |
@@ -386,16 +393,9 @@ void radeon_enc_destroy(struct drm_encoder *encoder); | |||
386 | void radeon_copy_fb(struct drm_device *dev, struct drm_gem_object *dst_obj); | 393 | void radeon_copy_fb(struct drm_device *dev, struct drm_gem_object *dst_obj); |
387 | void radeon_combios_asic_init(struct drm_device *dev); | 394 | void radeon_combios_asic_init(struct drm_device *dev); |
388 | extern int radeon_static_clocks_init(struct drm_device *dev); | 395 | extern int radeon_static_clocks_init(struct drm_device *dev); |
389 | void radeon_init_disp_bw_legacy(struct drm_device *dev, | 396 | bool radeon_crtc_scaling_mode_fixup(struct drm_crtc *crtc, |
390 | struct drm_display_mode *mode1, | 397 | struct drm_display_mode *mode, |
391 | uint32_t pixel_bytes1, | 398 | struct drm_display_mode *adjusted_mode); |
392 | struct drm_display_mode *mode2, | 399 | void atom_rv515_force_tv_scaler(struct radeon_device *rdev); |
393 | uint32_t pixel_bytes2); | ||
394 | void radeon_init_disp_bw_avivo(struct drm_device *dev, | ||
395 | struct drm_display_mode *mode1, | ||
396 | uint32_t pixel_bytes1, | ||
397 | struct drm_display_mode *mode2, | ||
398 | uint32_t pixel_bytes2); | ||
399 | void radeon_init_disp_bandwidth(struct drm_device *dev); | ||
400 | 400 | ||
401 | #endif | 401 | #endif |