[Intel-gfx] [PATCH] drm/i915/pxp: don't start pxp without mei_pxp bind
Juston Li
justonli at google.com
Tue Aug 9 23:20:20 UTC 2022
On Tue, Aug 9, 2022 at 4:10 PM Ceraolo Spurio, Daniele
<daniele.ceraolospurio at intel.com> wrote:
>
>
>
> On 8/9/2022 3:57 PM, Juston Li wrote:
> > pxp will not start correctly until after mei_pxp bind completes and
> > intel_pxp_init_hw() is called.
> >
> > Signed-off-by: Juston Li <justonli at google.com>
> > ---
> > drivers/gpu/drm/i915/pxp/intel_pxp.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp.c b/drivers/gpu/drm/i915/pxp/intel_pxp.c
> > index 15311eaed848..3ef9e4e1870b 100644
> > --- a/drivers/gpu/drm/i915/pxp/intel_pxp.c
> > +++ b/drivers/gpu/drm/i915/pxp/intel_pxp.c
> > @@ -184,7 +184,7 @@ int intel_pxp_start(struct intel_pxp *pxp)
> > {
> > int ret = 0;
> >
> > - if (!intel_pxp_is_enabled(pxp))
> > + if (!intel_pxp_is_enabled(pxp) || !pxp->pxp_component_added)
>
> pxp_component_added being true only indicates that we've called
> component_add and not if the component is currently bound. For checking
> the current state of the component you can look at the
> pxp->pxp_component pointer, which is set/cleared on component
> bind/unbind. Note that pxp_component has to be accessed under
> pxp->tee_mutex.
>
> Are you actually seeing a scenario where the user manages to submit
> before the bind is complete? the bind is async to i915, but I've always
> seen it complete before control was given to the user to start submitting.
>
> Daniele
Opps! I made a typo sending it out. Indeed when I tested it was with
pxp->component_add.
I did not have pxp->tee_mutex though so I'll add that too.
We moved initialization earlier so it does try to call pxp_start() before mei
finishes binding.
Thanks
Juston
>
> > return -ENODEV;
> >
> > mutex_lock(&pxp->arb_mutex);
>
More information about the Intel-gfx
mailing list