On 9/20/2016 1:55 PM, Ville Syrjälä wrote:
On Tue, Aug 30, 2016 at 10:30:54AM +0530, Nabendu Maiti wrote:
Following patch series add pipe scaler functionality in atomic path.The pipe
scaler can be changed dynamically without modeset.Apart from default panel
fitter supported scaling modes -CENTER/ASPECT/FULLSCREEN custom scaling mode
mode is added as there is no such restriction on GEn9 pipe scaler.

Some quick observations:
- missing any interaction with drm core, so all generic fb size checks
  and whatnot will not work out, I think
Pipe scaler is not dependent on fp I think. We have fb size checks are done in plane check.

- the way it's done goes against what I've suggested in the past. My
  idea has been to add a "fixed mode" property to connectors instead,
  which I think would minimize the impact on the core, and it would
  follow closely the way eDP/LVDS/DSI already works today.
yes using fixed mode we can do also but I wanted to be part of crtc property instead of connector property. As fixed mode is basically intended for fixed mode panels.But we may use pipe scaler for fixed mode and dynamic mode panels.

- There's no need to restrict the feature to gen9+ only. It should work
  out just fine for at least all pch platforms. gmch platforms would be
  more challenging
This code I designed to use gen9+, and properties like crtc destination size and offsets also exposed.There is no restrictions on modes (eg. pillerbox/letterbox) and down scaling ratios as previous platforms. Currently scaling mode is part of connector property and implemented as legacy property. I created new scaling mode as atomic property. I think gen9+ onward platforms may have proper atomic pipe scaling properties and user space may use it fully dynamically without modeset.

- the pfiter_recalculate thing looks pretty wrong atomic wise
Sorry, I couldn't get it. Are you referring pipe scaler registers are not written together with other registers? pfiter_calculate only calculate and stores the data for later commit. Please provide more details on it.

Nabendu Maiti (7):
  drm/i915: Add pipe scaler pipe source drm property
  drm/i915: Add pipe_src size property calculations in atomic path.
  drm/i915: Panel fitting calculation for GEN9
  drm/i915: Adding atomic fitting mode property for GEN9
  drm/i915: Add pipe scaler co-ordinate and size property for Gen9
  drm/i915: Update pipe-scaler according to destination size
  drm/i915: Pipescaler destination size limit check on Gen9

 drivers/gpu/drm/drm_atomic.c         |  35 ++++++++++
 drivers/gpu/drm/drm_crtc.c           |  56 +++++++++++++++
 drivers/gpu/drm/i915/intel_display.c | 128 +++++++++++++++++++++++++++++++++--
 drivers/gpu/drm/i915/intel_drv.h     |   3 +
 drivers/gpu/drm/i915/intel_panel.c   |  34 +++++++++-
 include/drm/drm_crtc.h               |  14 ++++
 include/uapi/drm/drm_mode.h          |   1 +
 7 files changed, 263 insertions(+), 8 deletions(-)


Intel-gfx mailing list

Intel-gfx mailing list

Reply via email to