On 10/24/26 1:19 AM, Dmitry Baryshkov wrote: > When dpu_kms_hw_init() fails it calls _dpu_kms_hw_destroy(), the teardown > of a fully initialised KMS, whatever step it failed at. > > Undo only the steps which have completed, in the reverse order, as the > kernel convention wants. > > The hw_mdp, hw_vbif and hw_intr blocks are allocated with drmm and go > away with the DRM device, while dpu_kms stays around for the next bind > attempt, so clear the pointers to them as _dpu_kms_hw_destroy() did. > Otherwise dpu_runtime_resume() of the next bind attempt passes the stale > hw_vbif to dpu_vbif_init_memtypes() before dpu_kms_hw_init() sets it. > > Assisted-by: LLM > Signed-off-by: Dmitry Baryshkov <[email protected]> > ---
LLM is slightly curious about not clearing dpu_kms->catalog but I think it's fine Acked-by: Konrad Dybcio <[email protected]> Konrad
