2023-11-29 09:32:02

by Paul Elder

[permalink] [raw]
Subject: [PATCH 2/3] media: rkisp1: debug: Add register dump for IS

Add register dump for the image stabilizer module to debugfs.

Signed-off-by: Paul Elder <[email protected]>
---
.../platform/rockchip/rkisp1/rkisp1-debug.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
index 71df3dc95e6f..f66b9754472e 100644
--- a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
+++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
@@ -139,6 +139,21 @@ static int rkisp1_debug_dump_mi_mp_show(struct seq_file *m, void *p)
}
DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_mi_mp);

+static int rkisp1_debug_dump_is_show(struct seq_file *m, void *p)
+{
+ static const struct rkisp1_debug_register registers[] = {
+ RKISP1_DEBUG_SHD_REG(ISP_IS_H_OFFS),
+ RKISP1_DEBUG_SHD_REG(ISP_IS_V_OFFS),
+ RKISP1_DEBUG_SHD_REG(ISP_IS_H_SIZE),
+ RKISP1_DEBUG_SHD_REG(ISP_IS_V_SIZE),
+ { /* Sentinel */ },
+ };
+ struct rkisp1_device *rkisp1 = m->private;
+
+ return rkisp1_debug_dump_regs(rkisp1, m, 0, registers);
+}
+DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_is);
+
#define RKISP1_DEBUG_DATA_COUNT_BINS 32
#define RKISP1_DEBUG_DATA_COUNT_STEP (4096 / RKISP1_DEBUG_DATA_COUNT_BINS)

@@ -235,6 +250,9 @@ void rkisp1_debug_init(struct rkisp1_device *rkisp1)

debugfs_create_file("mi_mp", 0444, regs_dir, rkisp1,
&rkisp1_debug_dump_mi_mp_fops);
+
+ debugfs_create_file("is", 0444, regs_dir, rkisp1,
+ &rkisp1_debug_dump_is_fops);
}

void rkisp1_debug_cleanup(struct rkisp1_device *rkisp1)
--
2.39.2


2023-11-29 11:01:06

by Alexander Stein

[permalink] [raw]
Subject: Re: [PATCH 2/3] media: rkisp1: debug: Add register dump for IS

Hi Paul,

thanks for the patch.

Am Mittwoch, 29. November 2023, 10:29:55 CET schrieb Paul Elder:
> Add register dump for the image stabilizer module to debugfs.
>
> Signed-off-by: Paul Elder <[email protected]>

Tested with a 1080p and 720p stream, without offsets.
Tested-by: Alexander Stein <[email protected]>

> ---
> .../platform/rockchip/rkisp1/rkisp1-debug.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
> b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c index
> 71df3dc95e6f..f66b9754472e 100644
> --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
> +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
> @@ -139,6 +139,21 @@ static int rkisp1_debug_dump_mi_mp_show(struct seq_file
> *m, void *p) }
> DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_mi_mp);
>
> +static int rkisp1_debug_dump_is_show(struct seq_file *m, void *p)
> +{
> + static const struct rkisp1_debug_register registers[] = {
> + RKISP1_DEBUG_SHD_REG(ISP_IS_H_OFFS),
> + RKISP1_DEBUG_SHD_REG(ISP_IS_V_OFFS),
> + RKISP1_DEBUG_SHD_REG(ISP_IS_H_SIZE),
> + RKISP1_DEBUG_SHD_REG(ISP_IS_V_SIZE),
> + { /* Sentinel */ },
> + };
> + struct rkisp1_device *rkisp1 = m->private;
> +
> + return rkisp1_debug_dump_regs(rkisp1, m, 0, registers);
> +}
> +DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_is);
> +
> #define RKISP1_DEBUG_DATA_COUNT_BINS 32
> #define RKISP1_DEBUG_DATA_COUNT_STEP (4096 / RKISP1_DEBUG_DATA_COUNT_BINS)
>
> @@ -235,6 +250,9 @@ void rkisp1_debug_init(struct rkisp1_device *rkisp1)
>
> debugfs_create_file("mi_mp", 0444, regs_dir, rkisp1,
> &rkisp1_debug_dump_mi_mp_fops);
> +
> + debugfs_create_file("is", 0444, regs_dir, rkisp1,
> + &rkisp1_debug_dump_is_fops);
> }
>
> void rkisp1_debug_cleanup(struct rkisp1_device *rkisp1)


--
TQ-Systems GmbH | M?hlstra?e 2, Gut Delling | 82229 Seefeld, Germany
Amtsgericht M?nchen, HRB 105018
Gesch?ftsf?hrer: Detlef Schneider, R?diger Stahl, Stefan Schneider
http://www.tq-group.com/


2023-11-29 20:06:01

by Kieran Bingham

[permalink] [raw]
Subject: Re: [PATCH 2/3] media: rkisp1: debug: Add register dump for IS

Quoting Paul Elder (2023-11-29 09:29:55)
> Add register dump for the image stabilizer module to debugfs.
>

Is the Image Stabilizer on all variants of the ISP?

I.e. is it valid register space on the RK3399 implementation?

If so then:
Reviewed-by: Kieran Bingham <[email protected]>

> Signed-off-by: Paul Elder <[email protected]>
> ---
> .../platform/rockchip/rkisp1/rkisp1-debug.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
> index 71df3dc95e6f..f66b9754472e 100644
> --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
> +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
> @@ -139,6 +139,21 @@ static int rkisp1_debug_dump_mi_mp_show(struct seq_file *m, void *p)
> }
> DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_mi_mp);
>
> +static int rkisp1_debug_dump_is_show(struct seq_file *m, void *p)
> +{
> + static const struct rkisp1_debug_register registers[] = {
> + RKISP1_DEBUG_SHD_REG(ISP_IS_H_OFFS),
> + RKISP1_DEBUG_SHD_REG(ISP_IS_V_OFFS),
> + RKISP1_DEBUG_SHD_REG(ISP_IS_H_SIZE),
> + RKISP1_DEBUG_SHD_REG(ISP_IS_V_SIZE),

I expect so as you haven't added the register macros in this series so
they must already be there ...


> + { /* Sentinel */ },
> + };
> + struct rkisp1_device *rkisp1 = m->private;
> +
> + return rkisp1_debug_dump_regs(rkisp1, m, 0, registers);
> +}
> +DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_is);
> +
> #define RKISP1_DEBUG_DATA_COUNT_BINS 32
> #define RKISP1_DEBUG_DATA_COUNT_STEP (4096 / RKISP1_DEBUG_DATA_COUNT_BINS)
>
> @@ -235,6 +250,9 @@ void rkisp1_debug_init(struct rkisp1_device *rkisp1)
>
> debugfs_create_file("mi_mp", 0444, regs_dir, rkisp1,
> &rkisp1_debug_dump_mi_mp_fops);
> +
> + debugfs_create_file("is", 0444, regs_dir, rkisp1,
> + &rkisp1_debug_dump_is_fops);
> }
>
> void rkisp1_debug_cleanup(struct rkisp1_device *rkisp1)
> --
> 2.39.2
>

2023-11-30 09:47:27

by Paul Elder

[permalink] [raw]
Subject: Re: [PATCH 2/3] media: rkisp1: debug: Add register dump for IS

On Wed, Nov 29, 2023 at 08:05:42PM +0000, Kieran Bingham wrote:
> Quoting Paul Elder (2023-11-29 09:29:55)
> > Add register dump for the image stabilizer module to debugfs.
> >
>
> Is the Image Stabilizer on all variants of the ISP?
>
> I.e. is it valid register space on the RK3399 implementation?

Yes, it is.

>
> If so then:
> Reviewed-by: Kieran Bingham <[email protected]>
>
> > Signed-off-by: Paul Elder <[email protected]>
> > ---
> > .../platform/rockchip/rkisp1/rkisp1-debug.c | 18 ++++++++++++++++++
> > 1 file changed, 18 insertions(+)
> >
> > diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
> > index 71df3dc95e6f..f66b9754472e 100644
> > --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
> > +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
> > @@ -139,6 +139,21 @@ static int rkisp1_debug_dump_mi_mp_show(struct seq_file *m, void *p)
> > }
> > DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_mi_mp);
> >
> > +static int rkisp1_debug_dump_is_show(struct seq_file *m, void *p)
> > +{
> > + static const struct rkisp1_debug_register registers[] = {
> > + RKISP1_DEBUG_SHD_REG(ISP_IS_H_OFFS),
> > + RKISP1_DEBUG_SHD_REG(ISP_IS_V_OFFS),
> > + RKISP1_DEBUG_SHD_REG(ISP_IS_H_SIZE),
> > + RKISP1_DEBUG_SHD_REG(ISP_IS_V_SIZE),
>
> I expect so as you haven't added the register macros in this series so
> they must already be there ...

Yep :)


Paul

>
>
> > + { /* Sentinel */ },
> > + };
> > + struct rkisp1_device *rkisp1 = m->private;
> > +
> > + return rkisp1_debug_dump_regs(rkisp1, m, 0, registers);
> > +}
> > +DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_is);
> > +
> > #define RKISP1_DEBUG_DATA_COUNT_BINS 32
> > #define RKISP1_DEBUG_DATA_COUNT_STEP (4096 / RKISP1_DEBUG_DATA_COUNT_BINS)
> >
> > @@ -235,6 +250,9 @@ void rkisp1_debug_init(struct rkisp1_device *rkisp1)
> >
> > debugfs_create_file("mi_mp", 0444, regs_dir, rkisp1,
> > &rkisp1_debug_dump_mi_mp_fops);
> > +
> > + debugfs_create_file("is", 0444, regs_dir, rkisp1,
> > + &rkisp1_debug_dump_is_fops);
> > }
> >
> > void rkisp1_debug_cleanup(struct rkisp1_device *rkisp1)
> > --
> > 2.39.2
> >

2023-11-30 09:55:08

by Alexander Stein

[permalink] [raw]
Subject: Re: [PATCH 2/3] media: rkisp1: debug: Add register dump for IS

Hi Paul,

Am Donnerstag, 30. November 2023, 10:47:00 CET schrieb Paul Elder:
> On Wed, Nov 29, 2023 at 08:05:42PM +0000, Kieran Bingham wrote:
> > Quoting Paul Elder (2023-11-29 09:29:55)
> >
> > > Add register dump for the image stabilizer module to debugfs.
> >
> > Is the Image Stabilizer on all variants of the ISP?
> >
> > I.e. is it valid register space on the RK3399 implementation?
>
> Yes, it is.

Is there some public documentation available how this ISP works? For RK3399 or
i.MX8MP.

Best regards,
Alexander

>
> > If so then:
> > Reviewed-by: Kieran Bingham <[email protected]>
> >
> > > Signed-off-by: Paul Elder <[email protected]>
> > > ---
> > >
> > > .../platform/rockchip/rkisp1/rkisp1-debug.c | 18 ++++++++++++++++++
> > > 1 file changed, 18 insertions(+)
> > >
> > > diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
> > > b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c index
> > > 71df3dc95e6f..f66b9754472e 100644
> > > --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
> > > +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
> > > @@ -139,6 +139,21 @@ static int rkisp1_debug_dump_mi_mp_show(struct
> > > seq_file *m, void *p)> >
> > > }
> > > DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_mi_mp);
> > >
> > > +static int rkisp1_debug_dump_is_show(struct seq_file *m, void *p)
> > > +{
> > > + static const struct rkisp1_debug_register registers[] = {
> > > + RKISP1_DEBUG_SHD_REG(ISP_IS_H_OFFS),
> > > + RKISP1_DEBUG_SHD_REG(ISP_IS_V_OFFS),
> > > + RKISP1_DEBUG_SHD_REG(ISP_IS_H_SIZE),
> > > + RKISP1_DEBUG_SHD_REG(ISP_IS_V_SIZE),
> >
> > I expect so as you haven't added the register macros in this series so
> > they must already be there ...
>
> Yep :)
>
>
> Paul
>
> > > + { /* Sentinel */ },
> > > + };
> > > + struct rkisp1_device *rkisp1 = m->private;
> > > +
> > > + return rkisp1_debug_dump_regs(rkisp1, m, 0, registers);
> > > +}
> > > +DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_is);
> > > +
> > >
> > > #define RKISP1_DEBUG_DATA_COUNT_BINS 32
> > > #define RKISP1_DEBUG_DATA_COUNT_STEP (4096 /
> > > RKISP1_DEBUG_DATA_COUNT_BINS)> >
> > > @@ -235,6 +250,9 @@ void rkisp1_debug_init(struct rkisp1_device *rkisp1)
> > >
> > > debugfs_create_file("mi_mp", 0444, regs_dir, rkisp1,
> > >
> > > &rkisp1_debug_dump_mi_mp_fops);
> > >
> > > +
> > > + debugfs_create_file("is", 0444, regs_dir, rkisp1,
> > > + &rkisp1_debug_dump_is_fops);
> > >
> > > }
> > >
> > > void rkisp1_debug_cleanup(struct rkisp1_device *rkisp1)


--
TQ-Systems GmbH | M?hlstra?e 2, Gut Delling | 82229 Seefeld, Germany
Amtsgericht M?nchen, HRB 105018
Gesch?ftsf?hrer: Detlef Schneider, R?diger Stahl, Stefan Schneider
http://www.tq-group.com/


2023-11-30 10:19:00

by Tommaso Merciai

[permalink] [raw]
Subject: Re: [PATCH 2/3] media: rkisp1: debug: Add register dump for IS

Hi Alexander,

On Thu, Nov 30, 2023 at 10:54:46AM +0100, Alexander Stein wrote:
> Hi Paul,
>
> Am Donnerstag, 30. November 2023, 10:47:00 CET schrieb Paul Elder:
> > On Wed, Nov 29, 2023 at 08:05:42PM +0000, Kieran Bingham wrote:
> > > Quoting Paul Elder (2023-11-29 09:29:55)
> > >
> > > > Add register dump for the image stabilizer module to debugfs.
> > >
> > > Is the Image Stabilizer on all variants of the ISP?
> > >
> > > I.e. is it valid register space on the RK3399 implementation?
> >
> > Yes, it is.
>
> Is there some public documentation available how this ISP works? For RK3399 or
> i.MX8MP.

For the ISP there is some public docs into imx8mp reference manual at page 5895
chapter:

13.14 Image Signal Processor (ISP)

https://www.nxp.com/webapp/Download?colCode=IMX8MPRM
https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/evaluation-kit-for-the-i-mx-8m-plus-applications-processor:8MPLUSLPD4-EVK

This is not the full docs I think but cover some part of the ISP
functionality.

Hope this help.

Regards,
Tommaso

>
> Best regards,
> Alexander
>
> >
> > > If so then:
> > > Reviewed-by: Kieran Bingham <[email protected]>
> > >
> > > > Signed-off-by: Paul Elder <[email protected]>
> > > > ---
> > > >
> > > > .../platform/rockchip/rkisp1/rkisp1-debug.c | 18 ++++++++++++++++++
> > > > 1 file changed, 18 insertions(+)
> > > >
> > > > diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
> > > > b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c index
> > > > 71df3dc95e6f..f66b9754472e 100644
> > > > --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
> > > > +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
> > > > @@ -139,6 +139,21 @@ static int rkisp1_debug_dump_mi_mp_show(struct
> > > > seq_file *m, void *p)> >
> > > > }
> > > > DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_mi_mp);
> > > >
> > > > +static int rkisp1_debug_dump_is_show(struct seq_file *m, void *p)
> > > > +{
> > > > + static const struct rkisp1_debug_register registers[] = {
> > > > + RKISP1_DEBUG_SHD_REG(ISP_IS_H_OFFS),
> > > > + RKISP1_DEBUG_SHD_REG(ISP_IS_V_OFFS),
> > > > + RKISP1_DEBUG_SHD_REG(ISP_IS_H_SIZE),
> > > > + RKISP1_DEBUG_SHD_REG(ISP_IS_V_SIZE),
> > >
> > > I expect so as you haven't added the register macros in this series so
> > > they must already be there ...
> >
> > Yep :)
> >
> >
> > Paul
> >
> > > > + { /* Sentinel */ },
> > > > + };
> > > > + struct rkisp1_device *rkisp1 = m->private;
> > > > +
> > > > + return rkisp1_debug_dump_regs(rkisp1, m, 0, registers);
> > > > +}
> > > > +DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_is);
> > > > +
> > > >
> > > > #define RKISP1_DEBUG_DATA_COUNT_BINS 32
> > > > #define RKISP1_DEBUG_DATA_COUNT_STEP (4096 /
> > > > RKISP1_DEBUG_DATA_COUNT_BINS)> >
> > > > @@ -235,6 +250,9 @@ void rkisp1_debug_init(struct rkisp1_device *rkisp1)
> > > >
> > > > debugfs_create_file("mi_mp", 0444, regs_dir, rkisp1,
> > > >
> > > > &rkisp1_debug_dump_mi_mp_fops);
> > > >
> > > > +
> > > > + debugfs_create_file("is", 0444, regs_dir, rkisp1,
> > > > + &rkisp1_debug_dump_is_fops);
> > > >
> > > > }
> > > >
> > > > void rkisp1_debug_cleanup(struct rkisp1_device *rkisp1)
>
>
> --
> TQ-Systems GmbH | M?hlstra?e 2, Gut Delling | 82229 Seefeld, Germany
> Amtsgericht M?nchen, HRB 105018
> Gesch?ftsf?hrer: Detlef Schneider, R?diger Stahl, Stefan Schneider
> http://www.tq-group.com/
>
>
>

2023-11-30 11:34:20

by Paul Elder

[permalink] [raw]
Subject: Re: [PATCH 2/3] media: rkisp1: debug: Add register dump for IS

On Thu, Nov 30, 2023 at 10:54:46AM +0100, Alexander Stein wrote:
> Hi Paul,
>
> Am Donnerstag, 30. November 2023, 10:47:00 CET schrieb Paul Elder:
> > On Wed, Nov 29, 2023 at 08:05:42PM +0000, Kieran Bingham wrote:
> > > Quoting Paul Elder (2023-11-29 09:29:55)
> > >
> > > > Add register dump for the image stabilizer module to debugfs.
> > >
> > > Is the Image Stabilizer on all variants of the ISP?
> > >
> > > I.e. is it valid register space on the RK3399 implementation?
> >
> > Yes, it is.
>
> Is there some public documentation available how this ISP works? For RK3399 or
> i.MX8MP.

Not that I'm aware of. I've been told there's some leaked documentation
in the RK3288 (without registers), and another one for the RK3399 (with
registers)?


Paul

>
> >
> > > If so then:
> > > Reviewed-by: Kieran Bingham <[email protected]>
> > >
> > > > Signed-off-by: Paul Elder <[email protected]>
> > > > ---
> > > >
> > > > .../platform/rockchip/rkisp1/rkisp1-debug.c | 18 ++++++++++++++++++
> > > > 1 file changed, 18 insertions(+)
> > > >
> > > > diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
> > > > b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c index
> > > > 71df3dc95e6f..f66b9754472e 100644
> > > > --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
> > > > +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
> > > > @@ -139,6 +139,21 @@ static int rkisp1_debug_dump_mi_mp_show(struct
> > > > seq_file *m, void *p)> >
> > > > }
> > > > DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_mi_mp);
> > > >
> > > > +static int rkisp1_debug_dump_is_show(struct seq_file *m, void *p)
> > > > +{
> > > > + static const struct rkisp1_debug_register registers[] = {
> > > > + RKISP1_DEBUG_SHD_REG(ISP_IS_H_OFFS),
> > > > + RKISP1_DEBUG_SHD_REG(ISP_IS_V_OFFS),
> > > > + RKISP1_DEBUG_SHD_REG(ISP_IS_H_SIZE),
> > > > + RKISP1_DEBUG_SHD_REG(ISP_IS_V_SIZE),
> > >
> > > I expect so as you haven't added the register macros in this series so
> > > they must already be there ...
> >
> > Yep :)
> >
> >
> > Paul
> >
> > > > + { /* Sentinel */ },
> > > > + };
> > > > + struct rkisp1_device *rkisp1 = m->private;
> > > > +
> > > > + return rkisp1_debug_dump_regs(rkisp1, m, 0, registers);
> > > > +}
> > > > +DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_is);
> > > > +
> > > >
> > > > #define RKISP1_DEBUG_DATA_COUNT_BINS 32
> > > > #define RKISP1_DEBUG_DATA_COUNT_STEP (4096 /
> > > > RKISP1_DEBUG_DATA_COUNT_BINS)> >
> > > > @@ -235,6 +250,9 @@ void rkisp1_debug_init(struct rkisp1_device *rkisp1)
> > > >
> > > > debugfs_create_file("mi_mp", 0444, regs_dir, rkisp1,
> > > >
> > > > &rkisp1_debug_dump_mi_mp_fops);
> > > >
> > > > +
> > > > + debugfs_create_file("is", 0444, regs_dir, rkisp1,
> > > > + &rkisp1_debug_dump_is_fops);
> > > >
> > > > }
> > > >
> > > > void rkisp1_debug_cleanup(struct rkisp1_device *rkisp1)
>
>
> --
> TQ-Systems GmbH | M?hlstra?e 2, Gut Delling | 82229 Seefeld, Germany
> Amtsgericht M?nchen, HRB 105018
> Gesch?ftsf?hrer: Detlef Schneider, R?diger Stahl, Stefan Schneider
> http://www.tq-group.com/
>
>

2023-11-30 13:42:38

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [PATCH 2/3] media: rkisp1: debug: Add register dump for IS

Hi Paul,

Thank you for the patch.

On Wed, Nov 29, 2023 at 06:29:55PM +0900, Paul Elder wrote:
> Add register dump for the image stabilizer module to debugfs.
>
> Signed-off-by: Paul Elder <[email protected]>
> ---
> .../platform/rockchip/rkisp1/rkisp1-debug.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
> index 71df3dc95e6f..f66b9754472e 100644
> --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
> +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
> @@ -139,6 +139,21 @@ static int rkisp1_debug_dump_mi_mp_show(struct seq_file *m, void *p)
> }
> DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_mi_mp);
>
> +static int rkisp1_debug_dump_is_show(struct seq_file *m, void *p)
> +{
> + static const struct rkisp1_debug_register registers[] = {
> + RKISP1_DEBUG_SHD_REG(ISP_IS_H_OFFS),
> + RKISP1_DEBUG_SHD_REG(ISP_IS_V_OFFS),
> + RKISP1_DEBUG_SHD_REG(ISP_IS_H_SIZE),
> + RKISP1_DEBUG_SHD_REG(ISP_IS_V_SIZE),

As these are ISP registers, how about adding them to the list of ISP
registers ?

media: rkisp1: debug: Add register dump for IS

Add register dump for the ISP image stabilizer module to debugfs. This
helps debugging issues related to digital zoom.

Signed-off-by: Paul Elder <[email protected]>
Signed-off-by: Laurent Pinchart <[email protected]>

diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
index 71df3dc95e6f..d2fbed42164e 100644
--- a/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
+++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-debug.c
@@ -92,6 +92,10 @@ static int rkisp1_debug_dump_isp_regs_show(struct seq_file *m, void *p)
RKISP1_DEBUG_REG(ISP_FLAGS_SHD),
RKISP1_DEBUG_REG(ISP_RIS),
RKISP1_DEBUG_REG(ISP_ERR),
+ RKISP1_DEBUG_SHD_REG(ISP_IS_H_OFFS),
+ RKISP1_DEBUG_SHD_REG(ISP_IS_V_OFFS),
+ RKISP1_DEBUG_SHD_REG(ISP_IS_H_SIZE),
+ RKISP1_DEBUG_SHD_REG(ISP_IS_V_SIZE),
{ /* Sentinel */ },
};
struct rkisp1_device *rkisp1 = m->private;


> + { /* Sentinel */ },
> + };
> + struct rkisp1_device *rkisp1 = m->private;
> +
> + return rkisp1_debug_dump_regs(rkisp1, m, 0, registers);
> +}
> +DEFINE_SHOW_ATTRIBUTE(rkisp1_debug_dump_is);
> +
> #define RKISP1_DEBUG_DATA_COUNT_BINS 32
> #define RKISP1_DEBUG_DATA_COUNT_STEP (4096 / RKISP1_DEBUG_DATA_COUNT_BINS)
>
> @@ -235,6 +250,9 @@ void rkisp1_debug_init(struct rkisp1_device *rkisp1)
>
> debugfs_create_file("mi_mp", 0444, regs_dir, rkisp1,
> &rkisp1_debug_dump_mi_mp_fops);
> +
> + debugfs_create_file("is", 0444, regs_dir, rkisp1,
> + &rkisp1_debug_dump_is_fops);
> }
>
> void rkisp1_debug_cleanup(struct rkisp1_device *rkisp1)

--
Regards,

Laurent Pinchart