tzh
2024-07-23 7e1950eb53ce0b05e5a39b8aef15428691a2a417
longan/kernel/linux-4.9/modules/gpu/img-rgx/android/rogue_km/services/system/rgx_sunxi/sunxi_platform.c
....@@ -590,50 +590,6 @@
590590 }
591591 #endif /* CONFIG_DEBUG_FS */
592592
593
-static inline int sunxi_get_ic_version(struct device *dev, char *version)
594
-{
595
-#define SYS_CFG_BASE 0x03000000
596
-#define VER_REG_OFFS 0x00000024
597
- void __iomem *io = NULL;
598
- static char ver = 0xff;
599
- /* IC version:
600
- * A/B/C: 0
601
- * D: 3
602
- * E: 4
603
- * F: 5
604
- * 6/7/1/2 to be used in future.
605
- */
606
- *version = 0;
607
- if (ver == 0xff) {
608
- io = ioremap(SYS_CFG_BASE, 0x100);
609
- if (io == NULL) {
610
- dev_err(dev, "ioremap of sys_cfg register failed!\n");
611
- return -1;
612
- }
613
- *version = (char)(readl(io + VER_REG_OFFS) & 0x7);
614
- iounmap(io);
615
- ver = *version;
616
- } else {
617
- *version = ver;
618
- }
619
- return 0;
620
-}
621
-
622
-bool sunxi_ic_version_ctrl(struct device *dev)
623
-{
624
- char ic_version = 0;
625
- sunxi_get_ic_version(dev, &ic_version);
626
- /*
627
- * The flow of jtag reset before gpu reset will cause MIPS crash, so we
628
- * will put the domainA, domainB and gpu reset operations to boot0 stage.
629
- * And in kernel stage, we will always keep domainA poweron.
630
- */
631
- if (ic_version == 0 || ic_version == 3 || ic_version == 4 || ic_version == 5)
632
- return false;
633
- return true;
634
-}
635
-
636
-
637593 int sunxi_platform_init(struct device *dev)
638594 {
639595 #if defined(CONFIG_OF)
....@@ -641,7 +597,7 @@
641597 struct platform_device *pdev = to_platform_device(dev);
642598 #endif /* defined(CONFIG_OF) */
643599 unsigned int val, volt_val = 0;
644
- char ic_version = 0;
600
+
645601 sunxi_data = (struct sunxi_platform *)kzalloc(sizeof(struct sunxi_platform), GFP_KERNEL);
646602 if (!sunxi_data) {
647603 dev_err(dev, "failed to get kzalloc sunxi_platform");
....@@ -678,20 +634,11 @@
678634 sunxi_data->power_idle = 1;
679635 sunxi_data->dvfs = 1;
680636 sunxi_data->independent_power = 0;
681
- sunxi_data->soft_mode = 0;
637
+ sunxi_data->soft_mode = 1;
682638
683639 parse_dts(dev, sunxi_data);
684640 if (!sunxi_data->independent_power)
685641 sunxi_data->dvfs = 0;
686
- sunxi_get_ic_version(dev, &ic_version);
687
- dev_info(dev, "IC version: 0x%08x \n", ic_version);
688
-
689
- if (!sunxi_ic_version_ctrl(dev)) {
690
- sunxi_data->power_idle = 0;
691
- sunxi_data->soft_mode = 1;
692
- } else {
693
- sunxi_data->soft_mode = 0;
694
- }
695642
696643 sunxi_decide_pll(sunxi_data);
697644 spin_lock_init(&sunxi_data->lock);
....@@ -720,7 +667,6 @@
720667 sunxi_data->power_idle = 0;
721668 regulator_set_voltage(sunxi_data->regula, 900000, 900000);
722669 #endif
723
-
724670 init_waitqueue_head(&dvfs_wq);
725671
726672 dev_info(dev, "idle:%d dvfs:%d power:%d %s mode:%d volt:%u core:%lu\n",