drivers/gpu/drm/i915/display/intel_cx0_phy.c       |   25 ++++---
 drivers/gpu/drm/i915/display/intel_display_power.c |    4 -
 drivers/gpu/drm/i915/display/intel_dp.c            |    2 
 drivers/gpu/drm/i915/display/intel_psr.c           |   10 +-
 drivers/gpu/drm/i915/gem/i915_gem_context_types.h  |    4 -
 drivers/gpu/drm/i915/gt/intel_gsc.h                |    7 +
 drivers/gpu/drm/i915/gt/uc/intel_guc.h             |   75 +++++++++++----------
 drivers/gpu/drm/i915/i915_perf_types.h             |    9 +-
 drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c   |    4 +
 drivers/gpu/drm/nouveau/nvkm/engine/fifo/r535.c    |    2 
 drivers/gpu/drm/nouveau/nvkm/subdev/gsp/base.c     |    8 --
 drivers/gpu/drm/rockchip/rockchip_drm_vop2.c       |    4 -
 drivers/gpu/drm/v3d/v3d_debugfs.c                  |   20 ++---
 13 files changed, 96 insertions(+), 78 deletions(-)

New commits:
commit d6b706bb0a205f5c9f165a801697f3da678a6790
Merge: 8ff65229f2d0 205e18c13545
Author: Kevin Brace <kevinbr...@bracecomputerlab.com>
Date:   Tue Jan 16 15:48:04 2024 -0600

    Merge tag 'drm-next-2024-01-15' of git://anongit.freedesktop.org/drm/drm 
into drm-next-6.8
    
    drm fixes for 6.8-rc1
    
    i915:
    - Fixes for kernel-doc warnings enforced in linux-next
    - Another build warning fix for string formatting of intel_wakeref_t
    - Display fixes for DP DSC BPC and C20 PLL state verification
    
    v3d:
    - register readout fix
    
    rockchip:
    - two build warning fixes
    
    nouveau:
    - fix GSP loading on Turing with different nvdec configuration

commit 205e18c13545ab43cc4fe4930732b4feef551198
Author: Dave Airlie <airl...@redhat.com>
Date:   Wed Jan 10 11:14:05 2024 +1000

    nouveau/gsp: handle engines in runl without nonstall interrupts.
    
    It appears on TU106 GPUs (2070), that some of the nvdec engines
    are in the runlist but have no valid nonstall interrupt, nouveau
    didn't handle that too well.
    
    This should let nouveau/gsp work on those.
    
    Cc: sta...@vger.kernel.org # v6.7+
    Signed-off-by: Dave Airlie <airl...@redhat.com>
    Link: 
https://lore.kernel.org/all/20240110011826.3996289-1-airl...@gmail.com/

diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c 
b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
index c8ce7ff18713..e74493a4569e 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.c
@@ -550,6 +550,10 @@ ga100_fifo_nonstall_ctor(struct nvkm_fifo *fifo)
                struct nvkm_engn *engn = list_first_entry(&runl->engns, 
typeof(*engn), head);
 
                runl->nonstall.vector = engn->func->nonstall(engn);
+
+               /* if no nonstall vector just keep going */
+               if (runl->nonstall.vector == -1)
+                       continue;
                if (runl->nonstall.vector < 0) {
                        RUNL_ERROR(runl, "nonstall %d", runl->nonstall.vector);
                        return runl->nonstall.vector;
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/r535.c 
b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/r535.c
index d088e636edc3..de2ebe8f2134 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/r535.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/r535.c
@@ -350,7 +350,7 @@ r535_engn_nonstall(struct nvkm_engn *engn)
        int ret;
 
        ret = nvkm_gsp_intr_nonstall(subdev->device->gsp, subdev->type, 
subdev->inst);
-       WARN_ON(ret < 0);
+       WARN_ON(ret == -ENOENT);
        return ret;
 }
 
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/base.c 
b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/base.c
index 04bceaa28a19..da1bebb896f7 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/base.c
@@ -25,12 +25,8 @@ int
 nvkm_gsp_intr_nonstall(struct nvkm_gsp *gsp, enum nvkm_subdev_type type, int 
inst)
 {
        for (int i = 0; i < gsp->intr_nr; i++) {
-               if (gsp->intr[i].type == type && gsp->intr[i].inst == inst) {
-                       if (gsp->intr[i].nonstall != ~0)
-                               return gsp->intr[i].nonstall;
-
-                       return -EINVAL;
-               }
+               if (gsp->intr[i].type == type && gsp->intr[i].inst == inst)
+                       return gsp->intr[i].nonstall;
        }
 
        return -ENOENT;
commit 9caaeb090174a5486f9e410b4f561f7569ce2654
Merge: e8aaca57f9d9 89fe46019a62
Author: Dave Airlie <airl...@redhat.com>
Date:   Mon Jan 15 10:09:33 2024 +1000

    Merge tag 'drm-misc-next-fixes-2024-01-11' of 
git://anongit.freedesktop.org/drm/drm-misc into drm-next
    
    A fix for the v3d register readout, and two compilation fixes for
    rockchip.
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>
    
    From: Maxime Ripard <mrip...@redhat.com>
    Link: 
https://patchwork.freedesktop.org/patch/msgid/warlsyhbwarbezejzokxvrpnmvoaajonj6khjobvnfrhttrsks@fqoeqrjrct6l

commit e8aaca57f9d95be26f179137821ad447678a17ca
Merge: b76c01f1d950 d505a16e00c3
Author: Dave Airlie <airl...@redhat.com>
Date:   Mon Jan 15 08:06:19 2024 +1000

    Merge tag 'drm-intel-next-fixes-2024-01-11' of 
git://anongit.freedesktop.org/drm/drm-intel into drm-next
    
    - Fixes for kernel-doc warnings enforced in linux-next
    - Another build warning fix for string formatting of intel_wakeref_t
    - Display fixes for DP DSC BPC and C20 PLL state verification
    
    Signed-off-by: Dave Airlie <airl...@redhat.com>
    From: Joonas Lahtinen <joonas.lahti...@linux.intel.com>
    Link: 
https://patchwork.freedesktop.org/patch/msgid/zz_ioclidg9lj...@jlahtine-mobl.ger.corp.intel.com

commit d505a16e00c35919fd9fe5735894645e0f70a415
Author: Randy Dunlap <rdun...@infradead.org>
Date:   Tue Dec 26 11:54:32 2023 -0800

    drm/i915/perf: reconcile Excess struct member kernel-doc warnings
    
    Document nested struct members with full names as described in
    Documentation/doc-guide/kernel-doc.rst.
    
    i915_perf_types.h:341: warning: Excess struct member 'ptr_lock' description 
in 'i915_perf_stream'
    i915_perf_types.h:341: warning: Excess struct member 'head' description in 
'i915_perf_stream'
    i915_perf_types.h:341: warning: Excess struct member 'tail' description in 
'i915_perf_stream'
    3 warnings as Errors
    
    Signed-off-by: Randy Dunlap <rdun...@infradead.org>
    Cc: Jani Nikula <jani.nik...@linux.intel.com>
    Cc: Joonas Lahtinen <joonas.lahti...@linux.intel.com>
    Cc: Rodrigo Vivi <rodrigo.v...@intel.com>
    Cc: Tvrtko Ursulin <tvrtko.ursu...@linux.intel.com>
    Cc: intel-...@lists.freedesktop.org
    Cc: Jonathan Corbet <cor...@lwn.net>
    Cc: dri-de...@lists.freedesktop.org
    Reviewed-by: Rodrigo Vivi <rodrigo.v...@intel.com>
    Reviewed-by: Andi Shyti <andi.sh...@linux.intel.com>
    Signed-off-by: Andi Shyti <andi.sh...@linux.intel.com>
    Link: 
https://patchwork.freedesktop.org/patch/msgid/20231226195432.10891-4-rdun...@infradead.org
    (cherry picked from commit aa253baca534357e033bd29b074ce1eade2a9362)
    Signed-off-by: Joonas Lahtinen <joonas.lahti...@linux.intel.com>

diff --git a/drivers/gpu/drm/i915/i915_perf_types.h 
b/drivers/gpu/drm/i915/i915_perf_types.h
index 13b1ae9b96c7..46445248d193 100644
--- a/drivers/gpu/drm/i915/i915_perf_types.h
+++ b/drivers/gpu/drm/i915/i915_perf_types.h
@@ -291,7 +291,8 @@ struct i915_perf_stream {
                int size_exponent;
 
                /**
-                * @ptr_lock: Locks reads and writes to all head/tail state
+                * @oa_buffer.ptr_lock: Locks reads and writes to all
+                * head/tail state
                 *
                 * Consider: the head and tail pointer state needs to be read
                 * consistently from a hrtimer callback (atomic context) and
@@ -313,7 +314,8 @@ struct i915_perf_stream {
                spinlock_t ptr_lock;
 
                /**
-                * @head: Although we can always read back the head pointer 
register,
+                * @oa_buffer.head: Although we can always read back
+                * the head pointer register,
                 * we prefer to avoid trusting the HW state, just to avoid any
                 * risk that some hardware condition could * somehow bump the
                 * head pointer unpredictably and cause us to forward the wrong
@@ -322,7 +324,8 @@ struct i915_perf_stream {
                u32 head;
 
                /**
-                * @tail: The last verified tail that can be read by userspace.
+                * @oa_buffer.tail: The last verified tail that can be
+                * read by userspace.
                 */
                u32 tail;
        } oa_buffer;
commit af3cfcad492f2ffbef5de36c8ee1e8f8a701938f
Author: Randy Dunlap <rdun...@infradead.org>
Date:   Tue Dec 26 11:54:31 2023 -0800

    drm/i915/guc: reconcile Excess struct member kernel-doc warnings
    
    Document nested struct members with full names as described in
    Documentation/doc-guide/kernel-doc.rst.
    
    intel_guc.h:305: warning: Excess struct member 'lock' description in 
'intel_guc'
    intel_guc.h:305: warning: Excess struct member 'guc_ids' description in 
'intel_guc'
    intel_guc.h:305: warning: Excess struct member 'num_guc_ids' description in 
'intel_guc'
    intel_guc.h:305: warning: Excess struct member 'guc_ids_bitmap' description 
in 'intel_guc'
    intel_guc.h:305: warning: Excess struct member 'guc_id_list' description in 
'intel_guc'
    intel_guc.h:305: warning: Excess struct member 'guc_ids_in_use' description 
in 'intel_guc'
    intel_guc.h:305: warning: Excess struct member 'destroyed_contexts' 
description in 'intel_guc'
    intel_guc.h:305: warning: Excess struct member 'destroyed_worker' 
description in 'intel_guc'
    intel_guc.h:305: warning: Excess struct member 'reset_fail_worker' 
description in 'intel_guc'
    intel_guc.h:305: warning: Excess struct member 'reset_fail_mask' 
description in 'intel_guc'
    intel_guc.h:305: warning: Excess struct member 'sched_disable_delay_ms' 
description in 'intel_guc'
    intel_guc.h:305: warning: Excess struct member 
'sched_disable_gucid_threshold' description in 'intel_guc'
    intel_guc.h:305: warning: Excess struct member 'lock' description in 
'intel_guc'
    intel_guc.h:305: warning: Excess struct member 'gt_stamp' description in 
'intel_guc'
    intel_guc.h:305: warning: Excess struct member 'ping_delay' description in 
'intel_guc'
    intel_guc.h:305: warning: Excess struct member 'work' description in 
'intel_guc'
    intel_guc.h:305: warning: Excess struct member 'shift' description in 
'intel_guc'
    intel_guc.h:305: warning: Excess struct member 'last_stat_jiffies' 
description in 'intel_guc'
    18 warnings as Errors
    
    Signed-off-by: Randy Dunlap <rdun...@infradead.org>
    Cc: Jani Nikula <jani.nik...@linux.intel.com>
    Cc: Joonas Lahtinen <joonas.lahti...@linux.intel.com>
    Cc: Rodrigo Vivi <rodrigo.v...@intel.com>
    Cc: Tvrtko Ursulin <tvrtko.ursu...@linux.intel.com>
    Cc: intel-...@lists.freedesktop.org
    Cc: Jonathan Corbet <cor...@lwn.net>
    Cc: dri-de...@lists.freedesktop.org
    Reviewed-by: Rodrigo Vivi <rodrigo.v...@intel.com>
    Reviewed-by: Andi Shyti <andi.sh...@linux.intel.com>
    Signed-off-by: Andi Shyti <andi.sh...@linux.intel.com>
    Link: 
https://patchwork.freedesktop.org/patch/msgid/20231226195432.10891-3-rdun...@infradead.org
    (cherry picked from commit e4cf1a70fad3e2107503e99cfe9cc0c9cba19dad)
    Signed-off-by: Joonas Lahtinen <joonas.lahti...@linux.intel.com>

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc.h 
b/drivers/gpu/drm/i915/gt/uc/intel_guc.h
index e22c12ce245a..813cc888e6fa 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc.h
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc.h
@@ -105,61 +105,67 @@ struct intel_guc {
         */
        struct {
                /**
-                * @lock: protects everything in submission_state,
-                * ce->guc_id.id, and ce->guc_id.ref when transitioning in and
-                * out of zero
+                * @submission_state.lock: protects everything in
+                * submission_state, ce->guc_id.id, and ce->guc_id.ref
+                * when transitioning in and out of zero
                 */
                spinlock_t lock;
                /**
-                * @guc_ids: used to allocate new guc_ids, single-lrc
+                * @submission_state.guc_ids: used to allocate new
+                * guc_ids, single-lrc
                 */
                struct ida guc_ids;
                /**
-                * @num_guc_ids: Number of guc_ids, selftest feature to be able
-                * to reduce this number while testing.
+                * @submission_state.num_guc_ids: Number of guc_ids, selftest
+                * feature to be able to reduce this number while testing.
                 */
                int num_guc_ids;
                /**
-                * @guc_ids_bitmap: used to allocate new guc_ids, multi-lrc
+                * @submission_state.guc_ids_bitmap: used to allocate
+                * new guc_ids, multi-lrc
                 */
                unsigned long *guc_ids_bitmap;
                /**
-                * @guc_id_list: list of intel_context with valid guc_ids but no
-                * refs
+                * @submission_state.guc_id_list: list of intel_context
+                * with valid guc_ids but no refs
                 */
                struct list_head guc_id_list;
                /**
-                * @guc_ids_in_use: Number single-lrc guc_ids in use
+                * @submission_state.guc_ids_in_use: Number single-lrc
+                * guc_ids in use
                 */
                unsigned int guc_ids_in_use;
                /**
-                * @destroyed_contexts: list of contexts waiting to be destroyed
-                * (deregistered with the GuC)
+                * @submission_state.destroyed_contexts: list of contexts
+                * waiting to be destroyed (deregistered with the GuC)
                 */
                struct list_head destroyed_contexts;
                /**
-                * @destroyed_worker: worker to deregister contexts, need as we
-                * need to take a GT PM reference and can't from destroy
-                * function as it might be in an atomic context (no sleeping)
+                * @submission_state.destroyed_worker: worker to deregister
+                * contexts, need as we need to take a GT PM reference and
+                * can't from destroy function as it might be in an atomic
+                * context (no sleeping)
                 */
                struct work_struct destroyed_worker;
                /**
-                * @reset_fail_worker: worker to trigger a GT reset after an
-                * engine reset fails
+                * @submission_state.reset_fail_worker: worker to trigger
+                * a GT reset after an engine reset fails
                 */
                struct work_struct reset_fail_worker;
                /**
-                * @reset_fail_mask: mask of engines that failed to reset
+                * @submission_state.reset_fail_mask: mask of engines that
+                * failed to reset
                 */
                intel_engine_mask_t reset_fail_mask;
                /**
-                * @sched_disable_delay_ms: schedule disable delay, in ms, for
-                * contexts
+                * @submission_state.sched_disable_delay_ms: schedule
+                * disable delay, in ms, for contexts
                 */
                unsigned int sched_disable_delay_ms;
                /**
-                * @sched_disable_gucid_threshold: threshold of min remaining 
available
-                * guc_ids before we start bypassing the schedule disable delay
+                * @submission_state.sched_disable_gucid_threshold:
+                * threshold of min remaining available guc_ids before
+                * we start bypassing the schedule disable delay
                 */
                unsigned int sched_disable_gucid_threshold;
        } submission_state;
@@ -243,37 +249,40 @@ struct intel_guc {
         */
        struct {
                /**
-                * @lock: Lock protecting the below fields and the engine stats.
+                * @timestamp.lock: Lock protecting the below fields and
+                * the engine stats.
                 */
                spinlock_t lock;
 
                /**
-                * @gt_stamp: 64 bit extended value of the GT timestamp.
+                * @timestamp.gt_stamp: 64-bit extended value of the GT
+                * timestamp.
                 */
                u64 gt_stamp;
 
                /**
-                * @ping_delay: Period for polling the GT timestamp for
-                * overflow.
+                * @timestamp.ping_delay: Period for polling the GT
+                * timestamp for overflow.
                 */
                unsigned long ping_delay;
 
                /**
-                * @work: Periodic work to adjust GT timestamp, engine and
-                * context usage for overflows.
+                * @timestamp.work: Periodic work to adjust GT timestamp,
+                * engine and context usage for overflows.
                 */
                struct delayed_work work;
 
                /**
-                * @shift: Right shift value for the gpm timestamp
+                * @timestamp.shift: Right shift value for the gpm timestamp
                 */
                u32 shift;
 
                /**
-                * @last_stat_jiffies: jiffies at last actual stats collection 
time
-                * We use this timestamp to ensure we don't oversample the
-                * stats because runtime power management events can trigger
-                * stats collection at much higher rates than required.
+                * @timestamp.last_stat_jiffies: jiffies at last actual
+                * stats collection time. We use this timestamp to ensure
+                * we don't oversample the stats because runtime power
+                * management events can trigger stats collection at much
+                * higher rates than required.
                 */
                unsigned long last_stat_jiffies;
        } timestamp;
commit 53cd65a9c95109eef402db0ed7822b7c9a8ad732
Author: Randy Dunlap <rdun...@infradead.org>
Date:   Thu Dec 28 15:49:46 2023 -0800

    drm/i915/gt: reconcile Excess struct member kernel-doc warnings
    
    Document nested struct members with full names as described in
    Documentation/doc-guide/kernel-doc.rst.
    
    intel_gsc.h:34: warning: Excess struct member 'gem_obj' description in 
'intel_gsc'
    
    Also add missing field member descriptions.
    
    Signed-off-by: Randy Dunlap <rdun...@infradead.org>
    Cc: Jani Nikula <jani.nik...@linux.intel.com>
    Cc: Joonas Lahtinen <joonas.lahti...@linux.intel.com>
    Cc: Rodrigo Vivi <rodrigo.v...@intel.com>
    Cc: Tvrtko Ursulin <tvrtko.ursu...@linux.intel.com>
    Cc: intel-...@lists.freedesktop.org
    Cc: Jonathan Corbet <cor...@lwn.net>
    Cc: dri-de...@lists.freedesktop.org
    Reviewed-by: Rodrigo Vivi <rodrigo.v...@intel.com>
    Cc: Andi Shyti <andi.sh...@linux.intel.com>
    Reviewed-by: Andi Shyti <andi.sh...@linux.intel.com>
    Signed-off-by: Andi Shyti <andi.sh...@linux.intel.com>
    Link: 
https://patchwork.freedesktop.org/patch/msgid/20231228234946.12405-1-rdun...@infradead.org
    (cherry picked from commit cd1d91115ff1929ec346d85f512ef260ddf8131e)
    Signed-off-by: Joonas Lahtinen <joonas.lahti...@linux.intel.com>

diff --git a/drivers/gpu/drm/i915/gt/intel_gsc.h 
b/drivers/gpu/drm/i915/gt/intel_gsc.h
index 7ab3ca0f9f26..013c64251448 100644
--- a/drivers/gpu/drm/i915/gt/intel_gsc.h
+++ b/drivers/gpu/drm/i915/gt/intel_gsc.h
@@ -21,8 +21,11 @@ struct mei_aux_device;
 /**
  * struct intel_gsc - graphics security controller
  *
- * @gem_obj: scratch memory GSC operations
- * @intf : gsc interface
+ * @intf: gsc interface
+ * @intf.adev: MEI aux. device for this @intf
+ * @intf.gem_obj: scratch memory GSC operations
+ * @intf.irq: IRQ for this device (%-1 for no IRQ)
+ * @intf.id: this interface's id number/index
  */
 struct intel_gsc {
        struct intel_gsc_intf {
commit 30e18a89fb1f84718a174bc02807bd9a590e2bd0
Author: Randy Dunlap <rdun...@infradead.org>
Date:   Tue Dec 26 11:54:29 2023 -0800

    drm/i915/gem: reconcile Excess struct member kernel-doc warnings
    
    Document nested struct members with full names as described in
    Documentation/doc-guide/kernel-doc.rst.
    
    i915_gem_context_types.h:420: warning: Excess struct member 'lock' 
description in 'i915_gem_context'
    
    Signed-off-by: Randy Dunlap <rdun...@infradead.org>
    Cc: Jani Nikula <jani.nik...@linux.intel.com>
    Cc: Joonas Lahtinen <joonas.lahti...@linux.intel.com>
    Cc: Rodrigo Vivi <rodrigo.v...@intel.com>
    Cc: Tvrtko Ursulin <tvrtko.ursu...@linux.intel.com>
    Cc: intel-...@lists.freedesktop.org
    Cc: Jonathan Corbet <cor...@lwn.net>
    Cc: dri-de...@lists.freedesktop.org
    Reviewed-by: Rodrigo Vivi <rodrigo.v...@intel.com>
    Reviewed-by: Andi Shyti <andi.sh...@linux.intel.com>
    Signed-off-by: Andi Shyti <andi.sh...@linux.intel.com>
    Link: 
https://patchwork.freedesktop.org/patch/msgid/20231226195432.10891-1-rdun...@infradead.org
    (cherry picked from commit 7353c3d7c15017140a8b984e41f94be0bf535e73)
    Signed-off-by: Joonas Lahtinen <joonas.lahti...@linux.intel.com>

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context_types.h 
b/drivers/gpu/drm/i915/gem/i915_gem_context_types.h
index c573c067779f..03bc7f9d191b 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_context_types.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_context_types.h
@@ -412,9 +412,9 @@ struct i915_gem_context {
 
        /** @stale: tracks stale engines to be destroyed */
        struct {
-               /** @lock: guards engines */
+               /** @stale.lock: guards engines */
                spinlock_t lock;
-               /** @engines: list of stale engines */
+               /** @stale.engines: list of stale engines */
                struct list_head engines;
        } stale;
 };
commit 584ebbefd12296c6bad009c8a0c9e610eb8283c8
Author: Ankit Nautiyal <ankit.k.nauti...@intel.com>
Date:   Wed Dec 13 14:46:29 2023 +0530

    drm/i915/dp: Fix the max DSC bpc supported by source
    
    Use correct helper for getting max DSC bpc supported by the source.
    
    Fixes: 1c56e9a39833 ("drm/i915/dp: Get optimal link config to have best 
compressed bpp")
    Cc: Ankit Nautiyal <ankit.k.nauti...@intel.com>
    Cc: Stanislav Lisovskiy <stanislav.lisovs...@intel.com>
    Cc: Jani Nikula <jani.nik...@intel.com>
    
    Signed-off-by: Ankit Nautiyal <ankit.k.nauti...@intel.com>
    Reviewed-by: Swati Sharma <swati2.sha...@intel.com>
    Link: 
https://patchwork.freedesktop.org/patch/msgid/20231213091632.431557-3-ankit.k.nauti...@intel.com
    (cherry picked from commit cd7b0b2dd3d9fecc6057c07b40e8087db2f9f71a)
    Signed-off-by: Joonas Lahtinen <joonas.lahti...@linux.intel.com>

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
index 3b2482bf683f..c3b906ebe542 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -2101,7 +2101,7 @@ static int intel_dp_dsc_compute_pipe_bpp(struct intel_dp 
*intel_dp,
                }
        }
 
-       dsc_max_bpc = intel_dp_dsc_min_src_input_bpc(i915);
+       dsc_max_bpc = intel_dp_dsc_max_src_input_bpc(i915);
        if (!dsc_max_bpc)
                return -EINVAL;
 
commit 11809687954ab2a073ec5a4bafd8281a42ff407a
Author: Jani Nikula <jani.nik...@intel.com>
Date:   Thu Jan 4 18:46:00 2024 +0200

    drm/i915: don't make assumptions about intel_wakeref_t type
    
    intel_wakeref_t is supposed to be a mostly opaque cookie to its
    users. It should only be checked for being non-zero and set to
    zero. Debug logging its actual value is meaningless. Switch to just
    debug logging whether the async_put_wakeref is non-zero.
    
    The issue dates back to much earlier than
    commit b49e894c3fd8 ("drm/i915: Replace custom intel runtime_pm tracker
    with ref_tracker library"), but this is the one that brought about a
    build failure due to the printf format.
    
    Reported-by: Stephen Rothwell <s...@canb.auug.org.au>
    Closes: https://lore.kernel.org/r/20240102111222.2db11...@canb.auug.org.au
    Fixes: b49e894c3fd8 ("drm/i915: Replace custom intel runtime_pm tracker 
with ref_tracker library")
    Cc: Andrzej Hajda <andrzej.ha...@intel.com>
    Cc: Imre Deak <imre.d...@intel.com>
    Signed-off-by: Jani Nikula <jani.nik...@intel.com>
    Reviewed-by: Imre Deak <imre.d...@intel.com>
    Reviewed-by: Andrzej Hajda <andrzej.ha...@intel.com>
    Reviewed-by: Andi Shyti <andi.sh...@linux.intel.com>
    Link: 
https://patchwork.freedesktop.org/patch/msgid/20240104164600.783371-1-jani.nik...@intel.com
    (cherry picked from commit de06b42edc5bf05aefbb7e2f59475d6022ed57e1)
    Signed-off-by: Joonas Lahtinen <joonas.lahti...@linux.intel.com>

diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c 
b/drivers/gpu/drm/i915/display/intel_display_power.c
index 5f091502719b..6fd4fa52253a 100644
--- a/drivers/gpu/drm/i915/display/intel_display_power.c
+++ b/drivers/gpu/drm/i915/display/intel_display_power.c
@@ -405,8 +405,8 @@ print_async_put_domains_state(struct i915_power_domains 
*power_domains)
                                                     struct drm_i915_private,
                                                     display.power.domains);
 
-       drm_dbg(&i915->drm, "async_put_wakeref %lu\n",
-               power_domains->async_put_wakeref);
+       drm_dbg(&i915->drm, "async_put_wakeref: %s\n",
+               str_yes_no(power_domains->async_put_wakeref));
 
        print_power_domains(power_domains, "async_put_domains[0]",
                            &power_domains->async_put_domains[0]);
commit ae8986e681e9c26fb6c140ae1ed41e6d74d38fc4
Author: Imre Deak <imre.d...@intel.com>
Date:   Wed Jan 3 17:26:09 2024 +0200

    drm/i915/dp: Fix the PSR debugfs entries wrt. MST connectors
    
    MST connectors don't have a static attached encoder, as their encoder
    can change depending on the pipe they use; so the encoder for an MST
    connector can't be retrieved using intel_dp_attached_encoder() (which
    may return NULL for MST). Most of the PSR debugfs entries depend on a
    static connector -> encoder mapping which is only true for eDP and SST
    DP connectors and not for MST. These debugfs entries were enabled for
    MST connectors as well recently to provide PR information for them, but
    handling MST connectors needs more changes.
    
    Fix this by not adding for now the PSR entries on MST connectors. To
    make things more uniform add the entries for SST connectors on all
    platforms, not just on platforms supporting DP2.0.
    
    v2:
    - Keep adding the entries for SST connectors. (Jouni)
    - Add a TODO: comment for MST support.
    
    Fixes: ef75c25e8fed ("drm/i915/panelreplay: Debugfs support for panel 
replay")
    Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/9850
    Cc: Animesh Manna <animesh.ma...@intel.com>
    Cc: Jouni Högander <jouni.hogan...@intel.com>
    Reviewed-by: Jouni Högander <jouni.hogan...@intel.com>
    Signed-off-by: Imre Deak <imre.d...@intel.com>
    Link: 
https://patchwork.freedesktop.org/patch/msgid/20240103152609.2434100-1-imre.d...@intel.com
    (cherry picked from commit 9b0b61c5bc08e1aa55a0c1e7cda28f952b2d02cc)
    Signed-off-by: Joonas Lahtinen <joonas.lahti...@linux.intel.com>

diff --git a/drivers/gpu/drm/i915/display/intel_psr.c 
b/drivers/gpu/drm/i915/display/intel_psr.c
index b6e2e70e1290..8f702c3fc62d 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -3319,11 +3319,11 @@ void intel_psr_connector_debugfs_add(struct 
intel_connector *connector)
        struct drm_i915_private *i915 = to_i915(connector->base.dev);
        struct dentry *root = connector->base.debugfs_entry;
 
-       if (connector->base.connector_type != DRM_MODE_CONNECTOR_eDP) {
-               if (!(HAS_DP20(i915) &&
-                     connector->base.connector_type == 
DRM_MODE_CONNECTOR_DisplayPort))
-                       return;
-       }
+       /* TODO: Add support for MST connectors as well. */
+       if ((connector->base.connector_type != DRM_MODE_CONNECTOR_eDP &&
+            connector->base.connector_type != DRM_MODE_CONNECTOR_DisplayPort) 
||
+           connector->mst_port)
+               return;
 
        debugfs_create_file("i915_psr_sink_status", 0444, root,
                            connector, &i915_psr_sink_status_fops);
commit a4a9779d7642111b4fb6e7415aae9da9783850bd
Author: Mika Kahola <mika.kah...@intel.com>
Date:   Tue Jan 2 13:57:39 2024 +0200

    drm/i915/display: Fix C20 pll selection for state verification
    
    Add pll selection check for C20 as well as
    clock state verification0. We have been relying
    on sw state to select A or B pll's. This is incorrect
    as the hw might see this selection differently. This
    patch fixes this shortcoming by reading pll selection
    for both sw and hw states and compares if these two
    selections match.
    
    Fixes: 59be90248b42 ("drm/i915/mtl: C20 state verification")
    
    v2: reword commit message and include fix to a
        original commit (Imre)
        Compare pll selection (Jani)
    
    Signed-off-by: Mika Kahola <mika.kah...@intel.com>
    Reviewed-by: Imre Deak <imre.d...@intel.com>
    Link: 
https://patchwork.freedesktop.org/patch/msgid/20240102115741.118525-2-mika.kah...@intel.com
    (cherry picked from commit f4304beadd88d074333b23fdc7f35d00ee763e14)
    Signed-off-by: Joonas Lahtinen <joonas.lahti...@linux.intel.com>

diff --git a/drivers/gpu/drm/i915/display/intel_cx0_phy.c 
b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
index 884a1da36089..6b25e195232f 100644
--- a/drivers/gpu/drm/i915/display/intel_cx0_phy.c
+++ b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
@@ -3067,24 +3067,29 @@ static void intel_c20pll_state_verify(const struct 
intel_crtc_state *state,
 {
        struct drm_i915_private *i915 = to_i915(crtc->base.dev);
        const struct intel_c20pll_state *mpll_sw_state = 
&state->cx0pll_state.c20;
-       bool use_mplla;
+       bool sw_use_mpllb = mpll_sw_state->tx[0] & C20_PHY_USE_MPLLB;
+       bool hw_use_mpllb = mpll_hw_state->tx[0] & C20_PHY_USE_MPLLB;
        int i;
 
-       use_mplla = intel_c20_use_mplla(mpll_hw_state->clock);
-       if (use_mplla) {
-               for (i = 0; i < ARRAY_SIZE(mpll_sw_state->mplla); i++) {
-                       I915_STATE_WARN(i915, mpll_hw_state->mplla[i] != 
mpll_sw_state->mplla[i],
-                                       "[CRTC:%d:%s] mismatch in C20MPLLA: 
Register[%d] (expected 0x%04x, found 0x%04x)",
-                                       crtc->base.base.id, crtc->base.name, i,
-                                       mpll_sw_state->mplla[i], 
mpll_hw_state->mplla[i]);
-               }
-       } else {
+       I915_STATE_WARN(i915, sw_use_mpllb != hw_use_mpllb,
+                       "[CRTC:%d:%s] mismatch in C20: Register MPLLB selection 
(expected %d, found %d)",
+                       crtc->base.base.id, crtc->base.name,
+                       sw_use_mpllb, hw_use_mpllb);
+
+       if (hw_use_mpllb) {
                for (i = 0; i < ARRAY_SIZE(mpll_sw_state->mpllb); i++) {
                        I915_STATE_WARN(i915, mpll_hw_state->mpllb[i] != 
mpll_sw_state->mpllb[i],
                                        "[CRTC:%d:%s] mismatch in C20MPLLB: 
Register[%d] (expected 0x%04x, found 0x%04x)",
                                        crtc->base.base.id, crtc->base.name, i,
                                        mpll_sw_state->mpllb[i], 
mpll_hw_state->mpllb[i]);
                }
+       } else {
+               for (i = 0; i < ARRAY_SIZE(mpll_sw_state->mplla); i++) {
+                       I915_STATE_WARN(i915, mpll_hw_state->mplla[i] != 
mpll_sw_state->mplla[i],
+                                       "[CRTC:%d:%s] mismatch in C20MPLLA: 
Register[%d] (expected 0x%04x, found 0x%04x)",
+                                       crtc->base.base.id, crtc->base.name, i,
+                                       mpll_sw_state->mplla[i], 
mpll_hw_state->mplla[i]);
+               }
        }
 
        for (i = 0; i < ARRAY_SIZE(mpll_sw_state->tx); i++) {
commit 89fe46019a62bc1d0cb49c9615cb3520096c4bc1
Author: Maíra Canal <mca...@igalia.com>
Date:   Tue Jan 9 08:30:40 2024 -0300

    drm/v3d: Fix support for register debugging on the RPi 4
    
    RPi 4 uses V3D 4.2, which is currently not supported by the register
    definition stated at `v3d_core_reg_defs`. We should be able to support
    V3D 4.2, therefore, change the maximum version of the register
    definition to 42, not 41.
    
    Fixes: 0ad5bc1ce463 ("drm/v3d: fix up register addresses for V3D 7.x")
    Signed-off-by: Maíra Canal <mca...@igalia.com>
    Reviewed-by: Iago Toral Quiroga <ito...@igalia.com>
    Link: 
https://patchwork.freedesktop.org/patch/msgid/20240109113126.929446-1-mca...@igalia.com

diff --git a/drivers/gpu/drm/v3d/v3d_debugfs.c 
b/drivers/gpu/drm/v3d/v3d_debugfs.c
index f843a50d5dce..94eafcecc65b 100644
--- a/drivers/gpu/drm/v3d/v3d_debugfs.c
+++ b/drivers/gpu/drm/v3d/v3d_debugfs.c
@@ -62,9 +62,9 @@ static const struct v3d_reg_def v3d_core_reg_defs[] = {
        REGDEF(33, 71, V3D_PTB_BPCA),
        REGDEF(33, 71, V3D_PTB_BPCS),
 
-       REGDEF(33, 41, V3D_GMP_STATUS(33)),
-       REGDEF(33, 41, V3D_GMP_CFG(33)),
-       REGDEF(33, 41, V3D_GMP_VIO_ADDR(33)),
+       REGDEF(33, 42, V3D_GMP_STATUS(33)),
+       REGDEF(33, 42, V3D_GMP_CFG(33)),
+       REGDEF(33, 42, V3D_GMP_VIO_ADDR(33)),
 
        REGDEF(33, 71, V3D_ERR_FDBGO),
        REGDEF(33, 71, V3D_ERR_FDBGB),
@@ -74,13 +74,13 @@ static const struct v3d_reg_def v3d_core_reg_defs[] = {
 
 static const struct v3d_reg_def v3d_csd_reg_defs[] = {
        REGDEF(41, 71, V3D_CSD_STATUS),
-       REGDEF(41, 41, V3D_CSD_CURRENT_CFG0(41)),
-       REGDEF(41, 41, V3D_CSD_CURRENT_CFG1(41)),
-       REGDEF(41, 41, V3D_CSD_CURRENT_CFG2(41)),
-       REGDEF(41, 41, V3D_CSD_CURRENT_CFG3(41)),
-       REGDEF(41, 41, V3D_CSD_CURRENT_CFG4(41)),
-       REGDEF(41, 41, V3D_CSD_CURRENT_CFG5(41)),
-       REGDEF(41, 41, V3D_CSD_CURRENT_CFG6(41)),
+       REGDEF(41, 42, V3D_CSD_CURRENT_CFG0(41)),
+       REGDEF(41, 42, V3D_CSD_CURRENT_CFG1(41)),
+       REGDEF(41, 42, V3D_CSD_CURRENT_CFG2(41)),
+       REGDEF(41, 42, V3D_CSD_CURRENT_CFG3(41)),
+       REGDEF(41, 42, V3D_CSD_CURRENT_CFG4(41)),
+       REGDEF(41, 42, V3D_CSD_CURRENT_CFG5(41)),
+       REGDEF(41, 42, V3D_CSD_CURRENT_CFG6(41)),
        REGDEF(71, 71, V3D_CSD_CURRENT_CFG0(71)),
        REGDEF(71, 71, V3D_CSD_CURRENT_CFG1(71)),
        REGDEF(71, 71, V3D_CSD_CURRENT_CFG2(71)),
commit 196da3f3f76a46905f7daab29c56974f1aba9a7a
Author: Cristian Ciocaltea <cristian.ciocal...@collabora.com>
Date:   Fri Jan 5 19:40:06 2024 +0200

    drm/rockchip: vop2: Drop unused if_dclk_rate variable
    
    Commit 5a028e8f062f ("drm/rockchip: vop2: Add support for rk3588")
    introduced a variable which ended up being unused:
    
    rockchip_drm_vop2.c:1688:23: warning: variable ‘if_dclk_rate’ set but not 
used [-Wunused-but-set-variable]
    
    This has been initially used as part of a formula to compute the clock
    dividers, but eventually it has been replaced by static values.
    
    Drop the variable declaration and move its assignment to the comment
    block, to serve as documentation of how the constants have been
    generated.
    
    Signed-off-by: Cristian Ciocaltea <cristian.ciocal...@collabora.com>
    Signed-off-by: Heiko Stuebner <he...@sntech.de>
    Link: 
https://patchwork.freedesktop.org/patch/msgid/20240105174007.98054-1-cristian.ciocal...@collabora.com

diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c 
b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
index a3a03e9cfe13..85b3b4871a1d 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
@@ -1680,7 +1680,6 @@ static unsigned long rk3588_calc_cru_cfg(struct 
vop2_video_port *vp, int id,
        unsigned long dclk_core_rate = v_pixclk >> 2;
        unsigned long dclk_rate = v_pixclk;
        unsigned long dclk_out_rate;
-       unsigned long if_dclk_rate;
        unsigned long if_pixclk_rate;
        int K = 1;
 
@@ -1695,8 +1694,8 @@ static unsigned long rk3588_calc_cru_cfg(struct 
vop2_video_port *vp, int id,
                }
 
                if_pixclk_rate = (dclk_core_rate << 1) / K;
-               if_dclk_rate = dclk_core_rate / K;
                /*
+                * if_dclk_rate = dclk_core_rate / K;
                 * *if_pixclk_div = dclk_rate / if_pixclk_rate;
                 * *if_dclk_div = dclk_rate / if_dclk_rate;
                 */
commit 38709af26c33e398c3292e96837ccfde41fd9e6b
Author: Cristian Ciocaltea <cristian.ciocal...@collabora.com>
Date:   Thu Jan 4 16:39:49 2024 +0200

    drm/rockchip: vop2: Drop superfluous include
    
    The rockchip_drm_fb.h header contains just a single function which is
    not directly used by the VOP2 driver.  Drop the unnecessary include.
    
    Signed-off-by: Cristian Ciocaltea <cristian.ciocal...@collabora.com>
    Signed-off-by: Heiko Stuebner <he...@sntech.de>
    Link: 
https://patchwork.freedesktop.org/patch/msgid/20240104143951.85219-1-cristian.ciocal...@collabora.com

diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c 
b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
index 574103fc79f9..a3a03e9cfe13 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
@@ -35,7 +35,6 @@
 
 #include "rockchip_drm_drv.h"
 #include "rockchip_drm_gem.h"
-#include "rockchip_drm_fb.h"
 #include "rockchip_drm_vop2.h"
 #include "rockchip_rgb.h"
 

Reply via email to