There is a Vivante GC1000 V5037 in LS2K1000 and LS7A1000, the gpu is a PCI device and it have 2D and 3D in the same core. Therefore, this patch try to provide PCI device driver wrapper for it by mimic the platform counterpart. LS7A1000 is a bridge chip, this bridge chip typically use with LS3A4000 (4 core 1.8gHz, Mips64r5) and LS3A5000 (4 core loongarch 2.5Ghz). While LS2K1000 is a double core 1.0Ghz Mips64r2 SoC. loongson CPU's cache coherency is maintained by the hardware. Both LS7A1000 and LS2K1000 have a display controller integrated, named lsdc. The drm driver of this display controller is not upstream yet, but we have a demo version and it works. By using KMS-RO framework, lsdc and gc1000 made a compatible pair. suijingfeng (4): dt-bindings: ls2k1000: add gpu device node drm/etnaviv: add pci device driver support loongson3_defconfig: enable etnaviv drm driver on default loongson2_defconfig: enable etnaviv drm driver on default .../boot/dts/loongson/loongson64-2k1000.dtsi | 11 + arch/mips/configs/loongson2k_defconfig | 1 + arch/mips/configs/loongson3_defconfig | 1 + drivers/gpu/drm/etnaviv/Kconfig | 12 ++ drivers/gpu/drm/etnaviv/Makefile | 2 + drivers/gpu/drm/etnaviv/etnaviv_drv.c | 113 +++++++--- drivers/gpu/drm/etnaviv/etnaviv_drv.h | 8 + drivers/gpu/drm/etnaviv/etnaviv_gem.c | 28 ++- drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 94 +++++--- drivers/gpu/drm/etnaviv/etnaviv_gpu.h | 6 + drivers/gpu/drm/etnaviv/etnaviv_pci_drv.c | 203 ++++++++++++++++++ include/uapi/drm/etnaviv_drm.h | 11 +- 12 files changed, 422 insertions(+), 68 deletions(-) create mode 100644 drivers/gpu/drm/etnaviv/etnaviv_pci_drv.c -- 2.20.1