All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-gfx] [PATCH v5 0/6] Panel replay phase1 implementation
@ 2023-09-05  7:35 ` Animesh Manna
  0 siblings, 0 replies; 27+ messages in thread
From: Animesh Manna @ 2023-09-05  7:35 UTC (permalink / raw)
  To: intel-gfx, dri-devel; +Cc: jani.nikula

Panel Replay is a power saving feature for DP 2.0 monitor and similar
to PSR on EDP.

These patches are basic enablement patches added on top of
existing psr framework to enable full-screen live active frame
update mode of panel replay. Panel replay also can be enabled
in selective update mode which will be enabled in a incremental
approach.

As per current design panel replay priority is higher than psr.
intel_dp->psr.panel_replay_enabled flag indicate panel replay is enabled.
intel_dp->psr.panel_replay_enabled + intel_dp->psr.psr2_enabled indicates
panel replay is enabled in selective update mode.
intel_dp->psr.panel_replay_enabled + intel_dp->psr.psr2_enabled +
intel_psr.selective_fetch enabled indicates panel replay is
enabled in selective update mode with selective fetch.
PSR replated flags remain same like before.

Note: The patches are under testing by using panel replay emulator and
panel is not avalible.

Cc: Jouni Högander <jouni.hogander@intel.com>
Signed-off-by: Animesh Manna <animesh.manna@intel.com>

Animesh Manna (5):
  drm/panelreplay: dpcd register definition for panelreplay
  drm/i915/panelreplay: Initializaton and compute config for panel
    replay
  drm/i915/panelreplay: Enable panel replay dpcd initialization for DP
  drm/i915/panelreplay: enable/disable panel replay
  drm/i915/panelreplay: Debugfs support for panel replay

Jouni Högander (1):
  drm/i915/psr: Move psr specific dpcd init into own function

 .../drm/i915/display/intel_display_types.h    |  15 +-
 drivers/gpu/drm/i915/display/intel_dp.c       |  45 ++-
 drivers/gpu/drm/i915/display/intel_dp_mst.c   |   3 +
 drivers/gpu/drm/i915/display/intel_psr.c      | 269 ++++++++++++------
 drivers/gpu/drm/i915/display/intel_psr.h      |   7 +
 include/drm/display/drm_dp.h                  |  18 ++
 6 files changed, 257 insertions(+), 100 deletions(-)

-- 
2.29.0


^ permalink raw reply	[flat|nested] 27+ messages in thread
* Re: [Intel-gfx] [PATCH v5 3/6] drm/i915/panelreplay: Initializaton and compute config for panel replay
@ 2023-09-05 23:00 kernel test robot
  0 siblings, 0 replies; 27+ messages in thread
From: kernel test robot @ 2023-09-05 23:00 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20230905073551.958368-4-animesh.manna@intel.com>
References: <20230905073551.958368-4-animesh.manna@intel.com>
TO: Animesh Manna <animesh.manna@intel.com>
TO: intel-gfx@lists.freedesktop.org
TO: dri-devel@lists.freedesktop.org
CC: jani.nikula@intel.com

Hi Animesh,

kernel test robot noticed the following build warnings:

[auto build test WARNING on drm-tip/drm-tip]

url:    https://github.com/intel-lab-lkp/linux/commits/Animesh-Manna/drm-panelreplay-dpcd-register-definition-for-panelreplay/20230905-154811
base:   git://anongit.freedesktop.org/drm/drm-tip drm-tip
patch link:    https://lore.kernel.org/r/20230905073551.958368-4-animesh.manna%40intel.com
patch subject: [Intel-gfx] [PATCH v5 3/6] drm/i915/panelreplay: Initializaton and compute config for panel replay
:::::: branch date: 15 hours ago
:::::: commit date: 15 hours ago
config: i386-randconfig-141-20230906 (https://download.01.org/0day-ci/archive/20230906/202309060644.uWp5zW4i-lkp@intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230906/202309060644.uWp5zW4i-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202309060644.uWp5zW4i-lkp@intel.com/

smatch warnings:
drivers/gpu/drm/i915/display/intel_dp.c:3779 intel_dp_vsc_sdp_pack() warn: was && intended here instead of ||?

vim +3779 drivers/gpu/drm/i915/display/intel_dp.c

0c06fa156006c7 Gwan-gyeong Mun 2019-09-19  3754  
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3755  static ssize_t intel_dp_vsc_sdp_pack(const struct drm_dp_vsc_sdp *vsc,
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3756  				     struct dp_sdp *sdp, size_t size)
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3757  {
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3758  	size_t length = sizeof(struct dp_sdp);
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3759  
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3760  	if (size < length)
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3761  		return -ENOSPC;
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3762  
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3763  	memset(sdp, 0, size);
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3764  
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3765  	/*
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3766  	 * Prepare VSC Header for SU as per DP 1.4a spec, Table 2-119
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3767  	 * VSC SDP Header Bytes
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3768  	 */
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3769  	sdp->sdp_header.HB0 = 0; /* Secondary-Data Packet ID = 0 */
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3770  	sdp->sdp_header.HB1 = vsc->sdp_type; /* Secondary-data Packet Type */
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3771  	sdp->sdp_header.HB2 = vsc->revision; /* Revision Number */
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3772  	sdp->sdp_header.HB3 = vsc->length; /* Number of Valid Data Bytes */
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3773  
cafac5a9836199 Gwan-gyeong Mun 2020-05-14  3774  	/*
4dd2d4a2ffcae4 Animesh Manna   2023-09-05  3775  	 * Other than revision 0x5 which supports Pixel Encoding/Colorimetry
4dd2d4a2ffcae4 Animesh Manna   2023-09-05  3776  	 * Format as per DP 1.4a spec, revision 0x7 also supports Pixel
4dd2d4a2ffcae4 Animesh Manna   2023-09-05  3777  	 * Encoding/Colorimetry Format as per DP 2.0 spec.
cafac5a9836199 Gwan-gyeong Mun 2020-05-14  3778  	 */
4dd2d4a2ffcae4 Animesh Manna   2023-09-05 @3779  	if (vsc->revision != 0x5 || vsc->revision != 0x7)
cafac5a9836199 Gwan-gyeong Mun 2020-05-14  3780  		goto out;
cafac5a9836199 Gwan-gyeong Mun 2020-05-14  3781  
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3782  	/* VSC SDP Payload for DB16 through DB18 */
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3783  	/* Pixel Encoding and Colorimetry Formats  */
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3784  	sdp->db[16] = (vsc->pixelformat & 0xf) << 4; /* DB16[7:4] */
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3785  	sdp->db[16] |= vsc->colorimetry & 0xf; /* DB16[3:0] */
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3786  
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3787  	switch (vsc->bpc) {
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3788  	case 6:
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3789  		/* 6bpc: 0x0 */
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3790  		break;
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3791  	case 8:
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3792  		sdp->db[17] = 0x1; /* DB17[3:0] */
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3793  		break;
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3794  	case 10:
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3795  		sdp->db[17] = 0x2;
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3796  		break;
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3797  	case 12:
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3798  		sdp->db[17] = 0x3;
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3799  		break;
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3800  	case 16:
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3801  		sdp->db[17] = 0x4;
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3802  		break;
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3803  	default:
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3804  		MISSING_CASE(vsc->bpc);
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3805  		break;
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3806  	}
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3807  	/* Dynamic Range and Component Bit Depth */
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3808  	if (vsc->dynamic_range == DP_DYNAMIC_RANGE_CTA)
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3809  		sdp->db[17] |= 0x80;  /* DB17[7] */
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3810  
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3811  	/* Content Type */
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3812  	sdp->db[18] = vsc->content_type & 0x7;
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3813  
cafac5a9836199 Gwan-gyeong Mun 2020-05-14  3814  out:
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3815  	return length;
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3816  }
03c761b00c87d6 Gwan-gyeong Mun 2020-02-11  3817  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2023-09-11  6:59 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-05  7:35 [Intel-gfx] [PATCH v5 0/6] Panel replay phase1 implementation Animesh Manna
2023-09-05  7:35 ` Animesh Manna
2023-09-05  7:35 ` [Intel-gfx] [PATCH v5 1/6] drm/panelreplay: dpcd register definition for panelreplay Animesh Manna
2023-09-05  7:35   ` Animesh Manna
2023-09-05  7:35 ` [Intel-gfx] [PATCH v5 2/6] drm/i915/psr: Move psr specific dpcd init into own function Animesh Manna
2023-09-05  7:35   ` Animesh Manna
2023-09-05  7:35 ` [Intel-gfx] [PATCH v5 3/6] drm/i915/panelreplay: Initializaton and compute config for panel replay Animesh Manna
2023-09-05  7:35   ` Animesh Manna
2023-09-05 11:00   ` [Intel-gfx] " kernel test robot
2023-09-05 11:00     ` kernel test robot
2023-09-05 11:42   ` kernel test robot
2023-09-05 11:42     ` kernel test robot
2023-09-06  9:00   ` Dan Carpenter
2023-09-06  9:00     ` Dan Carpenter
2023-09-06  9:00     ` Dan Carpenter
2023-09-11  6:59   ` Hogander, Jouni
2023-09-11  6:59     ` Hogander, Jouni
2023-09-05  7:35 ` [Intel-gfx] [PATCH v5 4/6] drm/i915/panelreplay: Enable panel replay dpcd initialization for DP Animesh Manna
2023-09-05  7:35   ` Animesh Manna
2023-09-05  7:35 ` [Intel-gfx] [PATCH v5 5/6] drm/i915/panelreplay: enable/disable panel replay Animesh Manna
2023-09-05  7:35   ` Animesh Manna
2023-09-05  7:35 ` [Intel-gfx] [PATCH v5 6/6] drm/i915/panelreplay: Debugfs support for " Animesh Manna
2023-09-05  7:35   ` Animesh Manna
2023-09-05 21:06 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Panel replay phase1 implementation (rev7) Patchwork
2023-09-05 21:06 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2023-09-05 21:25 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2023-09-05 23:00 [Intel-gfx] [PATCH v5 3/6] drm/i915/panelreplay: Initializaton and compute config for panel replay kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.