@@ -432,6 +432,16 @@ static bool is_dmc_evt_ctl_reg(struct drm_i915_private *i915,
432
432
return offset >= start && offset < end ;
433
433
}
434
434
435
+ static bool is_dmc_evt_htp_reg (struct drm_i915_private * i915 ,
436
+ enum intel_dmc_id dmc_id , i915_reg_t reg )
437
+ {
438
+ u32 offset = i915_mmio_reg_offset (reg );
439
+ u32 start = i915_mmio_reg_offset (DMC_EVT_HTP (i915 , dmc_id , 0 ));
440
+ u32 end = i915_mmio_reg_offset (DMC_EVT_HTP (i915 , dmc_id , DMC_EVENT_HANDLER_COUNT_GEN12 ));
441
+
442
+ return offset >= start && offset < end ;
443
+ }
444
+
435
445
static bool disable_dmc_evt (struct drm_i915_private * i915 ,
436
446
enum intel_dmc_id dmc_id ,
437
447
i915_reg_t reg , u32 data )
@@ -713,9 +723,17 @@ static u32 parse_dmc_fw_header(struct intel_dmc *dmc,
713
723
return 0 ;
714
724
}
715
725
726
+ drm_dbg_kms (& i915 -> drm , "DMC %d:\n" , dmc_id );
716
727
for (i = 0 ; i < mmio_count ; i ++ ) {
717
728
dmc_info -> mmioaddr [i ] = _MMIO (mmioaddr [i ]);
718
729
dmc_info -> mmiodata [i ] = mmiodata [i ];
730
+
731
+ drm_dbg_kms (& i915 -> drm , " mmio[%d]: 0x%x = 0x%x%s%s\n" ,
732
+ i , mmioaddr [i ], mmiodata [i ],
733
+ is_dmc_evt_ctl_reg (i915 , dmc_id , dmc_info -> mmioaddr [i ]) ? " (EVT_CTL)" :
734
+ is_dmc_evt_htp_reg (i915 , dmc_id , dmc_info -> mmioaddr [i ]) ? " (EVT_HTP)" : "" ,
735
+ disable_dmc_evt (i915 , dmc_id , dmc_info -> mmioaddr [i ],
736
+ dmc_info -> mmiodata [i ]) ? " (disabling)" : "" );
719
737
}
720
738
dmc_info -> mmio_count = mmio_count ;
721
739
dmc_info -> start_mmioaddr = start_mmioaddr ;
0 commit comments