diff --git a/arch/arm64/boot/dts/qcom/sdm630.dtsi b/arch/arm64/boot/dts/qcom/sdm630.dtsi index 9f6e07f8beb0d4..b1cb03a9ed422d 100644 --- a/arch/arm64/boot/dts/qcom/sdm630.dtsi +++ b/arch/arm64/boot/dts/qcom/sdm630.dtsi @@ -1174,6 +1174,11 @@ }; */ }; + + zap-shader { + memory-region = <&zap_shader_region>; + firmware-name = "a508_zap.mbn"; + }; }; kgsl_smmu: iommu@5040000 { @@ -1541,7 +1546,7 @@ }; mdss: display-subsystem@c900000 { - compatible = "qcom,mdss"; + compatible = "qcom,sdm630-mdss", "qcom,mdss"; reg = <0x0c900000 0x1000>, <0x0c9b0000 0x1040>; reg-names = "mdss_phys", "vbif_phys"; diff --git a/arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts b/arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts index 19a527be16ba39..e84b3da96c86ee 100644 --- a/arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts +++ b/arch/arm64/boot/dts/qcom/sdm636-xiaomi-tulip.dts @@ -15,7 +15,6 @@ /delete-node/ &qseecom_mem; /delete-node/ &rmtfs_mem; /delete-node/ &tz_mem; -/delete-node/ &zap_shader_region; / { model = "Xiaomi Redmi Note 6 Pro"; @@ -510,4 +509,4 @@ vdd-3.3-ch0-supply = <&vreg_l19a_3p3>; status = "okay"; -}; \ No newline at end of file +}; diff --git a/arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dts b/arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dts index 983a1ead0b9710..adc773de7d2137 100644 --- a/arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dts +++ b/arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dts @@ -118,6 +118,8 @@ reset-gpios = <&tlmm 66 GPIO_ACTIVE_HIGH>; touchscreen-size-x = <1080>; touchscreen-size-y = <2340>; + + status = "disabled"; }; }; @@ -140,6 +142,69 @@ }; }; +&adreno_gpu { + status = "okay"; +}; + +&gpucc{ + status = "okay"; +}; + +&kgsl_smmu { + status = "okay"; +}; + +&mdp { + status = "okay"; +}; + +&mdss { + status = "okay"; +}; + +&mdss_dsi0 { + status = "okay"; + + #address-cells = <1>; + #size-cells = <0>; + + vdd-supply = <&vreg_l1b_0p925>; + vdda-supply = <&vreg_l1a_1p225>; + panel@0 { + compatible = "xiaomi,lavender-td4320"; + reg = <0>; + + reset-gpios = <&tlmm 53 GPIO_ACTIVE_LOW>; + //disp-te-gpios = <&tlmm 59 GPIO_ACTIVE_HIGH>; + + backlight = <&pm660l_wled>; + + pinctrl-names = "default"; + pinctrl-0 = <&mdss_dsi_active &mdss_te_active>; + + + port { + panel_in: endpoint { + remote-endpoint = <&mdss_dsi0_out>; + }; + }; + }; +}; + +&mdss_dsi0_out { + data-lanes = <0 1 2 3>; + remote-endpoint = <&panel_in>; +}; + +&mdss_dsi0_phy { + vcca-supply = <&vreg_l1b_0p925>; + status = "okay"; +}; + +&mmss_smmu { + status = "okay"; +}; + &lpass_smmu { status = "okay"; }; @@ -487,6 +552,19 @@ &tlmm { gpio-reserved-ranges = <8 4>; + mdss_dsi_active: mdss_dsi_active { + function = "gpio"; + pins = "gpio53"; + drive-strength = <8>; + bias-disable; + }; + mdss_te_active: mdss_te_active { + pins = "gpio59"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; + ts_pins_active: ts-pins-active-state { pins = "gpio66", "gpio67"; function = "gpio"; @@ -519,7 +597,6 @@ }; &venus { - firmware-name = "qcom/venus-4.4/venus.mdt"; status = "okay"; }; diff --git a/arch/arm64/boot/dts/qcom/sdm660.dtsi b/arch/arm64/boot/dts/qcom/sdm660.dtsi index f89b27c99f40cf..209c66ee2cd3d1 100644 --- a/arch/arm64/boot/dts/qcom/sdm660.dtsi +++ b/arch/arm64/boot/dts/qcom/sdm660.dtsi @@ -83,6 +83,10 @@ opp-supported-hw = <0xff>; }; }; + + zap-shader { + firmware-name = "a512_zap.mbn"; + }; }; &CPU0 { @@ -155,6 +159,8 @@ }; &mdss { + compatible = "qcom,sdm660-mdss", "qcom,mdss"; + mdss_dsi1: dsi@c996000 { compatible = "qcom,sdm660-dsi-ctrl", "qcom,mdss-dsi-ctrl"; diff --git a/drivers/gpu/drm/msm/adreno/a5xx_gpu.c b/drivers/gpu/drm/msm/adreno/a5xx_gpu.c index e5916c10679679..2ad295ae40f4c1 100644 --- a/drivers/gpu/drm/msm/adreno/a5xx_gpu.c +++ b/drivers/gpu/drm/msm/adreno/a5xx_gpu.c @@ -1768,7 +1768,8 @@ struct msm_gpu *a5xx_gpu_init(struct drm_device *dev) check_speed_bin(&pdev->dev); - nr_rings = 4; + /* NOTE: Disable preemption until it is fixed */ + nr_rings = 1; if (config->info->revn == 510) nr_rings = 1; diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig index b52e2880ead453..f8bcde139af1b1 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig @@ -882,4 +882,5 @@ config DRM_PANEL_XINPENG_XPP055C272 Say Y here if you want to enable support for the Xinpeng XPP055C272 controller for 720x1280 LCD panels with MIPI/RGB/SPI system interfaces. +source "drivers/gpu/drm/panel/msm8916-generated/Kconfig" endmenu diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile index 9f5d0ba6551005..5a1ce8447510dd 100644 --- a/drivers/gpu/drm/panel/Makefile +++ b/drivers/gpu/drm/panel/Makefile @@ -90,3 +90,4 @@ obj-$(CONFIG_DRM_PANEL_VISIONOX_VTDR6130) += panel-visionox-vtdr6130.o obj-$(CONFIG_DRM_PANEL_VISIONOX_R66451) += panel-visionox-r66451.o obj-$(CONFIG_DRM_PANEL_WIDECHIPS_WS2401) += panel-widechips-ws2401.o obj-$(CONFIG_DRM_PANEL_XINPENG_XPP055C272) += panel-xinpeng-xpp055c272.o +obj-y += msm8916-generated/ diff --git a/drivers/gpu/drm/panel/msm8916-generated/Kconfig b/drivers/gpu/drm/panel/msm8916-generated/Kconfig new file mode 100644 index 00000000000000..1a09fd56e73854 --- /dev/null +++ b/drivers/gpu/drm/panel/msm8916-generated/Kconfig @@ -0,0 +1,12 @@ +menu "MSM8916 panel drivers generated with linux-mdss-dsi-panel-driver-generator" + depends on GPIOLIB && OF && REGULATOR + depends on DRM_MIPI_DSI + +config DRM_PANEL_MSM8916_GENERATED + tristate "Select all generated MSM8916 panel drivers by default" + +config DRM_PANEL_XIAOMI_LAVENDER_TD4320 + tristate "Xiaomi LAVENDER TD4320" + default DRM_PANEL_MSM8916_GENERATED + +endmenu diff --git a/drivers/gpu/drm/panel/msm8916-generated/Makefile b/drivers/gpu/drm/panel/msm8916-generated/Makefile new file mode 100644 index 00000000000000..ea80f9d08271e9 --- /dev/null +++ b/drivers/gpu/drm/panel/msm8916-generated/Makefile @@ -0,0 +1 @@ +obj-$(CONFIG_DRM_PANEL_XIAOMI_LAVENDER_TD4320) += panel-xiaomi-lavender-td4320.o diff --git a/drivers/gpu/drm/panel/msm8916-generated/panel-xiaomi-lavender-td4320.c b/drivers/gpu/drm/panel/msm8916-generated/panel-xiaomi-lavender-td4320.c new file mode 100644 index 00000000000000..359045a3b99b7f --- /dev/null +++ b/drivers/gpu/drm/panel/msm8916-generated/panel-xiaomi-lavender-td4320.c @@ -0,0 +1,247 @@ +// SPDX-License-Identifier: GPL-2.0-only +// Copyright (c) 2024 FIXME +// Generated with linux-mdss-dsi-panel-driver-generator from vendor device tree: +// Copyright (c) 2013, The Linux Foundation. All rights reserved. (FIXME) + +#include +#include +#include +#include + +#include