]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
media: staging: rkisp1: set more precise size errors in debugfs
authorDafna Hirschfeld <dafna.hirschfeld@collabora.com>
Fri, 29 May 2020 14:03:51 +0000 (16:03 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Sat, 4 Jul 2020 10:43:56 +0000 (12:43 +0200)
When a size error is signaled, it is possible to read a register
to see where the error comes from. So, in debugfs the general
error 'pic_size_err' can be replaced with 3 more precise errors.

Signed-off-by: Dafna Hirschfeld <dafna.hirschfeld@collabora.com>
Acked-by: Helen Koike <helen.koike@collabora.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/staging/media/rkisp1/rkisp1-common.h
drivers/staging/media/rkisp1/rkisp1-dev.c
drivers/staging/media/rkisp1/rkisp1-isp.c

index 12bd9d05050db3c3226a160ba0a0a8673d97d6fb..a9ede3f71ff33cd8da991e6619a8da98b917c882 100644 (file)
@@ -229,7 +229,9 @@ struct rkisp1_resizer {
 struct rkisp1_debug {
        struct dentry *debugfs_dir;
        unsigned long data_loss;
-       unsigned long pic_size_error;
+       unsigned long outform_size_error;
+       unsigned long img_stabilization_size_error;
+       unsigned long inform_size_error;
        unsigned long mipi_error;
        unsigned long stats_error;
        unsigned long stop_timeout[2];
index f38801fea10d951c74c1d0fa61a59117596f93f2..a0eb8f08708b9bc69420fe26cc9b9c940fff2de5 100644 (file)
@@ -438,8 +438,13 @@ static void rkisp1_debug_init(struct rkisp1_device *rkisp1)
        }
        debugfs_create_ulong("data_loss", 0444, debug->debugfs_dir,
                             &debug->data_loss);
-       debugfs_create_ulong("pic_size_error", 0444,  debug->debugfs_dir,
-                            &debug->pic_size_error);
+       debugfs_create_ulong("outform_size_err", 0444,  debug->debugfs_dir,
+                            &debug->outform_size_error);
+       debugfs_create_ulong("img_stabilization_size_error", 0444,
+                            debug->debugfs_dir,
+                            &debug->img_stabilization_size_error);
+       debugfs_create_ulong("inform_size_error", 0444,  debug->debugfs_dir,
+                            &debug->inform_size_error);
        debugfs_create_ulong("mipi_error", 0444, debug->debugfs_dir,
                             &debug->mipi_error);
        debugfs_create_ulong("stats_error", 0444, debug->debugfs_dir,
index 58c90c67594db6d5ce53442c1642052d006549d1..76229ecbc41aa1499e203f492c2b4c1ec27a4375 100644 (file)
@@ -1122,8 +1122,13 @@ void rkisp1_isp_isr(struct rkisp1_device *rkisp1)
        if (status & RKISP1_CIF_ISP_PIC_SIZE_ERROR) {
                /* Clear pic_size_error */
                isp_err = rkisp1_read(rkisp1, RKISP1_CIF_ISP_ERR);
+               if (isp_err & RKISP1_CIF_ISP_ERR_INFORM_SIZE)
+                       rkisp1->debug.inform_size_error++;
+               if (isp_err & RKISP1_CIF_ISP_ERR_IS_SIZE)
+                       rkisp1->debug.img_stabilization_size_error++;
+               if (isp_err & RKISP1_CIF_ISP_ERR_OUTFORM_SIZE)
+                       rkisp1->debug.outform_size_error++;
                rkisp1_write(rkisp1, isp_err, RKISP1_CIF_ISP_ERR_CLR);
-               rkisp1->debug.pic_size_error++;
        } else if (status & RKISP1_CIF_ISP_DATA_LOSS) {
                /* keep track of data_loss in debugfs */
                rkisp1->debug.data_loss++;