[PATCH v2 00/21] drm/tilcdc: Atomic modeset support

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

 



This series implements atomic modeset for TI's LCDC HW. The code has
been tested on X-server, weston, and our kmsxx kms testing suite. The
patches are based on my earlier tilcdc fixes and cleanups series [1].

I know that the tiny display pipe has been accepted for mainline and I
have intention of moving lcdc on top of it at some point. However,
there is just too many things I would still have to reimplemet to do
it now. How to deal with different encoders, connectors and panels
for example. This series should be considered as a first step towards
making that move. It implements many things that are needed in simple
display pipe too.

There is a lot of changes since RFC version of the series and this is
not a complete list:

- Added patches
 - drm/tilcdc: Fix tilcdc component master unloading
 - drm/tilcdc: Make tilcdc_crtc_page_flip() work if crtc is not yet on
 - drm/tilcdc: panel: Set crtc panel info at init phase
 - drm/tilcdc: panel: Add atomic modeset helpers to connector funcs
 - drm/tilcdc: tfp410: Set crtc panel info at init phase
 - drm/tilcdc: tfp410: Add atomic modeset helpers to connector funcs
 - drm/tilcdc: Enable and disable interrupts in crtc start() and stop()
 - drm/tilcdc: Use drm_atomic_helper_resume/suspend()
 - drm/tilcdc: Get rid of legacy dpms mechanism
 - drm/tilcdc: Remove unnecessary pm_runtime_get() and *_put() calls
 - drm/tilcdc: Change tilcdc_crtc_page_flip() to tilcdc_crtc_update_fb()
- At least following changes to the "old" patches
 - Add mechanism to update crtc state's mode_changed if plane fb
   pixel_format changes
 - Add tilcdc_atomic_check() for mode_config_funcs
 - Leave tilcdc_crtc_mode_fixup() connected to drm_crtc_helper_funcs

[1] https://lists.freedesktop.org/archives/dri-devel/2016-June/111258.html

Jyri Sarha (21):
  drm/tilcdc: Fix tilcdc component master unloading
  drm/tilcdc: Make tilcdc_crtc_page_flip() public
  drm/tilcdc: Make tilcdc_crtc_page_flip() work if crtc is not yet on
  drm/tilcdc: Add dummy primary plane implementation
  drm/tilcdc: Initialize dummy primary plane from crtc init
  drm/tilcdc: Add tilcdc_crtc_mode_set_nofb()
  drm/tilcdc: Add tilcdc_crtc_atomic_check()
  drm/tilcdc: Add atomic mode config funcs
  drm/tilcdc: Add drm_mode_config_reset() call to tilcdc_load()
  drm/tilcdc: Set DRIVER_ATOMIC and use atomic crtc helpers
  drm/tilcdc: Remove obsolete crtc helper functions
  drm/tilcdc: Remove tilcdc_verify_fb()
  drm/tilcdc: panel: Set crtc panel info at init phase
  drm/tilcdc: panel: Add atomic modeset helpers to connector funcs
  drm/tilcdc: tfp410: Set crtc panel info at init phase
  drm/tilcdc: tfp410: Add atomic modeset helpers to connector funcs
  drm/tilcdc: Enable and disable interrupts in crtc start() and stop()
  drm/tilcdc: Use drm_atomic_helper_resume/suspend()
  drm/tilcdc: Get rid of legacy dpms mechanism
  drm/tilcdc: Remove unnecessary pm_runtime_get() and *_put() calls
  drm/tilcdc: Change tilcdc_crtc_page_flip() to tilcdc_crtc_update_fb()

 drivers/gpu/drm/tilcdc/Makefile        |   1 +
 drivers/gpu/drm/tilcdc/tilcdc_crtc.c   | 311 ++++++++++++++++-----------------
 drivers/gpu/drm/tilcdc/tilcdc_drv.c    | 210 +++++++++++-----------
 drivers/gpu/drm/tilcdc/tilcdc_drv.h    |  14 +-
 drivers/gpu/drm/tilcdc/tilcdc_panel.c  |  11 +-
 drivers/gpu/drm/tilcdc/tilcdc_plane.c  | 132 ++++++++++++++
 drivers/gpu/drm/tilcdc/tilcdc_tfp410.c |   8 +-
 7 files changed, 410 insertions(+), 277 deletions(-)
 create mode 100644 drivers/gpu/drm/tilcdc/tilcdc_plane.c

-- 
1.9.1

_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[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