[Intel-xe] [PATCH] drm/xe/sr: Apply masked registers properly
Matt Atwood
matthew.s.atwood at intel.com
Wed Apr 19 22:53:20 UTC 2023
On Wed, Apr 19, 2023 at 03:49:09PM -0700, Matt Roper wrote:
> The 'clear' field for register save/restore entries was being placed in
> the value bits of the register rather than the mask bits; make sure it
> gets shifted into the mask bits.
>
> Cc: Lucas De Marchi <lucas.demarchi at intel.com>
> Cc: Matt Atwood <matthew.s.atwood at intel.com>
tested this, fixes the following behavior:
Before
[drm:xe_reg_sr_apply_mmio [xe]] REG[0x20ec] = 0x00000002
After
[drm:xe_reg_sr_apply_mmio [xe]] REG[0x20ec] = 0x00020002
Reviewed-by: Matt Atwood <matthew.s.atwood at intel.com>
> Signed-off-by: Matt Roper <matthew.d.roper at intel.com>
> ---
> drivers/gpu/drm/xe/xe_reg_sr.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_reg_sr.c b/drivers/gpu/drm/xe/xe_reg_sr.c
> index feed87109e93..f77203b32026 100644
> --- a/drivers/gpu/drm/xe/xe_reg_sr.c
> +++ b/drivers/gpu/drm/xe/xe_reg_sr.c
> @@ -150,7 +150,7 @@ static void apply_one_mmio(struct xe_gt *gt, u32 reg,
> * supposed to set all bits.
> */
> if (entry->masked_reg)
> - val = (entry->clr_bits ?: entry->set_bits << 16);
> + val = (entry->clr_bits ?: entry->set_bits) << 16;
> else if (entry->clr_bits + 1)
> val = (entry->reg_type == XE_RTP_REG_MCR ?
> xe_gt_mcr_unicast_read_any(gt, MCR_REG(reg)) :
> --
> 2.40.0
>
More information about the Intel-xe
mailing list