> > Add the HW_FEATURE_CLEAN_ONLY_SAFE bit based on kbase. When I actually > > tried to port the logic from kbase, trivial jobs raised Data Invalid > > Faults, so this may depend on other coherency details. It's still useful > > to have the bit to record the feature bit when adding new models. > > > > Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@xxxxxxxxxxxxx> > > Reviewed-by: Steven Price <steven.price@xxxxxxx> > > Sadly I don't have the hardware to try this out on, but it should be a > simple case of the below (untested): > > ----8<---- > diff --git a/drivers/gpu/drm/panfrost/panfrost_job.c b/drivers/gpu/drm/panfrost/panfrost_job.c > index 908d79520853..602e51c4966e 100644 > --- a/drivers/gpu/drm/panfrost/panfrost_job.c > +++ b/drivers/gpu/drm/panfrost/panfrost_job.c > @@ -212,9 +212,13 @@ static void panfrost_job_hw_submit(struct panfrost_job *job, int js) > * start */ > cfg |= JS_CONFIG_THREAD_PRI(8) | > JS_CONFIG_START_FLUSH_CLEAN_INVALIDATE | > - JS_CONFIG_END_FLUSH_CLEAN_INVALIDATE | > panfrost_get_job_chain_flag(job); > > + if (panfrost_has_hw_feature(pfdev, HW_FEATURE_CLEAN_ONLY_SAFE)) > + cfg |= JS_CONFIG_END_FLUSH_CLEAN; > + else > + cfg |= JS_CONFIG_END_FLUSH_CLEAN_INVALIDATE; > + > if (panfrost_has_hw_feature(pfdev, HW_FEATURE_FLUSH_REDUCTION)) > cfg |= JS_CONFIG_ENABLE_FLUSH_REDUCTION; Yes, this is the patch I typed out... causes DATA_INVALID_FAULTs for me with Mesa. Which makes me wonder if userspace needs to respect some extra rules for this to be safe.