On Mon, Dec 30, 2024 at 10:11:58AM +0800, Liu Ying wrote: > i.MX8qxp Display Controller pixel engine consists of all processing > units that operate in the AXI bus clock domain. Add drivers for > ConstFrame, ExtDst, FetchLayer, FetchWarp and LayerBlend units, as > well as a pixel engine driver, so that two displays with primary > planes can be supported. The pixel engine driver and those unit > drivers are components to be aggregated by a master registered in > the upcoming DRM driver. > > Reviewed-by: Maxime Ripard <mripard@xxxxxxxxxx> > Signed-off-by: Liu Ying <victor.liu@xxxxxxx> > --- > v8: > * Get CF/ED/FL/FW/LB device instance numbers through register start addresses > of the devices, instead of compatible strings. (Dmitry) > * s/shdld/shdload/ for ED IRQs. (Dmitry) > * Add dc_pe_post_bind(), to avoid dependency on the component helper's way of > implementing component binding order. (Dmitry) > * Add dev_warn() to dc_lb_pec_dynamic_{prim,sec}_sel(). (Dmitry) > * Drop lb_links[] and dc_fetchunit_all_fracs[] arrays. (Dmitry) > > v7: > * Add kernel doc for struct dc_drm_device. (Dmitry) > * Fix regmap_config definitions by correcting name field, correcting read > ranges and setting max_register field. > * Get instance numbers from device data(compatible strings) instead of OF > aliases. > * Collect Maxime's R-b tag. > * Trivial tweaks. > > v6: > * Fix build warning by expanding sizeof(fu->name) from 13 to 21. > (kernel test robot) > > v5: > * Replace .remove_new with .remove in dc-{cf,de,fl,fw,lb,pe}.c. (Uwe) > * Fix commit message to state that pixel engine driver is a component driver > instead of a master/aggregate driver. > > v4: > * Use regmap to define register map for all registers. (Dmitry) > * Use regmap APIs to access registers. (Dmitry) > * Inline some small functions. (Dmitry) > * Move dc_lb_blendcontrol() function call from KMS routine to initialization > stage. (Dmitry) > * Use devm_kzalloc() to drmm_kzalloc() to allocate dc_* data strutures. > * Drop unnecessary private struct dc_*_priv. > * Set suppress_bind_attrs driver flag to true to avoid unnecessary sys > interfaces to bind/unbind the drivers. > * Make some fetch unit operations be aware of fractional fetch unit index(0-7). > > v3: > * No change. > > v2: > * Use OF alias id to get instance id. > > drivers/gpu/drm/imx/dc/Makefile | 3 +- > drivers/gpu/drm/imx/dc/dc-cf.c | 172 +++++++++++++++++ > drivers/gpu/drm/imx/dc/dc-drv.c | 6 + > drivers/gpu/drm/imx/dc/dc-drv.h | 22 +++ > drivers/gpu/drm/imx/dc/dc-ed.c | 288 ++++++++++++++++++++++++++++ > drivers/gpu/drm/imx/dc/dc-fl.c | 185 ++++++++++++++++++ > drivers/gpu/drm/imx/dc/dc-fu.c | 258 +++++++++++++++++++++++++ > drivers/gpu/drm/imx/dc/dc-fu.h | 129 +++++++++++++ > drivers/gpu/drm/imx/dc/dc-fw.c | 222 ++++++++++++++++++++++ > drivers/gpu/drm/imx/dc/dc-lb.c | 325 ++++++++++++++++++++++++++++++++ > drivers/gpu/drm/imx/dc/dc-pe.c | 158 ++++++++++++++++ > drivers/gpu/drm/imx/dc/dc-pe.h | 101 ++++++++++ > 12 files changed, 1868 insertions(+), 1 deletion(-) > create mode 100644 drivers/gpu/drm/imx/dc/dc-cf.c > create mode 100644 drivers/gpu/drm/imx/dc/dc-ed.c > create mode 100644 drivers/gpu/drm/imx/dc/dc-fl.c > create mode 100644 drivers/gpu/drm/imx/dc/dc-fu.c > create mode 100644 drivers/gpu/drm/imx/dc/dc-fu.h > create mode 100644 drivers/gpu/drm/imx/dc/dc-fw.c > create mode 100644 drivers/gpu/drm/imx/dc/dc-lb.c > create mode 100644 drivers/gpu/drm/imx/dc/dc-pe.c > create mode 100644 drivers/gpu/drm/imx/dc/dc-pe.h > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> -- With best wishes Dmitry