hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/drivers/media/i2c/sc530ai.c
....@@ -52,6 +52,7 @@
5252 #define SC530AI_LINK_FREQ_396M 198000000 // 396Mbps
5353 #define SC530AI_LINK_FREQ_792M 396000000 // 792Mbps
5454 #define SC530AI_LINK_FREQ_792M_2LANE 396000000 // 792Mbps
55
+#define SC530AI_LINK_FREQ_936M_2LANE 468000000 // 936Mbps
5556
5657 #define SC530AI_LINEAR_PIXEL_RATES (SC530AI_LINK_FREQ_396M / 10 * 2 * 4)
5758 #define SC530AI_HDR_PIXEL_RATES (SC530AI_LINK_FREQ_792M / 10 * 2 * 4)
....@@ -520,18 +521,22 @@
520521 {0x37f9, 0x80},
521522 {0x3018, 0x32},
522523 {0x3019, 0x0c},
523
- {0x301f, 0x18},
524
+ {0x301f, 0x42},
525
+ {0x320c, 0x06},
526
+ {0x320d, 0x27},
527
+ {0x320e, 0x07},
528
+ {0x320f, 0xbc},
524529 {0x3250, 0x40},
525530 {0x3251, 0x98},
526531 {0x3253, 0x0c},
527532 {0x325f, 0x20},
528533 {0x3301, 0x08},
529534 {0x3304, 0x50},
530
- {0x3306, 0x78},
535
+ {0x3306, 0x88},
531536 {0x3308, 0x14},
532537 {0x3309, 0x70},
533538 {0x330a, 0x00},
534
- {0x330b, 0xd8},
539
+ {0x330b, 0xf8},
535540 {0x330d, 0x10},
536541 {0x331e, 0x41},
537542 {0x331f, 0x61},
....@@ -560,18 +565,18 @@
560565 {0x33ae, 0x30},
561566 {0x33af, 0x50},
562567 {0x33b1, 0x80},
563
- {0x33b2, 0x80},
564
- {0x33b3, 0x40},
568
+ {0x33b2, 0x48},
569
+ {0x33b3, 0x30},
565570 {0x349f, 0x02},
566571 {0x34a6, 0x48},
567
- {0x34a7, 0x49},
568
- {0x34a8, 0x40},
569
- {0x34a9, 0x30},
570
- {0x34f8, 0x4b},
571
- {0x34f9, 0x30},
572
+ {0x34a7, 0x4b},
573
+ {0x34a8, 0x30},
574
+ {0x34a9, 0x18},
575
+ {0x34f8, 0x5f},
576
+ {0x34f9, 0x08},
572577 {0x3632, 0x48},
573578 {0x3633, 0x32},
574
- {0x3637, 0x2b},
579
+ {0x3637, 0x29},
575580 {0x3638, 0xc1},
576581 {0x363b, 0x20},
577582 {0x363d, 0x02},
....@@ -582,7 +587,7 @@
582587 {0x367c, 0x40},
583588 {0x367d, 0x48},
584589 {0x3690, 0x32},
585
- {0x3691, 0x32},
590
+ {0x3691, 0x43},
586591 {0x3692, 0x33},
587592 {0x3693, 0x40},
588593 {0x3694, 0x4b},
....@@ -594,7 +599,10 @@
594599 {0x36a3, 0x4b},
595600 {0x36a4, 0x4f},
596601 {0x36d0, 0x01},
602
+ {0x36ea, 0x0d},
603
+ {0x36eb, 0x04},
597604 {0x36ec, 0x03},
605
+ {0x36ed, 0x14},
598606 {0x370f, 0x01},
599607 {0x3722, 0x00},
600608 {0x3728, 0x10},
....@@ -603,8 +611,10 @@
603611 {0x37b2, 0x83},
604612 {0x37b3, 0x48},
605613 {0x37b4, 0x49},
606
- {0x37fb, 0x25},
614
+ {0x37fa, 0x0d},
615
+ {0x37fb, 0x24},
607616 {0x37fc, 0x01},
617
+ {0x37fd, 0x14},
608618 {0x3901, 0x00},
609619 {0x3902, 0xc5},
610620 {0x3904, 0x08},
....@@ -614,19 +624,20 @@
614624 {0x391f, 0x44},
615625 {0x3926, 0x21},
616626 {0x3929, 0x18},
617
- {0x3933, 0x81},
618
- {0x3934, 0x81},
619
- {0x3937, 0x69},
627
+ {0x3933, 0x82},
628
+ {0x3934, 0x0a},
629
+ {0x3937, 0x5f},
620630 {0x3939, 0x00},
621631 {0x393a, 0x00},
622632 {0x39dc, 0x02},
623
- {0x3e01, 0xcd},
624
- {0x3e02, 0xa0},
633
+ {0x3e01, 0xf6},
634
+ {0x3e02, 0xe0},
625635 {0x440e, 0x02},
626636 {0x4509, 0x20},
627
- {0x4800, 0x04},
628
- {0x4837, 0x14},
637
+ {0x4837, 0x22},
629638 {0x5010, 0x10},
639
+ {0x5780, 0x66},
640
+ {0x578d, 0x40},
630641 {0x5799, 0x06},
631642 {0x57ad, 0x00},
632643 {0x5ae0, 0xfe},
....@@ -658,8 +669,7 @@
658669 {0x5afe, 0x30},
659670 {0x5aff, 0x28},
660671 {0x36e9, 0x44},
661
- {0x37f9, 0x34},
662
-// {0x0100, 0x01},
672
+ {0x37f9, 0x44},
663673 {REG_NULL, 0x00},
664674 };
665675
....@@ -713,10 +723,10 @@
713723 },
714724 .exp_def = 0xcda / 2,
715725 .hts_def = 0xb40,
716
- .vts_def = 0x0672,
726
+ .vts_def = 0x07bc,
717727 .bus_fmt = MEDIA_BUS_FMT_SBGGR10_1X10,
718728 .reg_list = sc530ai_10_30fps_2880x1620_2lane_regs,
719
- .mipi_freq_idx = 2,
729
+ .mipi_freq_idx = 3,
720730 .bpp = 10,
721731 .hdr_mode = NO_HDR,
722732 .vc[PAD0] = V4L2_MBUS_CSI2_CHANNEL_0,
....@@ -727,6 +737,7 @@
727737 SC530AI_LINK_FREQ_396M,
728738 SC530AI_LINK_FREQ_792M,
729739 SC530AI_LINK_FREQ_792M_2LANE,
740
+ SC530AI_LINK_FREQ_936M_2LANE,
730741 };
731742
732743 /* Write registers up to 4 at a time */
....@@ -1716,8 +1727,7 @@
17161727 vts & 0xff);
17171728 if (!ret)
17181729 sc530ai->cur_vts = vts;
1719
- if (sc530ai->cur_vts != sc530ai->cur_mode->vts_def)
1720
- sc530ai_modify_fps_info(sc530ai);
1730
+ sc530ai_modify_fps_info(sc530ai);
17211731 dev_dbg(&client->dev, "set vblank 0x%x\n", ctrl->val);
17221732 break;
17231733 case V4L2_CID_HFLIP: