Re: [igt-dev] [PATCH i-g-t 07/10] tools/intel_watermark: Dump all ARB_CTL registers on skl+

Govindapillai, Vinod
2023-02-06T11:26:19Z

On Wed, 2023-01-25 at 06:55 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Dump the ARB_CTL registers on all skl+ platforms as well,
> and decode the "FBC watermark disable" and "IPC enable"
> bits from therein. Those at least are relevant for the
> watermark state.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---

Reviewed-by: Vinod Govindapillai <vinod.govindapillai@intel.com>

>  tools/intel_watermark.c | 27 ++++++++++++++++++++++++++-
>  1 file changed, 26 insertions(+), 1 deletion(-)
>
> diff --git a/tools/intel_watermark.c b/tools/intel_watermark.c
> index 66e76e0dd3ef..7e957f0c8e9a 100644
> --- a/tools/intel_watermark.c
> +++ b/tools/intel_watermark.c
> @@ -321,10 +321,13 @@ static void skl_wm_dump(void)
>         uint32_t nv12_buf_cfg[num_pipes][max_planes];
>         uint32_t plane_ctl[num_pipes][max_planes];
>         uint32_t wm_linetime[num_pipes];
> -       uint32_t wm_dbg;
> +       uint32_t arb_ctl, arb_ctl2, wm_dbg;
>
>         intel_register_access_init(&mmio_data, intel_get_pci_device(), 0, -1);
>
> +       arb_ctl = read_reg(0x45000);
> +       arb_ctl2 = read_reg(0x45004);
> +
>         for (pipe = 0; pipe < num_pipes; pipe++) {
>                 int num_planes = skl_num_planes(devid, pipe);
>
> @@ -453,6 +456,22 @@ static void skl_wm_dump(void)
>         }
>         printf("\n");
>
> +       if (intel_gen(devid) >= 13) {
> +               printf(" ARB_LP_CTL 0x%08x\n", arb_ctl);
> +               printf(" ARB_HP_CTL 0x%08x\n", arb_ctl2);
> +       } else if (intel_gen(devid) >= 12) {
> +               printf("        ARB_CTL 0x%08x\n", arb_ctl);
> +               printf("  ARB_CTL_ABOX1 0x%08x\n", read_reg(0x45800));
> +               printf("  ARB_CTL_ABOX2 0x%08x\n", read_reg(0x45808));
> +               printf("       ARB_CTL2 0x%08x\n", arb_ctl2);
> +               printf(" ARB_CTL2_ABOX1 0x%08x\n", read_reg(0x45804));
> +               printf(" ARB_CTL2_ABOX2 0x%08x\n", read_reg(0x4580c));
> +       } else {
> +               printf("  ARB_CTL 0x%08x\n", arb_ctl);
> +               printf(" ARB_CTL2 0x%08x\n", arb_ctl2);
> +       }
> +       printf("\n");
> +
>         for (pipe = 0; pipe < num_pipes; pipe++) {
>                 uint32_t start, end, size;
>                 uint32_t lines, blocks, enable;
> @@ -583,6 +602,12 @@ static void skl_wm_dump(void)
>                 printf("\n\n\n");
>         }
>
> +       if (intel_gen(devid) < 13)
> +               printf("FBC watermark: %s\n", endis(!REG_DECODE1(arb_ctl, 15, 1)));
> +       printf("IPC: %s\n", endis(REG_DECODE1(arb_ctl2, 3, 1)));
> +
> +       printf("\n");
> +
>         printf("* plane watermark enabled\n");
>         printf("(x) line watermark if enabled\n");
>