diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_mode.h')
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_mode.h | 51 |
1 files changed, 27 insertions, 24 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h index 9173b687462b..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) |
| @@ -124,6 +127,7 @@ struct radeon_tmds_pll { | |||
| 124 | #define RADEON_PLL_PREFER_LOW_POST_DIV (1 << 8) | 127 | #define RADEON_PLL_PREFER_LOW_POST_DIV (1 << 8) |
| 125 | #define RADEON_PLL_PREFER_HIGH_POST_DIV (1 << 9) | 128 | #define RADEON_PLL_PREFER_HIGH_POST_DIV (1 << 9) |
| 126 | #define RADEON_PLL_USE_FRAC_FB_DIV (1 << 10) | 129 | #define RADEON_PLL_USE_FRAC_FB_DIV (1 << 10) |
| 130 | #define RADEON_PLL_PREFER_CLOSEST_LOWER (1 << 11) | ||
| 127 | 131 | ||
| 128 | struct radeon_pll { | 132 | struct radeon_pll { |
| 129 | uint16_t reference_freq; | 133 | uint16_t reference_freq; |
| @@ -170,6 +174,18 @@ struct radeon_mode_info { | |||
| 170 | struct atom_context *atom_context; | 174 | struct atom_context *atom_context; |
| 171 | enum radeon_connector_table connector_table; | 175 | enum radeon_connector_table connector_table; |
| 172 | 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; | ||
| 173 | }; | 189 | }; |
| 174 | 190 | ||
| 175 | struct radeon_crtc { | 191 | struct radeon_crtc { |
| @@ -185,19 +201,13 @@ struct radeon_crtc { | |||
| 185 | uint64_t cursor_addr; | 201 | uint64_t cursor_addr; |
| 186 | int cursor_width; | 202 | int cursor_width; |
| 187 | int cursor_height; | 203 | int cursor_height; |
| 188 | }; | 204 | uint32_t legacy_display_base_addr; |
| 189 | 205 | uint32_t legacy_cursor_offset; | |
| 190 | #define RADEON_USE_RMX 1 | 206 | enum radeon_rmx_type rmx_type; |
| 191 | 207 | uint32_t devices; | |
| 192 | struct radeon_native_mode { | 208 | fixed20_12 vsc; |
| 193 | /* preferred mode */ | 209 | fixed20_12 hsc; |
| 194 | uint32_t panel_xres, panel_yres; | 210 | struct radeon_native_mode native_mode; |
| 195 | uint32_t hoverplus, hsync_width; | ||
| 196 | uint32_t hblank; | ||
| 197 | uint32_t voverplus, vsync_width; | ||
| 198 | uint32_t vblank; | ||
| 199 | uint32_t dotclock; | ||
| 200 | uint32_t flags; | ||
| 201 | }; | 211 | }; |
| 202 | 212 | ||
| 203 | struct radeon_encoder_primary_dac { | 213 | struct radeon_encoder_primary_dac { |
| @@ -383,16 +393,9 @@ void radeon_enc_destroy(struct drm_encoder *encoder); | |||
| 383 | 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); |
| 384 | void radeon_combios_asic_init(struct drm_device *dev); | 394 | void radeon_combios_asic_init(struct drm_device *dev); |
| 385 | extern int radeon_static_clocks_init(struct drm_device *dev); | 395 | extern int radeon_static_clocks_init(struct drm_device *dev); |
| 386 | void radeon_init_disp_bw_legacy(struct drm_device *dev, | 396 | bool radeon_crtc_scaling_mode_fixup(struct drm_crtc *crtc, |
| 387 | struct drm_display_mode *mode1, | 397 | struct drm_display_mode *mode, |
| 388 | uint32_t pixel_bytes1, | 398 | struct drm_display_mode *adjusted_mode); |
| 389 | struct drm_display_mode *mode2, | 399 | void atom_rv515_force_tv_scaler(struct radeon_device *rdev); |
| 390 | uint32_t pixel_bytes2); | ||
| 391 | void radeon_init_disp_bw_avivo(struct drm_device *dev, | ||
| 392 | struct drm_display_mode *mode1, | ||
| 393 | uint32_t pixel_bytes1, | ||
| 394 | struct drm_display_mode *mode2, | ||
| 395 | uint32_t pixel_bytes2); | ||
| 396 | void radeon_init_disp_bandwidth(struct drm_device *dev); | ||
| 397 | 400 | ||
| 398 | #endif | 401 | #endif |
