Skip to content

Commit 8dbeb4e

Browse files
sw.multimediaesmil
authored andcommitted
drm/starfive: Add StarFive drm driver
Add starfive DRM Display driver framework Signed-off-by: jack.zhu <jack.zhu@starfivetech.com> Signed-off-by: keith.zhao <keith.zhao@starfivetech.com> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: José Expósito <jose.exposito89@gmail.com> Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
1 parent facc983 commit 8dbeb4e

21 files changed

Lines changed: 3394 additions & 0 deletions

drivers/cache/sifive_ccache.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,12 @@ static void ccache_flush_range(phys_addr_t start, size_t len)
163163
}
164164
}
165165

166+
void sifive_ccache_flush_range(phys_addr_t start, size_t len)
167+
{
168+
ccache_flush_range(start, len);
169+
}
170+
EXPORT_SYMBOL_GPL(sifive_ccache_flush_range);
171+
166172
static const struct riscv_nonstd_cache_ops ccache_mgmt_ops __initconst = {
167173
.wback = &ccache_flush_range,
168174
.inv = &ccache_flush_range,

drivers/gpu/drm/Kconfig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,8 @@ source "drivers/gpu/drm/renesas/Kconfig"
316316

317317
source "drivers/gpu/drm/sun4i/Kconfig"
318318

319+
source "drivers/gpu/drm/starfive/Kconfig"
320+
319321
source "drivers/gpu/drm/omapdrm/Kconfig"
320322

321323
source "drivers/gpu/drm/tilcdc/Kconfig"

drivers/gpu/drm/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ obj-$(CONFIG_DRM_ATMEL_HLCDC) += atmel-hlcdc/
192192
obj-y += renesas/
193193
obj-y += omapdrm/
194194
obj-$(CONFIG_DRM_SUN4I) += sun4i/
195+
obj-$(CONFIG_DRM_STARFIVE) += starfive/
195196
obj-y += tilcdc/
196197
obj-$(CONFIG_DRM_QXL) += qxl/
197198
obj-$(CONFIG_DRM_VIRTIO_GPU) += virtio/

drivers/gpu/drm/starfive/Kconfig

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
# Copyright (C) 2021 StarFive Technology Co., Ltd.
3+
4+
config DRM_STARFIVE
5+
tristate "DRM Support for StarFive SoCs"
6+
depends on DRM
7+
depends on SIFIVE_CCACHE && RISCV_NONSTANDARD_CACHE_OPS
8+
depends on SOC_STARFIVE || COMPILE_TEST
9+
select DRM_CLIENT_SELECTION
10+
select DRM_GEM_DMA_HELPER
11+
select DRM_KMS_HELPER
12+
select DRM_MIPI_DSI
13+
select DRM_PANEL
14+
help
15+
Choose this option if you have a StarFive SoCs.
16+
The module will be called starfive-drm
17+
This driver provides kernel mode setting and
18+
buffer management to userspace.

drivers/gpu/drm/starfive/Makefile

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
#
3+
# Copyright (C) 2021 StarFive Technology Co., Ltd.
4+
#
5+
starfive-drm-y := starfive_drm_drv.o \
6+
starfive_drm_gem.o \
7+
starfive_drm_crtc.o \
8+
starfive_drm_encoder.o \
9+
starfive_drm_plane.o \
10+
starfive_drm_lcdc.o \
11+
starfive_drm_vpp.o
12+
13+
obj-$(CONFIG_DRM_STARFIVE) += starfive-drm.o
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
Display Subsystem:(default FBdev)
2+
3+
Steps switch to DRM:
4+
1、Disable fbdev,close below config items:
5+
CONFIG_FB_STARFIVE=y
6+
CONFIG_FB_STARFIVE_HDMI_TDA998X=y
7+
CONFIG_FB_STARFIVE_VIDEO=y
8+
9+
2、open DRM hdmi pipeline,enable items:
10+
CONFIG_DRM_I2C_NXP_TDA998X=y
11+
CONFIG_DRM_I2C_NXP_TDA9950=y
12+
CONFIG_DRM_STARFIVE=y
13+
CONFIG_FRAMEBUFFER_CONSOLE=y
14+
15+
Precautions:when use DRM hdmi pipeline,please make sure CONFIG_DRM_STARFIVE_MIPI_DSI is disable ,
16+
or will cause color abnormal.
17+
18+
3、open DRM mipi pipeline
19+
20+
enable items:
21+
CONFIG_PHY_M31_DPHY_RX0=y
22+
CONFIG_DRM_STARFIVE_MIPI_DSI=y
23+
24+
25+
change jh7100.dtsi display-encoder as below:
26+
27+
display-encoder {
28+
compatible = "starfive,display-encoder";
29+
encoder-type = <6>; //2-TMDS, 3-LVDS, 6-DSI, 8-DPI
30+
status = "okay";
31+
32+
ports {
33+
port@0 {
34+
endpoint {
35+
remote-endpoint = <&dsi_out_port>;
36+
};
37+
};
38+
39+
port@1 {
40+
endpoint {
41+
remote-endpoint = <&crtc_0_out>;
42+
};
43+
};
44+
};
45+
};
46+
47+
install libdrm:
48+
make buildroot_initramfs-menuconfig
49+
choose:
50+
BR2_PACKAGE_LIBDRM=y
51+
BR2_PACKAGE_LIBDRM_RADEON=y
52+
BR2_PACKAGE_LIBDRM_AMDGPU=y
53+
BR2_PACKAGE_LIBDRM_NOUVEAU=y
54+
BR2_PACKAGE_LIBDRM_ETNAVIV=y
55+
BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y
56+

0 commit comments

Comments
 (0)