Re: [PATCH v7 22/24] drm: rockchip: Add VOP2 driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Daniel:

On 3/7/22 21:09, Daniel Stone wrote:
Hi Andy,

On Mon, 7 Mar 2022 at 12:18, Andy Yan <andy.yan@xxxxxxxxxxxxxx> wrote:
On 2/25/22 15:51, Sascha Hauer wrote:
The VOP2 unit is found on Rockchip SoCs beginning with rk3566/rk3568.
It replaces the VOP unit found in the older Rockchip SoCs.

This driver has been derived from the downstream Rockchip Kernel and
heavily modified:

- All nonstandard DRM properties have been removed
- dropped struct vop2_plane_state and pass around less data between
    functions
- Dropped all DRM_FORMAT_* not known on upstream
- rework register access to get rid of excessively used macros
- Drop all waiting for framesyncs

The driver is tested with HDMI and MIPI-DSI display on a RK3568-EVB
board. Overlay support is tested with the modetest utility. AFBC support
on the cluster windows is tested with weston-simple-dmabuf-egl on
weston using the (yet to be upstreamed) panfrost driver support.
When run a weston 10.0.0:

   # export XDG_RUNTIME_DIR=/tmp
   # weston --backend=drm-backend.so --use-pixma --tty=2
--continue=without-input

I got the following error:

drm_atomic_check_only [PLANE:31:Smart0-win0] CRTC set but no FB
Can you please start Weston with --logger-scopes=log,drm-backend and
attach the output?

Please see the weston ouput here[0]


This failed is from   drm_atom_plane_check: both CRTC and FB must be set or neither.

static int drm_atomic_plane_check(const struct drm_plane_state *old_plane_state,                                   const struct drm_plane_state *new_plane_state)
{
        struct drm_plane *plane = new_plane_state->plane;
        struct drm_crtc *crtc = new_plane_state->crtc;
        const struct drm_framebuffer *fb = new_plane_state->fb;
        unsigned int fb_width, fb_height;
        struct drm_mode_rect *clips;
        uint32_t num_clips;
        int ret;

        /* either *both* CRTC and FB must be set, or neither */
        if (crtc && !fb) {
                drm_dbg_atomic(plane->dev, "[PLANE:%d:%s] CRTC set but no FB\n",
                               plane->base.id, plane->name);
                return -EINVAL;
        } else if (fb && !crtc) {
                drm_dbg_atomic(plane->dev, "[PLANE:%d:%s] FB set but no CRTC\n",
                               plane->base.id, plane->name);
                return -EINVAL;
        }

[0]https://pastebin.com/mGXKqD2S

Cheers,
Daniel



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux