lkml.org 
[lkml]   [2021]   [Oct]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 02/17] media: atomisp: pci: fix punit_ddr_dvfs_enable() argument for mrfld_power up case
    Date
    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@gmail.com>
    ---
    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 */
    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
    \
     
     \ /
      Last update: 2021-10-17 18:21    [W:4.167 / U:0.152 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site