drm/mgag200: Added resolution and bandwidth limits for various G200e products.
Subsystems (3)
PATCH 1/1 drm/mgag200: Added resolution and bandwidth limits for various G200e products.
In reply to Julia LemireThis code was ported from the old xorg mga driver. These limits were implemented as a solution to a number of problems that were seen. These problems were linked to the bandwidth limitations of the g200e series.
--- drivers/gpu/drm/mgag200/mgag200_drv.h | 41 ++++++++++++------------ drivers/gpu/drm/mgag200/mgag200_main.c | 2 +- drivers/gpu/drm/mgag200/mgag200_mode.c | 55 ++++++++++++++++++++++++++++++-- 3 files changed, 75 insertions(+), 23 deletions(-)
drivers/gpu/drm/mgag200/mgag200_drv.h +21 -20
@@ -168,37 +168,38 @@ enum mga_type {#define IS_G200_SE (mdev) (mdev->type == G200_SE_A || mdev->type == G200_SE_B)struct mga_device { -struct drm_device *dev; -unsigned long flags; +struct drm_device *dev; +unsigned long flags; -resource_size_t rmmio_base; -resource_size_t rmmio_size; -void __iomem *rmmio; +resource_size_t rmmio_base; +resource_size_t rmmio_size; +void __iomem *rmmio; -drm_local_map_t *framebuffer; +drm_local_map_t *framebuffer; -struct mga_mc mc; -struct mga_mode_info mode_info; +struct mga_mc mc; +struct mga_mode_info mode_info; -struct mga_fbdev *mfbdev; +struct mga_fbdev *mfbdev; -bool suspended; -int num_crtc; -enum mga_type type; -int has_sdram; -struct drm_display_mode mode; +bool suspended; +int num_crtc; +enum mga_type type; +int has_sdram; +struct drm_display_mode mode; -int bpp_shifts[4 ]; +int bpp_shifts[4 ]; -int fb_mtrr; +int fb_mtrr;struct { -struct drm_global_reference mem_global_ref; -struct ttm_bo_global_ref bo_global_ref; -struct ttm_bo_device bdev; +struct drm_global_reference mem_global_ref; +struct ttm_bo_global_ref bo_global_ref; +struct ttm_bo_device bdev; } ttm; -u32 reg_1e24;/* SE model number */ +/* SE model number stored in reg 0x1e24 */ +u32 unique_rev_id; };
drivers/gpu/drm/mgag200/mgag200_main.c +1 -1
@@ -176,7 +176,7 @@ static int mgag200_device_init(struct drm_device *dev,/* stash G200 SE model number for later use */ if (IS_G200_SE (mdev)) - mdev->reg_1e24 =RREG32 (0x1e24 ); + mdev->unique_rev_id =RREG32 (0x1e24 ); ret =mga_vram_init (mdev);if (ret)
drivers/gpu/drm/mgag200/mgag200_mode.c +53 -2
79 lines not on this page · raw message
Signature · 1 line
1.7.10.4
cover drm/mgag200: Added resolution and bandwidth limits for various G200e products.
At the larger resolutions, the g200e series sometimes struggles with maintaining a proper output. Problems like flickering or black bands appearing on screen can occur. In order to avoid this, limitations regarding resolutions and bandwidth have been added for the different variations of the g200e series.
Julia Lemire (1):
drm/mgag200: Added resolution and bandwidth limits for various G200e
products.
drivers/gpu/drm/mgag200/mgag200_drv.h | 41 ++++++++++++------------ drivers/gpu/drm/mgag200/mgag200_main.c | 2 +- drivers/gpu/drm/mgag200/mgag200_mode.c | 55 ++++++++++++++++++++++++++++++-- 3 files changed, 75 insertions(+), 23 deletions(-)
Signature · 1 line
1.7.10.4