Skip to main content
The IQ-9075 platform features a Qualcomm Adreno Display Processing Unit (DPU) providing hardware-accelerated image processing. The IQ9-EVK supports two simultaneous displays via dual DisplayPort outputs.

Display Capabilities

InterfaceCapability
DP03840 × 2160 at 60 fps, 30 bpp
DP13840 × 2160 at 60 fps, 30 bpp
ConcurrentDP0 as primary + DP1 as secondary, both at 3840 × 2160 @ 60 fps
Supported features:
  • Wayland and Weston with upstream protocol
  • Weston compositor with DRM backend
  • 2× DisplayPort with SST and MST support

Architecture

DPU Hardware

ComponentFunction
Bus InterfaceFetches data from memory
Source Surface ProcessingReads RGB/YUV surfaces; performs format conversion
BlendingBlends and mixes source surfaces
Destination Surface ProcessingConverts and adjusts data for panel characteristics
CompressionReduces bandwidth by sending compressed display buffers
Display InterfaceGenerates timings for connected display peripherals

Software Stack

ComponentDescription
Wayland SinkPlug-in communicating with Weston to render the display
WestonWayland compositor; handles composition and rendering
DRM BackendManages Adreno DPU hardware resources and composition strategy
libdrmLibrary providing DRM IOCTL APIs
DRM/KMS FrameworkKernel and userland interface for hardware features
Adreno DPU DriverManages all pixel data paths to panel interfaces

DisplayPort and DSI Interfaces

eDP Interface

The processor has four eDP interfaces. eDP0 and eDP1 are routed to connectors JEDP0 and JEDP1.

DSI Interface

The IQ-9075 supports two 4-lane MIPI-DSI with VESA DSC v1.2. The DSI0 interface uses an analog switch allowing access through both the JDISP LCD connector and the JEXP1 board-to-board expansion connector.

Setup

Connect DisplayPort

1

Connect primary display

Connect a DisplayPort cable to the eDP0 connector.
2

Connect secondary display (optional)

For dual display, connect a second DisplayPort cable to eDP1.
3

Power on

Power on the device. Weston launches automatically during boot and displays the flower pattern.

SSH Access

Default credentials: Username: ubuntu / Password: ubuntu

Testing and Verification

Run Weston EGL Client

weston-simple-egl
Expected output: A rotating triangle on the display at 60 fps.
300 frames in 5 seconds: 60.000000 fps
Press Ctrl+C to terminate.

GStreamer Video Playback

Ensure video files are at /etc/media on the device.
# H.264 playback
gst-launch-1.0 -v filesrc location=/etc/media/video.mp4 ! qtdemux ! queue ! \
  h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! \
  video/x-raw,format=NV12 ! waylandsink

# H.265/HEVC playback
gst-launch-1.0 -v filesrc location=/etc/media/video_hevc.mp4 ! qtdemux ! queue ! \
  h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! \
  video/x-raw,format=NV12 ! waylandsink

# With scaling
gst-launch-1.0 -v filesrc location=/etc/media/video.mp4 ! qtdemux ! queue ! \
  h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! \
  video/x-raw,width=1920,height=1080 ! waylandsink
Key pipeline components:
ComponentPurpose
capture-io-mode=4Allocates decoded frames as DMABUF (zero-copy to display)
output-io-mode=4Handles encoded bitstream buffers via DMABUF
format=NV12NV12 pixel format for hardware-accelerated path
waylandsinkRenders video to Wayland display

Debugging

Check DisplayPort Status

# Cable status
sudo cat /sys/class/drm/card0-DP-1/status   # eDP0
sudo cat /sys/class/drm/card0-DP-2/status   # eDP1

# Available modes (EDID)
sudo cat /sys/class/drm/card0-DP-1/modes

# Detailed DP info
sudo cat /sys/kernel/debug/dri/0/DP-1/dp_debug

Debug Filesystem

CommandPurpose
dmesg | grep -i displayDisplay-related kernel messages
dmesg | grep -i drmDRM subsystem messages
cat /sys/kernel/debug/dri/0/stateCurrent DRM state
cat /proc/interrupts | grep mdssDisplay interrupts

Troubleshooting

cat /sys/class/drm/card0-DP-1/status
sudo dmesg | grep -i "dp\|display\|drm"
  • Verify cable connection to eDP0 or eDP1
  • Check display power and input source selection
cat /sys/class/drm/card0-DP-1/modes
Verify the display supports the desired resolution.
journalctl -u weston
ls -l /dev/dri/card0
ls -l /dev/dri/
Manually launch Weston with debug output:
weston --idle-time=0 --continue-without-input --log=/home/ubuntu/weston.log
cat /sys/class/drm/card0-DP-1/status
cat /sys/class/drm/card0-DP-2/status
cat /sys/kernel/debug/dri/0/state
  • Verify both cables are connected to eDP0 and eDP1
  • Check Weston configuration for multi-display support
ps -A | grep weston
killall weston
sudo systemctl start weston-autostart
export XDG_RUNTIME_DIR=/run/user/$(id -u ubuntu)
export WAYLAND_DISPLAY=wayland-1

Resources