On 1/2/2023 3:32 PM, Konrad Dybcio wrote: > So far the adreno quirks have all been assigned with an OR operator, > which is problematic, because they were assigned consecutive integer > values, which makes checking them with an AND operator kind of no bueno.. > > Switch to using BIT(n) so that only the quirks that the programmer chose > are taken into account when evaluating info->quirks & ADRENO_QUIRK_... > > Fixes: 370063ee427a ("drm/msm/adreno: Add A540 support") > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> > Reviewed-by: Marijn Suijten <marijn.suijten@xxxxxxxxxxxxxx> > Reviewed-by: Rob Clark <robdclark@xxxxxxxxx> > Signed-off-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxx> > --- > v1 -> v2: > - pick up tags > - correct the Fixes: tag > > drivers/gpu/drm/msm/adreno/adreno_gpu.h | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/drm/msm/adreno/adreno_gpu.h > index c85857c0a228..5eb254c9832a 100644 > --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h > +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h > @@ -29,11 +29,9 @@ enum { > ADRENO_FW_MAX, > }; > > -enum adreno_quirks { > - ADRENO_QUIRK_TWO_PASS_USE_WFI = 1, > - ADRENO_QUIRK_FAULT_DETECT_MASK = 2, > - ADRENO_QUIRK_LMLOADKILL_DISABLE = 3, > -}; > +#define ADRENO_QUIRK_TWO_PASS_USE_WFI BIT(0) > +#define ADRENO_QUIRK_FAULT_DETECT_MASK BIT(1) > +#define ADRENO_QUIRK_LMLOADKILL_DISABLE BIT(2) > > struct adreno_rev { > uint8_t core; > @@ -65,7 +63,7 @@ struct adreno_info { > const char *name; > const char *fw[ADRENO_FW_MAX]; > uint32_t gmem; > - enum adreno_quirks quirks; > + u64 quirks; > struct msm_gpu *(*init)(struct drm_device *dev); > const char *zapfw; > u32 inactive_period; Reviewed-by: Akhil P Oommen <quic_akhilpo@xxxxxxxxxxx> -Akhil.