Yes. So the hw ip smu/gfx/sdma have no dependence. We can initialize gfx/sdma/smu or sdma/gfx/smu. In powerplay, if the fw has been loaded successfully, we will skip the fw loading. Rex > -----Original Message----- > From: Quan, Evan > Sent: Sunday, September 30, 2018 12:19 PM > To: Zhu, Rex <Rex.Zhu@xxxxxxx>; amd-gfx@xxxxxxxxxxxxxxxxxxxxx > Cc: Zhu, Rex <Rex.Zhu@xxxxxxx> > Subject: RE: [PATCH 3/4] drm/amdgpu: Add fw load in gfx_v8 and sdma_v3. > > Will the pp_funcs->load_firmware be called twice? > > Regards, > Evan > > -----Original Message----- > > From: amd-gfx <amd-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of Rex > > Zhu > > Sent: 2018年9月30日 0:19 > > To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx > > Cc: Zhu, Rex <Rex.Zhu@xxxxxxx> > > Subject: [PATCH 3/4] drm/amdgpu: Add fw load in gfx_v8 and sdma_v3. > > > > gfx and sdma can be initialized before smu. > > > > Signed-off-by: Rex Zhu <Rex.Zhu@xxxxxxx> > > --- > > drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 11 +++++++++++ > > drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 8 ++++++++ > > 2 files changed, 19 insertions(+) > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c > > b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c > > index 6b1954e..77e05c1 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c > > +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c > > @@ -4180,9 +4180,20 @@ static void gfx_v8_0_rlc_start(struct > > amdgpu_device *adev) > > > > static int gfx_v8_0_rlc_resume(struct amdgpu_device *adev) { > > + int r; > > + > > gfx_v8_0_rlc_stop(adev); > > gfx_v8_0_rlc_reset(adev); > > gfx_v8_0_init_pg(adev); > > + > > + if (adev->powerplay.pp_funcs->load_firmware) { > > + r = adev->powerplay.pp_funcs->load_firmware(adev- > > >powerplay.pp_handle); > > + if (r) { > > + pr_err("firmware loading failed\n"); > > + return r; > > + } > > + } > > + > > gfx_v8_0_rlc_start(adev); > > > > return 0; > > diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c > > b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c > > index 6fb3eda..0bdde7f 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c > > +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c > > @@ -788,6 +788,14 @@ static int sdma_v3_0_start(struct amdgpu_device > > *adev) { > > int r; > > > > + if (adev->powerplay.pp_funcs->load_firmware) { > > + r = adev->powerplay.pp_funcs->load_firmware(adev- > > >powerplay.pp_handle); > > + if (r) { > > + pr_err("firmware loading failed\n"); > > + return r; > > + } > > + } > > + > > /* disable sdma engine before programing it */ > > sdma_v3_0_ctx_switch_enable(adev, false); > > sdma_v3_0_enable(adev, false); > > -- > > 1.9.1 > > > > _______________________________________________ > > amd-gfx mailing list > > amd-gfx@xxxxxxxxxxxxxxxxxxxxx > > https://lists.freedesktop.org/mailman/listinfo/amd-gfx _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx