[PATCH v2 20/22] media: rockchip: rga: disable multi-core support
Nicolas Dufresne
nicolas at ndufresne.ca
Wed Dec 24 08:02:25 PST 2025
Hi,
Le mercredi 03 décembre 2025 à 16:52 +0100, Sven Püschel a écrit :
> Disable multi-core support in preparation of the RGA3 addition. The
> RK3588 SoC features two equal RGA3 cores. This allows scheduling of the
> work between both cores, which is not yet implemented. Until it is
> implemented avoid exposing both cores as independent video devices to
> prevent an ABI breakage when multi-core support is added.
Please add a Link: and reference to the Hantro patch from which is code is from.
>
> Signed-off-by: Sven Püschel <s.pueschel at pengutronix.de>
Reviewed-by: Nicolas Dufresne <nicolas.dufresne at collabora.com>
> ---
> drivers/media/platform/rockchip/rga/rga.c | 28 ++++++++++++++++++++++++++++
> 1 file changed, 28 insertions(+)
>
> diff --git a/drivers/media/platform/rockchip/rga/rga.c b/drivers/media/platform/rockchip/rga/rga.c
> index 3958e71b8987d..65686228b7300 100644
> --- a/drivers/media/platform/rockchip/rga/rga.c
> +++ b/drivers/media/platform/rockchip/rga/rga.c
> @@ -660,6 +660,30 @@ static int rga_parse_dt(struct rockchip_rga *rga)
> return 0;
> }
>
> +static int rga_disable_multicore(struct device *dev)
> +{
> + const char *compatible;
> + struct device_node *node;
> + int ret;
> +
> + /* Intentionally ignores the fallback strings */
> + ret = of_property_read_string(dev->of_node, "compatible", &compatible);
> + if (ret)
> + return ret;
> +
> + /* first compatible node found from the root node is considered the main core */
> + node = of_find_compatible_node(NULL, NULL, compatible);
> + if (!node)
> + return -EINVAL; /* broken DT? */
> +
> + if (dev->of_node != node) {
> + dev_info(dev, "missing multi-core support, ignoring this instance\n");
> + return -ENODEV;
> + }
> +
> + return 0;
> +}
> +
> static int rga_probe(struct platform_device *pdev)
> {
> struct rockchip_rga *rga;
> @@ -670,6 +694,10 @@ static int rga_probe(struct platform_device *pdev)
> if (!pdev->dev.of_node)
> return -ENODEV;
>
> + ret = rga_disable_multicore(&pdev->dev);
> + if (ret)
> + return ret;
> +
> rga = devm_kzalloc(&pdev->dev, sizeof(*rga), GFP_KERNEL);
> if (!rga)
> return -ENOMEM;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: This is a digitally signed message part
URL: <http://lists.infradead.org/pipermail/linux-rockchip/attachments/20251224/32a064bd/attachment.sig>
More information about the Linux-rockchip
mailing list