[PATCH v3 00/16] drm/ast: Clean up display-mode detection and validation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The ast driver detects support for display modes from hardware features
and internal mode tables. Streamline the detection code and put all
validation into a single place.

Patches 1 to 6 refactor the code for detecting support for widescreen
modes. Regular 4:3 modes are supported by all hardware Gens; support
for widescreen modes differs among hardware Gens and individual boards.
The series moves all hardware-related code into a single helper 
function that set state flags accordingly. Other places within the
driver then refer to these flags.

Building upon this, patches 7 to 16 refactor display-mode validation.
The ast driver contains a list of display modes supported by the VBIOS.
The series changes the driver to validate DRM display modes against
the VBIOS modes.

Tested on various hardware Gens and display modes.

v3:
- clarify commit messages on astdp changes (Jocelyn)
v2:
- move mode detection into helper functions (Jocelyn)
- replace various large switch statements with LUTs (Jocelyn)
- set max width/height from fullhd flag

Thomas Zimmermann (16):
  drm/ast: Remove 1152x864 from list of widescreen resolutions
  drm/ast: Align naming in widescreen detection code to manual
  drm/ast: Rename support_wide_screen to support_wsxga_p
  drm/ast: Reorganize widescreen test around hardware Gens
  drm/ast: Add support_fullhd flag to struct ast_device
  drm/ast: Add support_wuxga flag to struct ast_device
  drm/ast: Always validate H/V sync flags
  drm/ast: Find VBIOS mode from regular display size
  drm/ast: Add empty initializer for VBIOS modes
  drm/ast: Add helpers for VBIOS mode lookup
  drm/ast: Validate DRM display modes against VBIOS modes
  drm/ast: Inline ast_get_vbios_mode_info()
  drm/ast: astdp: Rework display-mode setting
  drm/ast: astdp: Look up mode index from table
  drm/ast: Remove struct ast_vbios_mode_info
  drm/ast: Only look up VBIOS mode on full modesets

 drivers/gpu/drm/ast/Makefile     |   1 +
 drivers/gpu/drm/ast/ast_dp.c     | 168 +++++++++--------
 drivers/gpu/drm/ast/ast_drv.c    |   2 +-
 drivers/gpu/drm/ast/ast_drv.h    |  30 +--
 drivers/gpu/drm/ast/ast_main.c   | 102 +++++++---
 drivers/gpu/drm/ast/ast_mode.c   | 315 +++++++++----------------------
 drivers/gpu/drm/ast/ast_post.c   |   2 +-
 drivers/gpu/drm/ast/ast_reg.h    |  30 ++-
 drivers/gpu/drm/ast/ast_tables.h | 187 +-----------------
 drivers/gpu/drm/ast/ast_vbios.c  | 241 +++++++++++++++++++++++
 drivers/gpu/drm/ast/ast_vbios.h  | 108 +++++++++++
 11 files changed, 628 insertions(+), 558 deletions(-)
 create mode 100644 drivers/gpu/drm/ast/ast_vbios.c
 create mode 100644 drivers/gpu/drm/ast/ast_vbios.h


base-commit: 9afc49c1b29a25d9efba5e29e43c9ce3986e569c
prerequisite-patch-id: 0aa359f6144c4015c140c8a6750be19099c676fb
prerequisite-patch-id: c67e5d886a47b7d0266d81100837557fda34cb24
prerequisite-patch-id: cbc453ee02fae02af22fbfdce56ab732c7a88c36
prerequisite-patch-id: 3f99a9f751f2659d0fbb07e88abc3904dca961e1
prerequisite-patch-id: 838dd5f8f6a89bda83ee22ec918adf1be2fe70e5
prerequisite-patch-id: 68d3a49734dc01e652902fe59dea1a6f79ae212f
prerequisite-patch-id: 4043e36e87c74b8fc89ce9b38fd875c6c58aa591
prerequisite-patch-id: cb8fb20896035f39d61086ac0c432b15b09130c9
prerequisite-patch-id: ca36d50bffbd3adaf5bcd6419eeca3331ac1e554
prerequisite-patch-id: 0fa92030ec82bc84b12c9614c4d043c908283a02
prerequisite-patch-id: c20dacec2a612e566e0f4be254d7ced143466d60
prerequisite-patch-id: 8264e077bed425b3945e85169ed13620c54cddc7
prerequisite-patch-id: c3705fe8a5b349da66fdaa66bd33f0b78dd154ca
-- 
2.48.1




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux