Skip to content

[PW_SID:1142914] drm/spacemit: add SpacemiT K3 display support - #2436

Open
linux-riscv-bot wants to merge 17 commits into
workflow__riscv__fixesfrom
pw1142914
Open

[PW_SID:1142914] drm/spacemit: add SpacemiT K3 display support#2436
linux-riscv-bot wants to merge 17 commits into
workflow__riscv__fixesfrom
pw1142914

Conversation

@linux-riscv-bot

Copy link
Copy Markdown

PR for series 1142914 applied to workflow__riscv__fixes

Name: drm/spacemit: add SpacemiT K3 display support
URL: https://patchwork.kernel.org/project/linux-riscv/list/?series=1142914
Version: 2

Document the Saturn display processing unit found on the SpacemiT K3 SoC.
The K3 instantiates two of them, one per display path. They share a
compatible: an instance differs only in which register window, interrupt,
clock and reset lines it takes.

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Cody Kang <codykang.hk@gmail.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
The SpacemiT K3 DisplayPort controller drives its four transmit lanes
through an integrated Innosilicon DP PHY, one PHY per controller. Add a
binding so the controller can reference its transmit PHY and the pixel
clock the PHY's PLL sources.

The PHY's registers are interleaved with its parent controller's inside
one MMIO window, so it owns neither a reg nor a reset and is modelled as
a child of the controller.

It exposes its PLL-generated pixel clock through #clock-cells, so the
APMU pixel-clock mux can select it as a parent through the clock
framework.

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Cody Kang <codykang.hk@gmail.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Both K3 instances are the same IP and share one compatible; which one
behaves as eDP is decided by what its downstream port is wired to, not by
which register window it sits in, so the binding does not distinguish them.

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Cody Kang <codykang.hk@gmail.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
The APMU's eDP pixel-clock muxes select the DP PHY PLLs as parents, so the
K3 syscon takes two clock inputs the other variants do not have.

Gate them behind the K3 compatible instead of widening the shared clock
list, so a non-K3 syscon cannot silently accept clocks it has no mux for.

Signed-off-by: Cody Kang <codykang.hk@gmail.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
The PHY's registers are interleaved into its parent DP controller's MMIO
window rather than a window of its own, so it probes as a child of the
controller, carries no reg or reset, and reaches its registers through
the controller's regmap.

It registers its pixel PLL as a clock provider. That lets the display
controller ask for a mode's pixel rate through clk_set_rate(), and it
lets the APMU pixel-clock mux parent to the PHY through the clock
framework. Without it the controller and PHY would have to know each
other's registers.

Signed-off-by: Cody Kang <codykang.hk@gmail.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
The APMU eDP/DP pixel-clock muxes were parented to a placeholder, because
their real parents (the DP PHY PLLs) did not exist as clocks yet. They do
now, so point each mux at its PLL and let the pixel clock reach the
controller through the clock framework.

Signed-off-by: Cody Kang <codykang.hk@gmail.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
The Saturn display processing unit is programmed through a set of
register blocks (composer, RDMA, timing generator, cmdlist engine,
display MMU) laid out identically in both SoC instances. Add the block
address map, the per-field word offset and mask tables consumed by the
field accessors, the interrupt bit layout and the compositor and
output-format ID encodings. The address map describes the whole
IP block on purpose, including blocks the driver does not touch; the
field tables carry the fields the driver programs, with each block's
full word count kept as its NWORDS extent.

Consumers arrive with the following patches; the driver only becomes
buildable once the final patch adds the Kconfig and Makefile glue.

Signed-off-by: Cody Kang <codykang.hk@gmail.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Register programming of the Saturn DPU is batched: the driver builds
per-module register lists in memory and the hardware command-list
engine replays them at frame boundaries, while scanout buffers are
mapped through the DPU's private address translation unit (DMMU)
rather than scanned out by physical address.

Add the shared driver types, the MMIO field accessors, the trace
events, the command-list builder and the DMMU table code. Some DPU
configuration registers are write-only, so a read-modify-write would
corrupt neighbouring fields; byte- and halfword-aligned fields are
therefore written at their native width instead.

Signed-off-by: Cody Kang <codykang.hk@gmail.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Add the register-level programming of one Saturn instance: clock and
reset bring-up, scene control and timing generator setup, RDMA channel
and composer layer programming, FBC line-buffer budgeting, interrupt
dispatch and the cfg-ready/vsync handshake that paces commits. The
backend is exposed as an ops table and hardware descriptor to be
aggregated by the KMS layer in an upcoming patch.

Signed-off-by: Cody Kang <codykang.hk@gmail.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Add the atomic KMS implementation on top of the hardware backend: one
CRTC and one primary plane per DPU instance. atomic_check validates
the plane rectangle 1:1 against the mode and sizes the per-channel FBC
line buffer; atomic commit builds the cmdlist batches, maps the
framebuffer through the DMMU and arms the cfg-ready handshake, with
vblank events driven from the DPU interrupt.

Signed-off-by: Cody Kang <codykang.hk@gmail.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Add the DRM device for the SpacemiT K3 Saturn display processing unit
and hook the driver up to the build. The SoC has two DPU instances;
each drives one CRTC that scans out a single primary plane in linear
RGB at up to 3840x2160@60 and feeds a downstream DP/eDP controller
over an OF-graph endpoint. Buffers use drm_gem_shmem_helper. The
AFBC/compressed decode path is not exposed and writeback is not
implemented.

Signed-off-by: Cody Kang <codykang.hk@gmail.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Add the DP/eDP controller that sits downstream of the Saturn DPU. Two
identical instances share one compatible; the eDP-vs-DP role is board
wiring, so it is taken from the devicetree: an eDP panel always sits
under an aux-bus child node, an external DP connector never does.

The link is driven through the generic PHY framework, so the controller
never touches a PLL register. The controller's HPD interrupt is gated by
the DP pixel clock, which can be off exactly when a plug has to be
caught, so the connector is also polled and the interrupt path re-reads
the live level when it does fire.

Signed-off-by: Cody Kang <codykang.hk@gmail.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Cover the Saturn DPU, the Innosilicon DP/eDP controller, the DP PHY and
their bindings.

Signed-off-by: Cody Kang <codykang.hk@gmail.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Add the SoC-level display nodes: the two Saturn DPUs, the two DP/eDP
controllers with their PHY children.

The PHY PLLs are fed back into the APMU as pixel-clock mux parents, so
updated the &syscon_apmu node in the display dtsi.

Signed-off-by: Cody Kang <codykang.hk@gmail.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Pico-ITX brings the second DPU's output to an external DisplayPort
connector. Enable that DPU and the DisplayPort controller it feeds.

Signed-off-by: Cody Kang <codykang.hk@gmail.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
CoM260-IFX carries a single DisplayPort output, so the second DPU and
the DisplayPort controller it feeds are enabled.

Signed-off-by: Cody Kang <codykang.hk@gmail.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Enable the Saturn DPU and the DP/eDP controller as modules, matching the
other DRM drivers in this defconfig; the DP PHY follows through the
controller's imply.

Signed-off-by: Cody Kang <codykang.hk@gmail.com>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v2,01/17] dt-bindings: display: spacemit: add K3 Saturn DPU controller"
build-rv32-defconfig
Desc: Builds riscv32 defconfig
Duration: 116.86 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v2,01/17] dt-bindings: display: spacemit: add K3 Saturn DPU controller"
build-rv64-clang-allmodconfig
Desc: Builds riscv64 allmodconfig with Clang, and checks for errors and added warnings
Duration: 1126.23 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v2,01/17] dt-bindings: display: spacemit: add K3 Saturn DPU controller"
build-rv64-gcc-allmodconfig
Desc: Builds riscv64 allmodconfig with GCC, and checks for errors and added warnings
Duration: 1397.80 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v2,01/17] dt-bindings: display: spacemit: add K3 Saturn DPU controller"
build-rv64-nommu-k210-defconfig
Desc: Builds riscv64 defconfig with NOMMU for K210
Duration: 23.41 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v2,01/17] dt-bindings: display: spacemit: add K3 Saturn DPU controller"
build-rv64-nommu-k210-virt
Desc: Builds riscv64 defconfig with NOMMU for the virt platform
Duration: 26.20 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v2,01/17] dt-bindings: display: spacemit: add K3 Saturn DPU controller"
checkpatch
Desc: Runs checkpatch.pl on the patch
Duration: 2.87 seconds
Result: WARNING
Output:

WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#20: 
new file mode 100644

total: 0 errors, 1 warnings, 0 checks, 132 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
      mechanically convert to the typical style using --fix or --fix-inplace.

Commit 8fb8708f6878 ("dt-bindings: display: spacemit: add K3 Saturn DPU controller") has style problems, please review.

NOTE: Ignored message types: ALLOC_SIZEOF_STRUCT CAMELCASE COMMIT_LOG_LONG_LINE GIT_COMMIT_ID MACRO_ARG_REUSE NO_AUTHOR_SIGN_OFF

NOTE: If any of the errors are false positives, please report
      them to the maintainer, see CHECKPATCH in MAINTAINERS.
total: 0 errors, 1 warnings, 0 checks, 132 lines checked
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?


@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v2,01/17] dt-bindings: display: spacemit: add K3 Saturn DPU controller"
dtb-warn-rv64
Desc: Checks for Device Tree warnings/errors
Duration: 84.27 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v2,01/17] dt-bindings: display: spacemit: add K3 Saturn DPU controller"
header-inline
Desc: Detects static functions without inline keyword in header files
Duration: 0.71 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v2,01/17] dt-bindings: display: spacemit: add K3 Saturn DPU controller"
kdoc
Desc: Detects for kdoc errors
Duration: 1.86 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v2,01/17] dt-bindings: display: spacemit: add K3 Saturn DPU controller"
module-param
Desc: Detect module_param changes
Duration: 5.37 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v2,01/17] dt-bindings: display: spacemit: add K3 Saturn DPU controller"
verify-fixes
Desc: Verifies that the Fixes: tags exist
Duration: 2.85 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 1: "[v2,01/17] dt-bindings: display: spacemit: add K3 Saturn DPU controller"
verify-signedoff
Desc: Verifies that Signed-off-by: tags are correct
Duration: 8.75 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 2: "[v2,02/17] dt-bindings: phy: add SpacemiT K3 Innosilicon DP PHY"
build-rv32-defconfig
Desc: Builds riscv32 defconfig
Duration: 116.92 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 15: "[v2,15/17] riscv: dts: spacemit: k3-pico-itx: enable the DisplayPort output"
dtb-warn-rv64
Desc: Checks for Device Tree warnings/errors
Duration: 82.97 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 15: "[v2,15/17] riscv: dts: spacemit: k3-pico-itx: enable the DisplayPort output"
header-inline
Desc: Detects static functions without inline keyword in header files
Duration: 0.56 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 15: "[v2,15/17] riscv: dts: spacemit: k3-pico-itx: enable the DisplayPort output"
kdoc
Desc: Detects for kdoc errors
Duration: 0.72 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 15: "[v2,15/17] riscv: dts: spacemit: k3-pico-itx: enable the DisplayPort output"
module-param
Desc: Detect module_param changes
Duration: 0.25 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 15: "[v2,15/17] riscv: dts: spacemit: k3-pico-itx: enable the DisplayPort output"
verify-fixes
Desc: Verifies that the Fixes: tags exist
Duration: 0.21 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 15: "[v2,15/17] riscv: dts: spacemit: k3-pico-itx: enable the DisplayPort output"
verify-signedoff
Desc: Verifies that Signed-off-by: tags are correct
Duration: 0.25 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 16: "[v2,16/17] riscv: dts: spacemit: k3-com260-ifx: enable the DisplayPort output"
build-rv32-defconfig
Desc: Builds riscv32 defconfig
Duration: 116.80 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 16: "[v2,16/17] riscv: dts: spacemit: k3-com260-ifx: enable the DisplayPort output"
build-rv64-clang-allmodconfig
Desc: Builds riscv64 allmodconfig with Clang, and checks for errors and added warnings
Duration: 802.65 seconds
Result: ERROR
Output:

Redirect to /build/tmp.96diIBqDRG and /build/tmp.vAOAVG6ZTk
Tree base:
e3960ce57053 ("riscv: dts: spacemit: k3-pico-itx: enable the DisplayPort output")
Building the whole tree with the patch
error:
/build/tmp_bnpfxi9/drivers/gpu/drm/spacemit/spacemit_inno_dp.c:1664:2: error: call to undeclared function '__drm_atomic_helper_bridge_state_init'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
/build/tmp_bnpfxi9/drivers/gpu/drm/spacemit/spacemit_inno_dp.c:1737:3: error: field designator 'atomic_create_state' does not refer to any field in type 'const struct drm_bridge_funcs'



real	13m13.967s
user	502m59.023s
sys	111m8.100s

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 16: "[v2,16/17] riscv: dts: spacemit: k3-com260-ifx: enable the DisplayPort output"
build-rv64-gcc-allmodconfig
Desc: Builds riscv64 allmodconfig with GCC, and checks for errors and added warnings
Duration: 1069.20 seconds
Result: ERROR
Output:

Redirect to /build/tmp.uoQyQvwzCd and /build/tmp.W9tWLGnI6U
Tree base:
e3960ce57053 ("riscv: dts: spacemit: k3-pico-itx: enable the DisplayPort output")
Building the whole tree with the patch
error:
/build/tmp_bnpfxi9/drivers/gpu/drm/spacemit/spacemit_inno_dp.c:1664:9: error: implicit declaration of function '__drm_atomic_helper_bridge_state_init'; did you mean '__drm_atomic_helper_bridge_reset'? [-Wimplicit-function-declaration]
/build/tmp_bnpfxi9/drivers/gpu/drm/spacemit/spacemit_inno_dp.c:1737:10: error: 'const struct drm_bridge_funcs' has no member named 'atomic_create_state'; did you mean 'atomic_duplicate_state'?
/build/tmp_bnpfxi9/drivers/gpu/drm/spacemit/spacemit_inno_dp.c:1737:43: error: initialization of 'u32 * (*)(struct drm_bridge *, struct drm_bridge_state *, struct drm_crtc_state *, struct drm_connector_state *, unsigned int *)' {aka 'unsigned int * (*)(struct drm_bridge *, struct drm_bridge_state *, struct drm_crtc_state *, struct drm_connector_state *, unsigned int *)'} from incompatible pointer type 'struct drm_bridge_state * (*)(struct drm_bridge *)' [-Wincompatible-pointer-types]



real	17m42.646s
user	684m50.061s
sys	130m0.809s

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 16: "[v2,16/17] riscv: dts: spacemit: k3-com260-ifx: enable the DisplayPort output"
build-rv64-nommu-k210-defconfig
Desc: Builds riscv64 defconfig with NOMMU for K210
Duration: 20.29 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 16: "[v2,16/17] riscv: dts: spacemit: k3-com260-ifx: enable the DisplayPort output"
build-rv64-nommu-k210-virt
Desc: Builds riscv64 defconfig with NOMMU for the virt platform
Duration: 21.60 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 16: "[v2,16/17] riscv: dts: spacemit: k3-com260-ifx: enable the DisplayPort output"
checkpatch
Desc: Runs checkpatch.pl on the patch
Duration: 0.77 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 16: "[v2,16/17] riscv: dts: spacemit: k3-com260-ifx: enable the DisplayPort output"
dtb-warn-rv64
Desc: Checks for Device Tree warnings/errors
Duration: 79.61 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 16: "[v2,16/17] riscv: dts: spacemit: k3-com260-ifx: enable the DisplayPort output"
header-inline
Desc: Detects static functions without inline keyword in header files
Duration: 0.24 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 16: "[v2,16/17] riscv: dts: spacemit: k3-com260-ifx: enable the DisplayPort output"
kdoc
Desc: Detects for kdoc errors
Duration: 0.75 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 16: "[v2,16/17] riscv: dts: spacemit: k3-com260-ifx: enable the DisplayPort output"
module-param
Desc: Detect module_param changes
Duration: 0.25 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 16: "[v2,16/17] riscv: dts: spacemit: k3-com260-ifx: enable the DisplayPort output"
verify-fixes
Desc: Verifies that the Fixes: tags exist
Duration: 0.23 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 16: "[v2,16/17] riscv: dts: spacemit: k3-com260-ifx: enable the DisplayPort output"
verify-signedoff
Desc: Verifies that Signed-off-by: tags are correct
Duration: 0.27 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 17: "[v2,17/17] riscv: defconfig: spacemit: k3: enable display driver"
build-rv32-defconfig
Desc: Builds riscv32 defconfig
Duration: 102.81 seconds
Result: ERROR
Output:

Full log:
W: Support for running offline not available (unshare: unshare failed: Operation not permitted)
I: config: PASS in 0:00:15.824377
I: default: FAIL in 0:01:21.921917
I: kernel: SKIP in 0:00:00.000006
I: xipkernel: SKIP in 0:00:00.000002
I: modules: FAIL in 0:00:00.047051
I: dtbs: PASS in 0:00:01.018573
I: dtbs-legacy: SKIP in 0:00:00.002058
I: debugkernel: SKIP in 0:00:00.000003
I: headers: PASS in 0:00:00.828732
I: build output in /build/tmp.yeEVQcaSqM
tuxmake --download-all-korg-gcc-toolchains --target-arch=riscv --kconfig=rv32_defconfig --toolchain=llvm --wrapper=ccache --environment=KBUILD_BUILD_TIMESTAMP=@1621270510 --environment=KBUILD_BUILD_USER=tuxmake --environment=KBUILD_BUILD_HOST=tuxmake --environment=KCFLAGS=-ffile-prefix-map=/build/tmp.yeEVQcaSqM/build/= --runtime=null --image=docker.io/tuxmake/riscv_clang CROSS_COMPILE=riscv64-linux- config default kernel xipkernel modules dtbs dtbs-legacy debugkernel headers
make --silent --keep-going --jobs=48 O=/build/tmp.yeEVQcaSqM/build ARCH=riscv CROSS_COMPILE=riscv64-linux- LLVM=1 'CC=ccache clang' 'HOSTCC=ccache clang' rv32_defconfig
make --silent --keep-going --jobs=48 O=/build/tmp.yeEVQcaSqM/build ARCH=riscv CROSS_COMPILE=riscv64-linux- LLVM=1 'CC=ccache clang' 'HOSTCC=ccache clang'
/build/tmp28_ua3qu/drivers/gpu/drm/spacemit/spacemit_cmdlist.c:131:6: warning: variable 'regs_in_row' set but not used [-Wunused-but-set-variable]
  131 |                 u8 regs_in_row = 0;
      |                    ^
1 warning generated.
/build/tmp28_ua3qu/drivers/gpu/drm/spacemit/spacemit_inno_dp.c:1664:2: error: call to undeclared function '__drm_atomic_helper_bridge_state_init'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
 1664 |         __drm_atomic_helper_bridge_state_init(&new->base, bridge);
      |         ^
/build/tmp28_ua3qu/drivers/gpu/drm/spacemit/spacemit_inno_dp.c:1664:2: note: did you mean '__drm_atomic_helper_bridge_reset'?
/build/tmp28_ua3qu/include/drm/drm_atomic_state_helper.h:99:6: note: '__drm_atomic_helper_bridge_reset' declared here
   99 | void __drm_atomic_helper_bridge_reset(struct drm_bridge *bridge,
      |      ^
/build/tmp28_ua3qu/drivers/gpu/drm/spacemit/spacemit_inno_dp.c:1737:3: error: field designator 'atomic_create_state' does not refer to any field in type 'const struct drm_bridge_funcs'
 1737 |         .atomic_create_state            = spacemit_dp_bridge_atomic_create_state,
      |         ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 errors generated.
make[7]: *** [/build/tmp28_ua3qu/scripts/Makefile.build:289: drivers/gpu/drm/spacemit/spacemit_inno_dp.o] Error 1
make[7]: Target 'drivers/gpu/drm/spacemit/' not remade because of errors.
make[6]: *** [/build/tmp28_ua3qu/scripts/Makefile.build:549: drivers/gpu/drm/spacemit] Error 2
make[6]: Target 'drivers/gpu/drm/' not remade because of errors.
make[5]: *** [/build/tmp28_ua3qu/scripts/Makefile.build:549: drivers/gpu/drm] Error 2
make[5]: Target 'drivers/gpu/' not remade because of errors.
make[4]: *** [/build/tmp28_ua3qu/scripts/Makefile.build:549: drivers/gpu] Error 2
make[4]: Target 'drivers/' not remade because of errors.
make[3]: *** [/build/tmp28_ua3qu/scripts/Makefile.build:549: drivers] Error 2
make[3]: Target './' not remade because of errors.
make[2]: *** [/build/tmp28_ua3qu/Makefile:2187: .] Error 2
make[2]: Target '__all' not remade because of errors.
make[1]: *** [/build/tmp28_ua3qu/Makefile:248: __sub-make] Error 2
make[1]: Target '__all' not remade because of errors.
make: *** [Makefile:248: __sub-make] Error 2
make: Target '__all' not remade because of errors.
rm -rf /build/tmp.yeEVQcaSqM/build/modinstall
make --silent --keep-going --jobs=48 O=/build/tmp.yeEVQcaSqM/build INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=/build/tmp.yeEVQcaSqM/build/modinstall ARCH=riscv CROSS_COMPILE=riscv64-linux- LLVM=1 'CC=ccache clang' 'HOSTCC=ccache clang' modules_install
make[3]: *** No rule to make target 'modules.order', needed by '/build/tmp.yeEVQcaSqM/build/modinstall/lib/modules/7.2.0-rc6-00021-g857acfb34121/modules.order'.
make[3]: *** No rule to make target 'modules.builtin', needed by '/build/tmp.yeEVQcaSqM/build/modinstall/lib/modules/7.2.0-rc6-00021-g857acfb34121/modules.builtin'.
make[3]: *** No rule to make target 'modules.builtin.modinfo', needed by '/build/tmp.yeEVQcaSqM/build/modinstall/lib/modules/7.2.0-rc6-00021-g857acfb34121/modules.builtin.modinfo'.
make[3]: Target '__modinst' not remade because of errors.
make[2]: *** [/build/tmp28_ua3qu/Makefile:2093: modules_install] Error 2
make[1]: *** [/build/tmp28_ua3qu/Makefile:248: __sub-make] Error 2
make[1]: Target 'modules_install' not remade because of errors.
make: *** [Makefile:248: __sub-make] Error 2
make: Target 'modules_install' not remade because of errors.
make --silent --keep-going --jobs=48 O=/build/tmp.yeEVQcaSqM/build INSTALL_DTBS_PATH=/build/tmp.yeEVQcaSqM/build/dtbsinstall/dtbs ARCH=riscv CROSS_COMPILE=riscv64-linux- LLVM=1 'CC=ccache clang' 'HOSTCC=ccache clang' dtbs
rm -rf /build/tmp.yeEVQcaSqM/build/dtbsinstall
mkdir -p /build/tmp.yeEVQcaSqM/build/dtbsinstall/dtbs
make --silent --keep-going --jobs=48 O=/build/tmp.yeEVQcaSqM/build INSTALL_DTBS_PATH=/build/tmp.yeEVQcaSqM/build/dtbsinstall/dtbs ARCH=riscv CROSS_COMPILE=riscv64-linux- LLVM=1 'CC=ccache clang' 'HOSTCC=ccache clang' dtbs_install
tar --sort=name --owner=tuxmake:1000 --group=tuxmake:1000 --mtime=@1786282817 --clamp-mtime -caf /build/tmp.yeEVQcaSqM/build/dtbs.tar -C /build/tmp.yeEVQcaSqM/build/dtbsinstall dtbs
rm -rf /build/tmp.yeEVQcaSqM/build/install_hdr
make --silent --keep-going --jobs=48 O=/build/tmp.yeEVQcaSqM/build INSTALL_HDR_PATH=/build/tmp.yeEVQcaSqM/build/install_hdr/ ARCH=riscv CROSS_COMPILE=riscv64-linux- LLVM=1 'CC=ccache clang' 'HOSTCC=ccache clang' headers_install
tar --sort=name --owner=tuxmake:1000 --group=tuxmake:1000 --mtime=@1786282817 --clamp-mtime -caf /build/tmp.yeEVQcaSqM/build/headers.tar -C /build/tmp.yeEVQcaSqM/build/install_hdr .
warnings/errors:
/build/tmp28_ua3qu/drivers/gpu/drm/spacemit/spacemit_cmdlist.c:131:6: warning: variable 'regs_in_row' set but not used [-Wunused-but-set-variable]
/build/tmp28_ua3qu/drivers/gpu/drm/spacemit/spacemit_inno_dp.c:1664:2: error: call to undeclared function '__drm_atomic_helper_bridge_state_init'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
/build/tmp28_ua3qu/drivers/gpu/drm/spacemit/spacemit_inno_dp.c:1737:3: error: field designator 'atomic_create_state' does not refer to any field in type 'const struct drm_bridge_funcs'


@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 17: "[v2,17/17] riscv: defconfig: spacemit: k3: enable display driver"
build-rv64-clang-allmodconfig
Desc: Builds riscv64 allmodconfig with Clang, and checks for errors and added warnings
Duration: 800.86 seconds
Result: ERROR
Output:

Redirect to /build/tmp.V8WhoOImfg and /build/tmp.f0zqz37Y4J
Tree base:
00b10401c1fb ("riscv: dts: spacemit: k3-com260-ifx: enable the DisplayPort output")
Building the whole tree with the patch
error:
/build/tmp28_ua3qu/drivers/gpu/drm/spacemit/spacemit_inno_dp.c:1664:2: error: call to undeclared function '__drm_atomic_helper_bridge_state_init'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
/build/tmp28_ua3qu/drivers/gpu/drm/spacemit/spacemit_inno_dp.c:1737:3: error: field designator 'atomic_create_state' does not refer to any field in type 'const struct drm_bridge_funcs'



real	13m12.388s
user	504m2.460s
sys	109m7.893s

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 17: "[v2,17/17] riscv: defconfig: spacemit: k3: enable display driver"
build-rv64-gcc-allmodconfig
Desc: Builds riscv64 allmodconfig with GCC, and checks for errors and added warnings
Duration: 1062.94 seconds
Result: ERROR
Output:

Redirect to /build/tmp.UFnk6AR3Qa and /build/tmp.SLE2wMCwAR
Tree base:
00b10401c1fb ("riscv: dts: spacemit: k3-com260-ifx: enable the DisplayPort output")
Building the whole tree with the patch
error:
/build/tmp28_ua3qu/drivers/gpu/drm/spacemit/spacemit_inno_dp.c:1664:9: error: implicit declaration of function '__drm_atomic_helper_bridge_state_init'; did you mean '__drm_atomic_helper_bridge_reset'? [-Wimplicit-function-declaration]
/build/tmp28_ua3qu/drivers/gpu/drm/spacemit/spacemit_inno_dp.c:1737:10: error: 'const struct drm_bridge_funcs' has no member named 'atomic_create_state'; did you mean 'atomic_duplicate_state'?
/build/tmp28_ua3qu/drivers/gpu/drm/spacemit/spacemit_inno_dp.c:1737:43: error: initialization of 'u32 * (*)(struct drm_bridge *, struct drm_bridge_state *, struct drm_crtc_state *, struct drm_connector_state *, unsigned int *)' {aka 'unsigned int * (*)(struct drm_bridge *, struct drm_bridge_state *, struct drm_crtc_state *, struct drm_connector_state *, unsigned int *)'} from incompatible pointer type 'struct drm_bridge_state * (*)(struct drm_bridge *)' [-Wincompatible-pointer-types]



real	17m36.284s
user	680m18.281s
sys	130m19.214s

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 17: "[v2,17/17] riscv: defconfig: spacemit: k3: enable display driver"
build-rv64-nommu-k210-defconfig
Desc: Builds riscv64 defconfig with NOMMU for K210
Duration: 20.42 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 17: "[v2,17/17] riscv: defconfig: spacemit: k3: enable display driver"
build-rv64-nommu-k210-virt
Desc: Builds riscv64 defconfig with NOMMU for the virt platform
Duration: 21.83 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 17: "[v2,17/17] riscv: defconfig: spacemit: k3: enable display driver"
checkpatch
Desc: Runs checkpatch.pl on the patch
Duration: 0.54 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 17: "[v2,17/17] riscv: defconfig: spacemit: k3: enable display driver"
dtb-warn-rv64
Desc: Checks for Device Tree warnings/errors
Duration: 78.90 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 17: "[v2,17/17] riscv: defconfig: spacemit: k3: enable display driver"
header-inline
Desc: Detects static functions without inline keyword in header files
Duration: 0.22 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 17: "[v2,17/17] riscv: defconfig: spacemit: k3: enable display driver"
kdoc
Desc: Detects for kdoc errors
Duration: 0.72 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 17: "[v2,17/17] riscv: defconfig: spacemit: k3: enable display driver"
module-param
Desc: Detect module_param changes
Duration: 0.23 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 17: "[v2,17/17] riscv: defconfig: spacemit: k3: enable display driver"
verify-fixes
Desc: Verifies that the Fixes: tags exist
Duration: 0.21 seconds
Result: PASS

@linux-riscv-bot

Copy link
Copy Markdown
Author

Patch 17: "[v2,17/17] riscv: defconfig: spacemit: k3: enable display driver"
verify-signedoff
Desc: Verifies that Signed-off-by: tags are correct
Duration: 0.25 seconds
Result: PASS

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants