diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml index 18241f4051d2..e6fd09beb31c 100644 --- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml +++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml @@ -29,6 +29,10 @@ properties: # compatible must be listed in alphabetical order, ordered by compatible. # The description in the comment is mandatory for each compatible. + # common simple panel + - simple-panel + # common simple dsi panel + - simple-panel-dsi # Ampire AM-1280800N3TZQW-T00H 10.1" WQVGA TFT LCD panel - ampire,am-1280800n3tzqw-t00h # Ampire AM-480272H3TMQW-T01H 4.3" WQVGA TFT LCD panel @@ -350,6 +354,76 @@ properties: no-hpd: true hpd-gpios: true + reset-gpios: + description: GPIO pin to reset the panel + + prepare-delay-ms: + description: | + the time (in milliseconds) that it takes for the panel to + become ready and start receiving video data + enable-delay-ms: + description: | + the time (in milliseconds) that it takes for the panel to + display the first valid frame after starting to receive + video data + disable-delay-ms: + description: | + the time (in milliseconds) that it takes for the panel to + turn the display off (no content is visible) + unprepare-delay-ms: + description: | + the time (in milliseconds) that it takes for the panel + to power itself down completely + reset-delay-ms: + description: | + the time (in milliseconds) that it takes for the panel to + reset itself completely + init-delay-ms: + description: | + the time (in milliseconds) that it takes for the panel to + send init command sequence after reset deassert + + width-mm: + description: width (in millimeters) of the panel's active display area + height-mm: + description: height (in millimeters) of the panel's active display area + + bpc: + description: bits per color/component + bus-format: + description: pixel data format on the wire + + dsi,lanes: + description: number of active data lanes + dsi,format: + description: pixel format for video mode + dsi,flags: + description: DSI operation mode related flags + + panel-init-sequence: true + panel-exit-sequence: + description: | + A byte stream formed by simple multiple dcs packets. + byte 0 - dcs data type + byte 1 - wait number of specified ms after dcs command transmitted + byte 2 - packet payload length + byte 3 - and beyond: number byte of payload + rockchip,cmd-type: + description: default is DSI cmd, or "spi", "mcu" cmd type + spi-sdi: + description: spi init panel for spi-sdi io + spi-scl: + description: spi init panel for spi-scl io + spi-cs: + description: spi init pael for spi-cs io + + power-invert: + description: power invert control + vsp-supply: + description: positive voltage supply + vsn-supply: + description: negative voltage supply + additionalProperties: false required: diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 0ae28909a3c1..8d7ab6fdd311 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -1210,6 +1210,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += \ rk3288-veyron-speedy.dtb \ rk3288-veyron-tiger.dtb \ rk3288-vyasa.dtb \ + rk3308-evb-audio-v10-display-rgb-aarch32.dtb \ rk3308bs-evb-amic-v11-aarch32.dtb \ rk3308bs-evb-dmic-pdm-v11-aarch32.dtb \ rk3308bs-evb-mipi-display-v11-aarch32.dtb \ diff --git a/arch/arm/boot/dts/rk3308-evb-audio-v10-display-rgb-aarch32.dts b/arch/arm/boot/dts/rk3308-evb-audio-v10-display-rgb-aarch32.dts new file mode 100644 index 000000000000..e2f36bc7fc8f --- /dev/null +++ b/arch/arm/boot/dts/rk3308-evb-audio-v10-display-rgb-aarch32.dts @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2023 Fuzhou Rockchip Electronics Co., Ltd + */ + +#include "arm64/rockchip/rk3308-evb-audio-v10-display-rgb.dts" + +/ { + model = "Rockchip RK3308 evb audio display rgb board (AArch32)"; + compatible = "rockchip,rk3308-evb-audio-v10-display-rgb-aarch32", "rockchip,rk3308"; +}; + +&ramoops { + reg = <0x0 0x30000 0x0 0x20000>; + record-size = <0x00000>; + console-size = <0x20000>; +}; diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index d32e2a5726be..9dcd7c6b285c 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -1930,12 +1930,12 @@ static void vop_plane_atomic_disable(struct drm_plane *plane, to_vop_plane_state(plane->state); #endif - rockchip_drm_dbg(vop->dev, VOP_DEBUG_PLANE, "disable win%d-area%d by %s\n", - win->win_id, win->area_id, current->comm); - if (!old_state->crtc) return; + rockchip_drm_dbg(vop->dev, VOP_DEBUG_PLANE, "disable win%d-area%d by %s\n", + win->win_id, win->area_id, current->comm); + spin_lock(&vop->reg_lock); vop_win_disable(vop, win);