On Mon, Oct 18, 2021 at 01:19:42AM +0900, Tsuchiya Yuto wrote: > When comparing with intel-aero atomisp [1], it looks like > punit_ddr_dvfs_enable() should take `false` as an argument on mrfld_power > up case. > > Code from the intel-aero kernel [1]: > > int atomisp_mrfld_power_down(struct atomisp_device *isp) > { > [...] > /*WA:Enable DVFS*/ > if (IS_CHT) > punit_ddr_dvfs_enable(true); > > int atomisp_mrfld_power_up(struct atomisp_device *isp) > { > [...] > /*WA for PUNIT, if DVFS enabled, ISP timeout observed*/ > if (IS_CHT) > punit_ddr_dvfs_enable(false); > > This patch fixes the inverted argument as per the intel-aero code, as > well as its comment. While here, fix space issues for comments in > atomisp_mrfld_power(). > > Note that it does not seem to be possible to unify the up/down cases for > punit_ddr_dvfs_enable(), i.e., we can't do something like the following: > > if (IS_CHT) > punit_ddr_dvfs_enable(!enable); > > because according to the intel-aero code [1], the DVFS is disabled > before "writing 0x0 to ISPSSPM0 bit[1:0]" and the DVFS is enabled after > "writing 0x3 to ISPSSPM0 bit[1:0]". > > [1] https://github.com/intel-aero/linux-kernel/blob/a1b673258feb915268377275130c5c5df0eafc82/drivers/media/pci/atomisp/atomisp_driver/atomisp_v4l2.c#L431-L514 > > Fixes: 0f441fd70b1e ("media: atomisp: simplify the power down/up code") > Signed-off-by: Tsuchiya Yuto <kitakar@xxxxxxxxx> > --- > drivers/staging/media/atomisp/pci/atomisp_v4l2.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/staging/media/atomisp/pci/atomisp_v4l2.c b/drivers/staging/media/atomisp/pci/atomisp_v4l2.c > index 0511c454e769..f5362554638e 100644 > --- a/drivers/staging/media/atomisp/pci/atomisp_v4l2.c > +++ b/drivers/staging/media/atomisp/pci/atomisp_v4l2.c > @@ -711,15 +711,15 @@ static int atomisp_mrfld_power(struct atomisp_device *isp, bool enable) > > dev_dbg(isp->dev, "IUNIT power-%s.\n", enable ? "on" : "off"); > > - /*WA:Enable DVFS*/ > + /* WA for PUNIT, if DVFS enabled, ISP timeout observed */ P-Unit > if (IS_CHT && enable) > - punit_ddr_dvfs_enable(true); > + punit_ddr_dvfs_enable(false); > > /* > * FIXME:WA for ECS28A, with this sleep, CTS > * android.hardware.camera2.cts.CameraDeviceTest#testCameraDeviceAbort > * PASS, no impact on other platforms > - */ > + */ > if (IS_BYT && enable) > msleep(10); > > @@ -727,7 +727,7 @@ static int atomisp_mrfld_power(struct atomisp_device *isp, bool enable) > iosf_mbi_modify(BT_MBI_UNIT_PMC, MBI_REG_READ, MRFLD_ISPSSPM0, > val, MRFLD_ISPSSPM0_ISPSSC_MASK); > > - /*WA:Enable DVFS*/ > + /* WA:Enable DVFS */ > if (IS_CHT && !enable) > punit_ddr_dvfs_enable(true); > > -- > 2.33.1 > > -- With Best Regards, Andy Shevchenko