[RFC PATCH 3/8] drm: verisilicon: add a driver for Verisilicon display controllers
Icenowy Zheng
uwu at icenowy.me
Mon Aug 18 00:08:23 PDT 2025
在 2025-08-17星期日的 11:39 -0700,Drew Fustini写道:
> On Fri, Aug 15, 2025 at 12:40:43AM +0800, Icenowy Zheng wrote:
> > This is a from-scratch driver targeting Verisilicon DC-series
> > display
> > controllers, which feature self-identification functionality like
> > their
> > GC-series GPUs.
> >
> > Only DC8200 is being supported now, and only the main framebuffer
> > is set
> > up (as the DRM primary plane). Support for more DC models and more
> > features is my further targets.
> >
> > As the display controller is delivered to SoC vendors as a whole
> > part,
> > this driver does not use component framework and extra bridges
> > inside a
> > SoC is expected to be implemented as dedicated bridges (this driver
> > properly supports bridge chaining).
> >
> > Signed-off-by: Icenowy Zheng <uwu at icenowy.me>
>
> Thanks for working on this!
>
> [snip]
> > diff --git a/drivers/gpu/drm/verisilicon/vs_primary_plane.c
> > b/drivers/gpu/drm/verisilicon/vs_primary_plane.c
> > new file mode 100644
> > index 0000000000000..25d6e01cc8b71
> > --- /dev/null
> > +++ b/drivers/gpu/drm/verisilicon/vs_primary_plane.c
> [snip]
> > +static void vs_primary_plane_atomic_update(struct drm_plane
> > *plane,
> > + struct drm_atomic_state
> > *atomic_state)
> > +{
> > + struct drm_plane_state *state =
> > drm_atomic_get_new_plane_state(atomic_state,
> > +
> > plane);
> > + struct drm_framebuffer *fb = state->fb;
> > + struct drm_crtc *crtc = state->crtc;
> > + struct drm_gem_dma_object *gem;
> > + struct vs_dc *dc;
> > + struct vs_crtc *vcrtc;
> > + struct vs_format fmt;
> > + unsigned int output, bpp;
> > + dma_addr_t dma_addr;
> > +
> > + if (!crtc)
> > + return;
> > +
> > + DRM_DEBUG_DRIVER("Updating output %d primary plane\n",
> > output);
>
> clang flagged this when building. I think this needs to be after the
> line below that assigns vcrtc->id to output.
Oops got silly here...
>
> > +
> > + vcrtc = drm_crtc_to_vs_crtc(crtc);
> > + output = vcrtc->id;
>
> Thanks,
> Drew
More information about the linux-riscv
mailing list