<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Hi Daniel,<br>
    <br>
    <div class="moz-cite-prefix">On 05/31/2016 10:38 PM, Daniel Vetter
      wrote:<br>
    </div>
    <blockquote cite="mid:20160531143831.GK7231@phenom.ffwll.local"
      type="cite">
      <pre wrap="">On Tue, May 31, 2016 at 09:37:36PM +0800, Yakir Yang wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">The full name of PSR is Panel Self Refresh, panel device could refresh
itself with the hardware framebuffer in panel, this would make a lots
of sense to save the power consumption.

For example, when desktop haven't change the context for a long time,
then we could refresh the data to the hardware framebuffer of panel,
and then let panel enter into PSR mode. After that system could poweroff
the LCDC controller and eDP controller, just let panel refresh the screen
by itself.

It's hard to decide when panel should enter into PSR or exit from PSR, in
this time I chose to let the drm_vblank enable/disable event driver the PSR.

This thread is based on Mark's RK3399 VOP thread[0] and my RK3399 eDP
thread[1].

[0]: <a class="moz-txt-link-freetext" href="https://patchwork.kernel.org/patch/8886041/">https://patchwork.kernel.org/patch/8886041/</a>
[1]: <a class="moz-txt-link-freetext" href="https://patchwork.kernel.org/patch/9132713/">https://patchwork.kernel.org/patch/9132713/</a>
</pre>
      </blockquote>
      <pre wrap="">
Looks like you didn't wire up the drm_framebuffer->funcs->dirty callback
for manual upload of simple clients like bootsplash or fbdev. I think
that's needed. At least it's needed for every other manual upload dsi and
edp psr implementation.
-Daniel
</pre>
    </blockquote>
    <br>
    That's great, thanks for your remind. Seems like userspace which
    does<br>
    frontbuffer rendering must call this ioctl to flush out the changes
    on<br>
    manual-update display outputs. It's helpful to hook this callback to<br>
    notify eDP refresh the eDP RFB(remote frame buffer).<br>
    <br>
    But I think this is hard to used on Rockchip eDP controller,
    Rockchip eDP<br>
    driver just used two modes, Sink Device PSR_S0 (PSR inactive), and
    Sink<br>
    Device PSR_S2 (PSR active, display from RFB). <br>
    <br>
    I think the "dirty" callback is only used when Sink device enter
    into PSR_S3<br>
    mode (PSR active, capture and display), need to update the remote
    frame<br>
    buffer. But on Rockchip platform the panel would be very easy to
    lose frame<br>
    in this PSR mode. I'm confused in this case, so I didn't enable
    that.<br>
    <br>
    If we didn't enable the PSR_S3 mode, then we don't need to update
    the panel<br>
    remote frame buffer, so this "->dirty" callback would be unused
    in this case.<br>
    <meta http-equiv="content-type" content="text/html;
      charset=windows-1252">
    <br>
    Thanks,<br>
    - Yakir<br>
    <br>
    <br>
    <blockquote cite="mid:20160531143831.GK7231@phenom.ffwll.local"
      type="cite">
      <pre wrap="">
</pre>
      <blockquote type="cite">
        <pre wrap="">
- Yakir
Thanks,


Yakir Yang (2):
  drm/rockchip: add a notify event about vblank enable/disable
  drm/rockchip: analogix: add eDP PSR function

 drivers/gpu/drm/bridge/analogix/analogix_dp_core.c |  69 ++++++++++++++
 drivers/gpu/drm/bridge/analogix/analogix_dp_core.h |   5 +
 drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c  |  54 +++++++++++
 drivers/gpu/drm/bridge/analogix/analogix_dp_reg.h  |  28 ++++++
 drivers/gpu/drm/rockchip/Makefile                  |   2 +-
 drivers/gpu/drm/rockchip/analogix_dp-rockchip.c    |  65 +++++++++++++
 drivers/gpu/drm/rockchip/rockchip_drm_notify.c     | 105 +++++++++++++++++++++
 drivers/gpu/drm/rockchip/rockchip_drm_notify.h     |  33 +++++++
 drivers/gpu/drm/rockchip/rockchip_drm_vop.c        |  96 +++++++++++++++++++
 drivers/gpu/drm/rockchip/rockchip_drm_vop.h        |   3 +
 drivers/gpu/drm/rockchip/rockchip_vop_reg.c        |   2 +
 include/drm/bridge/analogix_dp.h                   |   3 +
 12 files changed, 464 insertions(+), 1 deletion(-)
 create mode 100644 drivers/gpu/drm/rockchip/rockchip_drm_notify.c
 create mode 100644 drivers/gpu/drm/rockchip/rockchip_drm_notify.h

-- 
1.9.1


</pre>
      </blockquote>
      <pre wrap="">
</pre>
    </blockquote>
    <br>
  </body>
</html>