On 11/02/2022 20:27, alyssa.rosenzweig@xxxxxxxxxxxxx wrote: > From: Alyssa Rosenzweig <alyssa.rosenzweig@xxxxxxxxxxxxx> > > 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; ----8<---- Steve > --- > drivers/gpu/drm/panfrost/panfrost_features.h | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpu/drm/panfrost/panfrost_features.h b/drivers/gpu/drm/panfrost/panfrost_features.h > index 36fadcf9634e..1a8bdebc86a3 100644 > --- a/drivers/gpu/drm/panfrost/panfrost_features.h > +++ b/drivers/gpu/drm/panfrost/panfrost_features.h > @@ -21,6 +21,7 @@ enum panfrost_hw_feature { > HW_FEATURE_TLS_HASHING, > HW_FEATURE_THREAD_GROUP_SPLIT, > HW_FEATURE_IDVS_GROUP_SIZE, > + HW_FEATURE_CLEAN_ONLY_SAFE, > HW_FEATURE_3BIT_EXT_RW_L2_MMU_CONFIG, > }; >