On Fri, 11 Sep 2026 13:40:10 +0200
Ketil Johnsen <[email protected]> wrote:
> +
> +static int
> +tick_ctx_schedule_group(struct panthor_scheduler *sched,
> + struct panthor_csg_slots_upd_ctx *upd_ctx,
> + struct panthor_group *group,
> + int csg_id, int csg_prio)
> +{
> + struct panthor_device *ptdev = sched->ptdev;
> + struct panthor_fw_csg_iface *csg_iface =
> + panthor_fw_get_csg_iface(ptdev, csg_id);
> + int ret;
> +
> + ret = group_bind_locked(group, csg_id);
> + if (ret)
> + return ret;
> +
> + csg_slot_prog_locked(ptdev, csg_id, csg_prio);
Since we're there, let's check the value returned by
csg_slot_prog_locked() too.
> +
> + csgs_upd_ctx_queue_reqs(ptdev, upd_ctx, csg_id,
> + group->state == PANTHOR_CS_GROUP_SUSPENDED ?
> + CSG_STATE_RESUME : CSG_STATE_START,
> + CSG_STATE_MASK);
> + csgs_upd_ctx_queue_reqs(ptdev, upd_ctx, csg_id,
> + csg_iface->output->ack ^ CSG_ENDPOINT_CONFIG,
> + CSG_ENDPOINT_CONFIG);
> +
> + return 0;
> +}