From 799a1c2b96f0d931ba44a839795c9cf31fdbce79 Mon Sep 17 00:00:00 2001 From: Jan200101 Date: Mon, 10 Apr 2023 13:25:49 +0200 Subject: kernel 6.2.10 --- SOURCES/Patchlist.changelog | 12 + SOURCES/kernel-aarch64-debug-fedora.config | 1 + SOURCES/kernel-aarch64-fedora.config | 1 + SOURCES/kernel-armv7hl-debug-fedora.config | 1 + SOURCES/kernel-armv7hl-fedora.config | 1 + SOURCES/kernel-armv7hl-lpae-debug-fedora.config | 1 + SOURCES/kernel-armv7hl-lpae-fedora.config | 1 + SOURCES/kernel-ppc64le-debug-fedora.config | 1 + SOURCES/kernel-ppc64le-fedora.config | 1 + SOURCES/kernel-s390x-debug-fedora.config | 1 + SOURCES/kernel-s390x-fedora.config | 1 + SOURCES/kernel-x86_64-debug-fedora.config | 1 + SOURCES/kernel-x86_64-fedora.config | 1 + SOURCES/patch-6.2-redhat.patch | 996 ++++++++++++++++++------ SPECS/kernel.spec | 19 +- 15 files changed, 783 insertions(+), 256 deletions(-) diff --git a/SOURCES/Patchlist.changelog b/SOURCES/Patchlist.changelog index 53079bc..bf8c605 100644 --- a/SOURCES/Patchlist.changelog +++ b/SOURCES/Patchlist.changelog @@ -1,3 +1,15 @@ +"https://gitlab.com/cki-project/kernel-ark/-/commit"/efa74f28ec858cb955be08faf1086f05c3f7510a + efa74f28ec858cb955be08faf1086f05c3f7510a arm64: dts: rk3399-pinephone-pro: Add touchscreen support + +"https://gitlab.com/cki-project/kernel-ark/-/commit"/a9e7700a801771e102607a569ff6864e22fd057d + a9e7700a801771e102607a569ff6864e22fd057d arm64: dts: rk3399-pinephone-pro: Add internal display support + +"https://gitlab.com/cki-project/kernel-ark/-/commit"/bcbae486933e1967e9cc24d510cda81f064993cc + bcbae486933e1967e9cc24d510cda81f064993cc drm: panel: Add Himax HX8394 panel controller driver + +"https://gitlab.com/cki-project/kernel-ark/-/commit"/9d6a7048fd29c3ac5ae50b83620dcc5959490118 + 9d6a7048fd29c3ac5ae50b83620dcc5959490118 dt-bindings: display: Add Himax HX8394 panel controller + "https://gitlab.com/cki-project/kernel-ark/-/commit"/b07be483040ffde4aea1f4979bf5aba52898e736 b07be483040ffde4aea1f4979bf5aba52898e736 net: wwan: iosm: fixes 7560 modem crash diff --git a/SOURCES/kernel-aarch64-debug-fedora.config b/SOURCES/kernel-aarch64-debug-fedora.config index 1e46ce7..f87bc2d 100644 --- a/SOURCES/kernel-aarch64-debug-fedora.config +++ b/SOURCES/kernel-aarch64-debug-fedora.config @@ -1906,6 +1906,7 @@ CONFIG_DRM_PANEL_EDP=m CONFIG_DRM_PANEL_ELIDA_KD35T133=m CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m +CONFIG_DRM_PANEL_HIMAX_HX8394=m CONFIG_DRM_PANEL_ILITEK_IL9322=m CONFIG_DRM_PANEL_ILITEK_ILI9341=m CONFIG_DRM_PANEL_ILITEK_ILI9881C=m diff --git a/SOURCES/kernel-aarch64-fedora.config b/SOURCES/kernel-aarch64-fedora.config index 97b38a6..776dec9 100644 --- a/SOURCES/kernel-aarch64-fedora.config +++ b/SOURCES/kernel-aarch64-fedora.config @@ -1898,6 +1898,7 @@ CONFIG_DRM_PANEL_EDP=m CONFIG_DRM_PANEL_ELIDA_KD35T133=m CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m +CONFIG_DRM_PANEL_HIMAX_HX8394=m CONFIG_DRM_PANEL_ILITEK_IL9322=m CONFIG_DRM_PANEL_ILITEK_ILI9341=m CONFIG_DRM_PANEL_ILITEK_ILI9881C=m diff --git a/SOURCES/kernel-armv7hl-debug-fedora.config b/SOURCES/kernel-armv7hl-debug-fedora.config index 7f74ddd..0ea4425 100644 --- a/SOURCES/kernel-armv7hl-debug-fedora.config +++ b/SOURCES/kernel-armv7hl-debug-fedora.config @@ -1889,6 +1889,7 @@ CONFIG_DRM_PANEL_EDP=m CONFIG_DRM_PANEL_ELIDA_KD35T133=m CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m +CONFIG_DRM_PANEL_HIMAX_HX8394=m CONFIG_DRM_PANEL_ILITEK_IL9322=m CONFIG_DRM_PANEL_ILITEK_ILI9341=m CONFIG_DRM_PANEL_ILITEK_ILI9881C=m diff --git a/SOURCES/kernel-armv7hl-fedora.config b/SOURCES/kernel-armv7hl-fedora.config index b8cd5e2..2572d31 100644 --- a/SOURCES/kernel-armv7hl-fedora.config +++ b/SOURCES/kernel-armv7hl-fedora.config @@ -1882,6 +1882,7 @@ CONFIG_DRM_PANEL_EDP=m CONFIG_DRM_PANEL_ELIDA_KD35T133=m CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m +CONFIG_DRM_PANEL_HIMAX_HX8394=m CONFIG_DRM_PANEL_ILITEK_IL9322=m CONFIG_DRM_PANEL_ILITEK_ILI9341=m CONFIG_DRM_PANEL_ILITEK_ILI9881C=m diff --git a/SOURCES/kernel-armv7hl-lpae-debug-fedora.config b/SOURCES/kernel-armv7hl-lpae-debug-fedora.config index 4d7f095..05488c0 100644 --- a/SOURCES/kernel-armv7hl-lpae-debug-fedora.config +++ b/SOURCES/kernel-armv7hl-lpae-debug-fedora.config @@ -1846,6 +1846,7 @@ CONFIG_DRM_PANEL_EDP=m CONFIG_DRM_PANEL_ELIDA_KD35T133=m CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m +CONFIG_DRM_PANEL_HIMAX_HX8394=m CONFIG_DRM_PANEL_ILITEK_IL9322=m CONFIG_DRM_PANEL_ILITEK_ILI9341=m CONFIG_DRM_PANEL_ILITEK_ILI9881C=m diff --git a/SOURCES/kernel-armv7hl-lpae-fedora.config b/SOURCES/kernel-armv7hl-lpae-fedora.config index f79baf3..2dda202 100644 --- a/SOURCES/kernel-armv7hl-lpae-fedora.config +++ b/SOURCES/kernel-armv7hl-lpae-fedora.config @@ -1839,6 +1839,7 @@ CONFIG_DRM_PANEL_EDP=m CONFIG_DRM_PANEL_ELIDA_KD35T133=m CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m +CONFIG_DRM_PANEL_HIMAX_HX8394=m CONFIG_DRM_PANEL_ILITEK_IL9322=m CONFIG_DRM_PANEL_ILITEK_ILI9341=m CONFIG_DRM_PANEL_ILITEK_ILI9881C=m diff --git a/SOURCES/kernel-ppc64le-debug-fedora.config b/SOURCES/kernel-ppc64le-debug-fedora.config index 42add6b..7c4d65d 100644 --- a/SOURCES/kernel-ppc64le-debug-fedora.config +++ b/SOURCES/kernel-ppc64le-debug-fedora.config @@ -1445,6 +1445,7 @@ CONFIG_DRM_PANEL_DSI_CM=m CONFIG_DRM_PANEL_ELIDA_KD35T133=m CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m +# CONFIG_DRM_PANEL_HIMAX_HX8394 is not set # CONFIG_DRM_PANEL_ILITEK_IL9322 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set diff --git a/SOURCES/kernel-ppc64le-fedora.config b/SOURCES/kernel-ppc64le-fedora.config index 120a66b..cb6aac0 100644 --- a/SOURCES/kernel-ppc64le-fedora.config +++ b/SOURCES/kernel-ppc64le-fedora.config @@ -1436,6 +1436,7 @@ CONFIG_DRM_PANEL_DSI_CM=m CONFIG_DRM_PANEL_ELIDA_KD35T133=m CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m +# CONFIG_DRM_PANEL_HIMAX_HX8394 is not set # CONFIG_DRM_PANEL_ILITEK_IL9322 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set diff --git a/SOURCES/kernel-s390x-debug-fedora.config b/SOURCES/kernel-s390x-debug-fedora.config index ab32a8e..1e49fc1 100644 --- a/SOURCES/kernel-s390x-debug-fedora.config +++ b/SOURCES/kernel-s390x-debug-fedora.config @@ -1451,6 +1451,7 @@ CONFIG_DRM_PANEL_DSI_CM=m CONFIG_DRM_PANEL_ELIDA_KD35T133=m CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m +# CONFIG_DRM_PANEL_HIMAX_HX8394 is not set # CONFIG_DRM_PANEL_ILITEK_IL9322 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set diff --git a/SOURCES/kernel-s390x-fedora.config b/SOURCES/kernel-s390x-fedora.config index 9a96e0c..5bddfb7 100644 --- a/SOURCES/kernel-s390x-fedora.config +++ b/SOURCES/kernel-s390x-fedora.config @@ -1442,6 +1442,7 @@ CONFIG_DRM_PANEL_DSI_CM=m CONFIG_DRM_PANEL_ELIDA_KD35T133=m CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m +# CONFIG_DRM_PANEL_HIMAX_HX8394 is not set # CONFIG_DRM_PANEL_ILITEK_IL9322 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set diff --git a/SOURCES/kernel-x86_64-debug-fedora.config b/SOURCES/kernel-x86_64-debug-fedora.config index 880f59e..bb20995 100644 --- a/SOURCES/kernel-x86_64-debug-fedora.config +++ b/SOURCES/kernel-x86_64-debug-fedora.config @@ -1576,6 +1576,7 @@ CONFIG_DRM_PANEL_DSI_CM=m CONFIG_DRM_PANEL_ELIDA_KD35T133=m CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m +# CONFIG_DRM_PANEL_HIMAX_HX8394 is not set # CONFIG_DRM_PANEL_ILITEK_IL9322 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set diff --git a/SOURCES/kernel-x86_64-fedora.config b/SOURCES/kernel-x86_64-fedora.config index 4a53ac4..b366096 100644 --- a/SOURCES/kernel-x86_64-fedora.config +++ b/SOURCES/kernel-x86_64-fedora.config @@ -1567,6 +1567,7 @@ CONFIG_DRM_PANEL_DSI_CM=m CONFIG_DRM_PANEL_ELIDA_KD35T133=m CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m +# CONFIG_DRM_PANEL_HIMAX_HX8394 is not set # CONFIG_DRM_PANEL_ILITEK_IL9322 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set # CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set diff --git a/SOURCES/patch-6.2-redhat.patch b/SOURCES/patch-6.2-redhat.patch index 0578914..c6546eb 100644 --- a/SOURCES/patch-6.2-redhat.patch +++ b/SOURCES/patch-6.2-redhat.patch @@ -1,6 +1,8 @@ + .../bindings/display/panel/himax,hx8394.yaml | 76 +++ Makefile | 4 + arch/arm/Kconfig | 4 +- arch/arm64/Kconfig | 3 +- + .../boot/dts/rockchip/rk3399-pinephone-pro.dts | 114 +++++ arch/s390/include/asm/ipl.h | 1 + arch/s390/kernel/ipl.c | 5 + arch/s390/kernel/setup.c | 4 + @@ -15,20 +17,16 @@ drivers/firmware/efi/efi.c | 124 +++-- drivers/firmware/efi/secureboot.c | 38 ++ drivers/firmware/sysfb.c | 18 +- - drivers/gpu/drm/nouveau/nouveau_backlight.c | 7 +- + drivers/gpu/drm/panel/Kconfig | 12 + + drivers/gpu/drm/panel/Makefile | 1 + + drivers/gpu/drm/panel/panel-himax-hx8394.c | 451 ++++++++++++++++++ drivers/hid/hid-rmi.c | 66 --- drivers/hwtracing/coresight/coresight-etm4x-core.c | 19 + - drivers/input/mouse/alps.c | 16 +- - drivers/input/mouse/focaltech.c | 8 +- drivers/input/rmi4/rmi_driver.c | 124 +++-- drivers/iommu/iommu.c | 22 + - drivers/net/wwan/iosm/iosm_ipc_imem.c | 7 + drivers/pci/quirks.c | 24 + drivers/usb/core/hub.c | 7 + drivers/usb/host/xhci-pci.c | 7 +- - drivers/usb/typec/ucsi/ucsi.c | 22 +- - fs/btrfs/ioctl.c | 2 + - fs/btrfs/qgroup.c | 11 +- include/linux/efi.h | 22 +- include/linux/lsm_hook_defs.h | 2 + include/linux/lsm_hooks.h | 6 + @@ -41,10 +39,92 @@ security/lockdown/Kconfig | 13 + security/lockdown/lockdown.c | 1 + security/security.c | 6 + - 43 files changed, 1029 insertions(+), 208 deletions(-) + 41 files changed, 1637 insertions(+), 181 deletions(-) +diff --git a/Documentation/devicetree/bindings/display/panel/himax,hx8394.yaml b/Documentation/devicetree/bindings/display/panel/himax,hx8394.yaml +new file mode 100644 +index 000000000000..1b2a1baa26f9 +--- /dev/null ++++ b/Documentation/devicetree/bindings/display/panel/himax,hx8394.yaml +@@ -0,0 +1,76 @@ ++# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause) ++%YAML 1.2 ++--- ++$id: http://devicetree.org/schemas/display/panel/himax,hx8394.yaml# ++$schema: http://devicetree.org/meta-schemas/core.yaml# ++ ++title: Himax HX8394 MIPI-DSI LCD panel controller ++ ++maintainers: ++ - Ondrej Jirman ++ - Javier Martinez Canillas ++ ++description: ++ Device tree bindings for panels based on the Himax HX8394 controller, ++ such as the HannStar HSD060BHW4 720x1440 TFT LCD panel connected with ++ a MIPI-DSI video interface. ++ ++allOf: ++ - $ref: panel-common.yaml# ++ ++properties: ++ compatible: ++ items: ++ - enum: ++ - hannstar,hsd060bhw4 ++ - const: himax,hx8394 ++ ++ reg: true ++ ++ reset-gpios: true ++ ++ backlight: true ++ ++ port: true ++ ++ vcc-supply: ++ description: Panel power supply ++ ++ iovcc-supply: ++ description: I/O voltage supply ++ ++required: ++ - compatible ++ - reg ++ - reset-gpios ++ - backlight ++ - port ++ - vcc-supply ++ - iovcc-supply ++ ++additionalProperties: false ++ ++examples: ++ - | ++ #include ++ ++ dsi { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ panel@0 { ++ compatible = "hannstar,hsd060bhw4", "himax,hx8394"; ++ reg = <0>; ++ vcc-supply = <®_2v8_p>; ++ iovcc-supply = <®_1v8_p>; ++ reset-gpios = <&gpio3 13 GPIO_ACTIVE_LOW>; ++ backlight = <&backlight>; ++ ++ port { ++ mipi_in_panel: endpoint { ++ remote-endpoint = <&mipi_out_panel>; ++ }; ++ }; ++ }; ++ }; ++ ++... diff --git a/Makefile b/Makefile -index 8732f7208d59..2ef18d9eed77 100644 +index 6ec0ec452e46..40a89b4c3682 100644 --- a/Makefile +++ b/Makefile @@ -22,6 +22,10 @@ $(if $(filter __%, $(MAKECMDGOALS)), \ @@ -95,6 +175,170 @@ index ddfd35c86bda..2b69e42dff58 100644 default "12" if ARM64_16K_PAGES default "11" help +diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts +index a0795a2b1cb1..475ba78acc09 100644 +--- a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts +@@ -29,6 +29,11 @@ chosen { + stdout-path = "serial2:115200n8"; + }; + ++ backlight: backlight { ++ compatible = "pwm-backlight"; ++ pwms = <&pwm0 0 50000 0>; ++ }; ++ + gpio-keys { + compatible = "gpio-keys"; + pinctrl-names = "default"; +@@ -102,6 +107,30 @@ wifi_pwrseq: sdio-wifi-pwrseq { + /* WL_REG_ON on module */ + reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; + }; ++ ++ /* MIPI DSI panel 1.8v supply */ ++ vcc1v8_lcd: vcc1v8-lcd { ++ compatible = "regulator-fixed"; ++ enable-active-high; ++ regulator-name = "vcc1v8_lcd"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ vin-supply = <&vcc3v3_sys>; ++ gpio = <&gpio3 RK_PA5 GPIO_ACTIVE_HIGH>; ++ pinctrl-names = "default"; ++ }; ++ ++ /* MIPI DSI panel 2.8v supply */ ++ vcc2v8_lcd: vcc2v8-lcd { ++ compatible = "regulator-fixed"; ++ enable-active-high; ++ regulator-name = "vcc2v8_lcd"; ++ regulator-min-microvolt = <2800000>; ++ regulator-max-microvolt = <2800000>; ++ vin-supply = <&vcc3v3_sys>; ++ gpio = <&gpio3 RK_PA1 GPIO_ACTIVE_HIGH>; ++ pinctrl-names = "default"; ++ }; + }; + + &cpu_alert0 { +@@ -139,6 +168,11 @@ &emmc_phy { + status = "okay"; + }; + ++&gpu { ++ mali-supply = <&vdd_gpu>; ++ status = "okay"; ++}; ++ + &i2c0 { + clock-frequency = <400000>; + i2c-scl-rising-time-ns = <168>; +@@ -333,6 +367,25 @@ regulator-state-mem { + }; + }; + ++&i2c3 { ++ i2c-scl-rising-time-ns = <450>; ++ i2c-scl-falling-time-ns = <15>; ++ status = "okay"; ++ ++ touchscreen@14 { ++ compatible = "goodix,gt1158"; ++ reg = <0x14>; ++ interrupt-parent = <&gpio3>; ++ interrupts = ; ++ irq-gpios = <&gpio3 RK_PB5 GPIO_ACTIVE_HIGH>; ++ reset-gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_HIGH>; ++ AVDD28-supply = <&vcc3v0_touch>; ++ VDDIO-supply = <&vcc3v0_touch>; ++ touchscreen-size-x = <720>; ++ touchscreen-size-y = <1440>; ++ }; ++}; ++ + &cluster0_opp { + opp04 { + status = "disabled"; +@@ -362,6 +415,39 @@ &io_domains { + status = "okay"; + }; + ++&mipi_dsi { ++ status = "okay"; ++ clock-master; ++ ++ ports { ++ mipi_out: port@1 { ++ #address-cells = <0>; ++ #size-cells = <0>; ++ reg = <1>; ++ ++ mipi_out_panel: endpoint { ++ remote-endpoint = <&mipi_in_panel>; ++ }; ++ }; ++ }; ++ ++ panel@0 { ++ compatible = "hannstar,hsd060bhw4"; ++ reg = <0>; ++ backlight = <&backlight>; ++ reset-gpios = <&gpio4 RK_PD1 GPIO_ACTIVE_LOW>; ++ vcc-supply = <&vcc2v8_lcd>; ++ iovcc-supply = <&vcc1v8_lcd>; ++ pinctrl-names = "default"; ++ ++ port { ++ mipi_in_panel: endpoint { ++ remote-endpoint = <&mipi_out_panel>; ++ }; ++ }; ++ }; ++}; ++ + &pmu_io_domains { + pmu1830-supply = <&vcc_1v8>; + status = "okay"; +@@ -429,6 +515,10 @@ &sdio0 { + status = "okay"; + }; + ++&pwm0 { ++ status = "okay"; ++}; ++ + &sdmmc { + bus-width = <4>; + cap-sd-highspeed; +@@ -479,3 +569,27 @@ bluetooth { + &uart2 { + status = "okay"; + }; ++ ++&vopb { ++ status = "okay"; ++ assigned-clocks = <&cru DCLK_VOP0_DIV>, <&cru DCLK_VOP0>, ++ <&cru ACLK_VOP0>, <&cru HCLK_VOP0>; ++ assigned-clock-rates = <0>, <0>, <400000000>, <100000000>; ++ assigned-clock-parents = <&cru PLL_GPLL>, <&cru DCLK_VOP0_DIV>; ++}; ++ ++&vopb_mmu { ++ status = "okay"; ++}; ++ ++&vopl { ++ status = "okay"; ++ assigned-clocks = <&cru DCLK_VOP1_DIV>, <&cru DCLK_VOP1>, ++ <&cru ACLK_VOP1>, <&cru HCLK_VOP1>; ++ assigned-clock-rates = <0>, <0>, <400000000>, <100000000>; ++ assigned-clock-parents = <&cru PLL_GPLL>, <&cru DCLK_VOP1_DIV>; ++}; ++ ++&vopl_mmu { ++ status = "okay"; ++}; diff --git a/arch/s390/include/asm/ipl.h b/arch/s390/include/asm/ipl.h index b0d00032479d..afb9544fb007 100644 --- a/arch/s390/include/asm/ipl.h @@ -598,32 +842,498 @@ index 3c197db42c9d..16e4a2e90fae 100644 pd = sysfb_create_simplefb(si, &mode); if (!IS_ERR(pd)) goto unlock_mutex; -diff --git a/drivers/gpu/drm/nouveau/nouveau_backlight.c b/drivers/gpu/drm/nouveau/nouveau_backlight.c -index 40409a29f5b6..91b5ecc57538 100644 ---- a/drivers/gpu/drm/nouveau/nouveau_backlight.c -+++ b/drivers/gpu/drm/nouveau/nouveau_backlight.c -@@ -33,6 +33,7 @@ - #include - #include - #include -+#include - - #include "nouveau_drv.h" - #include "nouveau_reg.h" -@@ -299,8 +300,12 @@ nv50_backlight_init(struct nouveau_backlight *bl, - struct nouveau_drm *drm = nouveau_drm(nv_encoder->base.base.dev); - struct nvif_object *device = &drm->client.device.object; - -+ /* -+ * Note when this runs the connectors have not been probed yet, -+ * so nv_conn->base.status is not set yet. -+ */ - if (!nvif_rd32(device, NV50_PDISP_SOR_PWM_CTL(ffs(nv_encoder->dcb->or) - 1)) || -- nv_conn->base.status != connector_status_connected) -+ drm_helper_probe_detect(&nv_conn->base, NULL, false) != connector_status_connected) - return -ENODEV; - - if (nv_conn->type == DCB_CONNECTOR_eDP) { +diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig +index 737edcdf9eef..7ee9c83f09a7 100644 +--- a/drivers/gpu/drm/panel/Kconfig ++++ b/drivers/gpu/drm/panel/Kconfig +@@ -154,6 +154,18 @@ config DRM_PANEL_FEIYANG_FY07024DI26A30D + Say Y if you want to enable support for panels based on the + Feiyang FY07024DI26A30-D MIPI-DSI interface. + ++config DRM_PANEL_HIMAX_HX8394 ++ tristate "HIMAX HX8394 MIPI-DSI LCD panels" ++ depends on OF ++ depends on DRM_MIPI_DSI ++ depends on BACKLIGHT_CLASS_DEVICE ++ help ++ Say Y if you want to enable support for panels based on the ++ Himax HX8394 controller, such as the HannStar HSD060BHW4 ++ 720x1440 TFT LCD panel that uses a MIPI-DSI interface. ++ ++ If M is selected the module will be called panel-himax-hx8394. ++ + config DRM_PANEL_ILITEK_IL9322 + tristate "Ilitek ILI9322 320x240 QVGA panels" + depends on OF && SPI +diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile +index f8f9d9f6a307..84c01adafd4c 100644 +--- a/drivers/gpu/drm/panel/Makefile ++++ b/drivers/gpu/drm/panel/Makefile +@@ -13,6 +13,7 @@ obj-$(CONFIG_DRM_PANEL_EBBG_FT8719) += panel-ebbg-ft8719.o + obj-$(CONFIG_DRM_PANEL_ELIDA_KD35T133) += panel-elida-kd35t133.o + obj-$(CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02) += panel-feixin-k101-im2ba02.o + obj-$(CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D) += panel-feiyang-fy07024di26a30d.o ++obj-$(CONFIG_DRM_PANEL_HIMAX_HX8394) += panel-himax-hx8394.o + obj-$(CONFIG_DRM_PANEL_ILITEK_IL9322) += panel-ilitek-ili9322.o + obj-$(CONFIG_DRM_PANEL_ILITEK_ILI9341) += panel-ilitek-ili9341.o + obj-$(CONFIG_DRM_PANEL_ILITEK_ILI9881C) += panel-ilitek-ili9881c.o +diff --git a/drivers/gpu/drm/panel/panel-himax-hx8394.c b/drivers/gpu/drm/panel/panel-himax-hx8394.c +new file mode 100644 +index 000000000000..d4fb5d1b295b +--- /dev/null ++++ b/drivers/gpu/drm/panel/panel-himax-hx8394.c +@@ -0,0 +1,451 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/* ++ * Driver for panels based on Himax HX8394 controller, such as: ++ * ++ * - HannStar HSD060BHW4 5.99" MIPI-DSI panel ++ * ++ * Copyright (C) 2021 Kamil Trzciński ++ * ++ * Based on drivers/gpu/drm/panel/panel-sitronix-st7703.c ++ * Copyright (C) Purism SPC 2019 ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include