static int aspeed_video_debugfs_show(struct seq_file *s, void *data)
 {
        struct aspeed_video *v = s->private;
+       u32 val08;
 
        seq_puts(s, "\n");
 
+       seq_puts(s, "Capture:\n");
+       val08 = aspeed_video_read(v, VE_CTRL);
+       if (FIELD_GET(VE_CTRL_DIRECT_FETCH, val08)) {
+               seq_printf(s, "  %-20s:\tDirect fetch\n", "Mode");
+               seq_printf(s, "  %-20s:\t%s\n", "VGA bpp mode",
+                          FIELD_GET(VE_CTRL_INT_DE, val08) ? "16" : "32");
+       } else {
+               seq_printf(s, "  %-20s:\tSync\n", "Mode");
+               seq_printf(s, "  %-20s:\t%s\n", "Video source",
+                          FIELD_GET(VE_CTRL_SOURCE, val08) ?
+                          "external" : "internal");
+               seq_printf(s, "  %-20s:\t%s\n", "DE source",
+                          FIELD_GET(VE_CTRL_INT_DE, val08) ?
+                          "internal" : "external");
+               seq_printf(s, "  %-20s:\t%s\n", "Cursor overlay",
+                          FIELD_GET(VE_CTRL_AUTO_OR_CURSOR, val08) ?
+                          "Without" : "With");
+       }
+
        seq_printf(s, "  %-20s:\t%s\n", "Signal",
                   v->v4l2_input_status ? "Unlock" : "Lock");
        seq_printf(s, "  %-20s:\t%d\n", "Width", v->pix_fmt.width);
 
        seq_puts(s, "\n");
 
+       seq_puts(s, "Compression:\n");
+       seq_printf(s, "  %-20s:\t%s\n", "Format", format_str[v->format]);
+       seq_printf(s, "  %-20s:\t%s\n", "Subsampling",
+                  v->yuv420 ? "420" : "444");
+       seq_printf(s, "  %-20s:\t%d\n", "Quality", v->jpeg_quality);
+       if (v->format == VIDEO_FMT_ASPEED) {
+               seq_printf(s, "  %-20s:\t%s\n", "HQ Mode",
+                          v->hq_mode ? "on" : "off");
+               seq_printf(s, "  %-20s:\t%d\n", "HQ Quality",
+                          v->hq_mode ? v->jpeg_hq_quality : 0);
+       }
+
+       seq_puts(s, "\n");
+
        seq_puts(s, "Performance:\n");
        seq_printf(s, "  %-20s:\t%d\n", "Frame#", v->sequence);
        seq_printf(s, "  %-20s:\n", "Frame Duration(ms)");
        seq_printf(s, "    %-18s:\t%d\n", "Now", v->perf.duration);
        seq_printf(s, "    %-18s:\t%d\n", "Min", v->perf.duration_min);
        seq_printf(s, "    %-18s:\t%d\n", "Max", v->perf.duration_max);
-       seq_printf(s, "  %-20s:\t%d\n", "FPS", 1000 / (v->perf.totaltime / v->sequence));
+       seq_printf(s, "  %-20s:\t%d\n", "FPS",
+                  (v->perf.totaltime && v->sequence) ?
+                  1000 / (v->perf.totaltime / v->sequence) : 0);
 
        return 0;
 }