OSDN Git Service

drm/i915/display: Always enables MST master pipe first
authorJosé Roberto de Souza <jose.souza@intel.com>
Mon, 23 Dec 2019 01:06:50 +0000 (17:06 -0800)
committerJosé Roberto de Souza <jose.souza@intel.com>
Mon, 23 Dec 2019 17:26:42 +0000 (09:26 -0800)
commit659f14158f1f0d6d8b3246aa67898fd66b0d5cda
tree3c8906f8d7bc5afab731183d908ba0e7e46f73bc
parent6671c367a9beae742855317d278cf9922bf556fe
drm/i915/display: Always enables MST master pipe first

Due to DDB overlaps the pipe enabling sequence is not always crescent.
As the previous patch selects the smallest pipe/transcoder in the MST
stream to be master and it needs to be enabled first, this changes
were needed to guarantee that.

So first lets enable all pipes that do not need a fullmodeset as
those don't have any external dependency and those are the ones that
can overlap with each other.

Then on the second loop it will enable all the pipes that needs a
modeset and don't depends on other pipes like MST master
pipe/transcoder.

Then finally all the pipes that needs a modeset and have dependency
on other pipes, that at this point are alread enabled.

v3: rebased

v4:
- added check for modeset_pipes too to decide if is necessary for a
wait a vblank
- added DDB allocation overlap check for pipes that needs a modeset

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
Cc: Manasi Navare <manasi.d.navare@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191223010654.67037-3-jose.souza@intel.com
drivers/gpu/drm/i915/display/intel_display.c