On Fri, Jul 12, 2024 at 05:32:34PM GMT, 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 as a master binds
> those unit drivers as components.  While at it, the pixel engine
> driver is a component to be bound with the upcoming DRM driver.

Same question / comment: create subnodes directly, without going
through the subdevices. A lot of small functions that would benefit
being inlined.

> +static int dc_cf_bind(struct device *dev, struct device *master, void *data)
> +{
> +     struct platform_device *pdev = to_platform_device(dev);
> +     struct dc_drm_device *dc_drm = data;
> +     struct dc_pe *pe = dc_drm->pe;
> +     struct dc_cf_priv *priv;
> +     int id;
> +
> +     priv = drmm_kzalloc(&dc_drm->base, sizeof(*priv), GFP_KERNEL);
> +     if (!priv)
> +             return -ENOMEM;
> +
> +     priv->reg_cfg = devm_platform_ioremap_resource_byname(pdev, "cfg");
> +     if (IS_ERR(priv->reg_cfg))
> +             return PTR_ERR(priv->reg_cfg);
> +
> +     id = of_alias_get_id(dev->of_node, "dc0-constframe");

Is it documented? Acked?

> +     if (id < 0) {
> +             dev_err(dev, "failed to get alias id: %d\n", id);
> +             return id;
> +     }
> +

-- 
With best wishes
Dmitry

Reply via email to