lkml.org 
[lkml]   [2022]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.16 0126/1039] media: atomisp: fix ifdefs in sh_css.c
    Date
    From: Tsuchiya Yuto <kitakar@gmail.com>

    [ Upstream commit 5a1b2725558f8a3b4cbf0504f53cffae8e163034 ]

    ## `if (pipe->stream->config.mode == IA_CSS_INPUT_MODE_TPG) {` case

    The intel-aero atomisp has `#if defined(IS_ISP_2400_SYSTEM)` [1]. It is
    to be defined in the following two places [2]:

    - css/hive_isp_css_common/system_global.h
    - css/css_2401_csi2p_system/system_global.h

    and the former file is to be included on ISP2400 devices, too. So, it
    is to be defined for both ISP2400 and ISP2401 devices.

    Because the upstreamed atomisp driver now supports only ISP2400 and
    ISP2401, just remove the ISP version test again. This matches the other
    upstream commits like 3c0538fbad9f ("media: atomisp: get rid of most
    checks for ISP2401 version").

    While here, moved the comment for define GP_ISEL_TPG_MODE to the
    appropriate place.

    [1] https://github.com/intel-aero/linux-kernel/blob/a1b673258feb915268377275130c5c5df0eafc82/drivers/media/pci/atomisp/css/sh_css.c#L552-L558
    [2] https://github.com/intel-aero/linux-kernel/search?q=IS_ISP_2400_SYSTEM

    ## `isys_stream_descr->polling_mode` case

    This does not exist on the intel-aero atomisp. This is because it is
    based on css version irci_stable_candrpv_0415_20150521_0458.

    On the other hand, the upstreamed atomisp is based on the following css
    version depending on the ISP version using ifdefs:

    - ISP2400: irci_stable_candrpv_0415_20150521_0458
    - ISP2401: irci_master_20150911_0724

    The `isys_stream_descr->polling_mode` usage was added on updating css
    version to irci_master_20150701_0213 [3].

    So, it is not a ISP version specific thing, but css version specific
    thing. Because the upstreamed atomisp driver uses irci_master_20150911_0724
    for ISP2401, re-add the ISP version check for now.

    I say "for now" because ISP2401 should eventually use the same css
    version with ISP2400 (i.e., irci_stable_candrpv_0415_20150521_0458)

    [3] https://raw.githubusercontent.com/intel/ProductionKernelQuilts/cht-m1stable-2016_ww31/uefi/cht-m1stable/patches/cam-0439-atomisp2-css2401-and-2401_legacy-irci_master_2015070.patch
    ("atomisp2: css2401 and 2401_legacy-irci_master_20150701_0213")
    Link to Intel's Android kernel patch.

    ## `coord = &me->config.internal_frame_origin_bqs_on_sctbl;` case

    it was added on commit 4f744a573db3 ("media: atomisp: make
    sh_css_sp_init_pipeline() ISP version independent") for ISP2401. Because
    the upstreamed atomisp for the ISP2401 part is based on
    irci_master_20150911_0724, hence the difference.

    Because the upstreamed atomisp driver uses irci_master_20150911_0724
    for ISP2401, revert the test back to `if (IS_ISP2401)`.

    Fixes: 27333dadef57 ("media: atomisp: adjust some code at sh_css that could be broken")
    Signed-off-by: Tsuchiya Yuto <kitakar@gmail.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/staging/media/atomisp/pci/sh_css.c | 27 +++++++++-------------
    1 file changed, 11 insertions(+), 16 deletions(-)

    diff --git a/drivers/staging/media/atomisp/pci/sh_css.c b/drivers/staging/media/atomisp/pci/sh_css.c
    index c4b35cbab3737..ba25d0da8b811 100644
    --- a/drivers/staging/media/atomisp/pci/sh_css.c
    +++ b/drivers/staging/media/atomisp/pci/sh_css.c
    @@ -522,6 +522,7 @@ ia_css_stream_input_format_bits_per_pixel(struct ia_css_stream *stream)
    return bpp;
    }

    +/* TODO: move define to proper file in tools */
    #define GP_ISEL_TPG_MODE 0x90058

    #if !defined(ISP2401)
    @@ -573,12 +574,8 @@ sh_css_config_input_network(struct ia_css_stream *stream)
    vblank_cycles = vblank_lines * (width + hblank_cycles);
    sh_css_sp_configure_sync_gen(width, height, hblank_cycles,
    vblank_cycles);
    - if (!IS_ISP2401) {
    - if (pipe->stream->config.mode == IA_CSS_INPUT_MODE_TPG) {
    - /* TODO: move define to proper file in tools */
    - ia_css_device_store_uint32(GP_ISEL_TPG_MODE, 0);
    - }
    - }
    + if (pipe->stream->config.mode == IA_CSS_INPUT_MODE_TPG)
    + ia_css_device_store_uint32(GP_ISEL_TPG_MODE, 0);
    }
    ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
    "sh_css_config_input_network() leave:\n");
    @@ -1009,16 +1006,14 @@ static bool sh_css_translate_stream_cfg_to_isys_stream_descr(
    * ia_css_isys_stream_capture_indication() instead of
    * ia_css_pipeline_sp_wait_for_isys_stream_N() as isp processing of
    * capture takes longer than getting an ISYS frame
    - *
    - * Only 2401 relevant ??
    */
    -#if 0 // FIXME: NOT USED on Yocto Aero
    - isys_stream_descr->polling_mode
    - = early_polling ? INPUT_SYSTEM_POLL_ON_CAPTURE_REQUEST
    - : INPUT_SYSTEM_POLL_ON_WAIT_FOR_FRAME;
    - ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
    - "sh_css_translate_stream_cfg_to_isys_stream_descr() leave:\n");
    -#endif
    + if (IS_ISP2401) {
    + isys_stream_descr->polling_mode
    + = early_polling ? INPUT_SYSTEM_POLL_ON_CAPTURE_REQUEST
    + : INPUT_SYSTEM_POLL_ON_WAIT_FOR_FRAME;
    + ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
    + "sh_css_translate_stream_cfg_to_isys_stream_descr() leave:\n");
    + }

    return rc;
    }
    @@ -1433,7 +1428,7 @@ static void start_pipe(

    assert(me); /* all callers are in this file and call with non null argument */

    - if (!IS_ISP2401) {
    + if (IS_ISP2401) {
    coord = &me->config.internal_frame_origin_bqs_on_sctbl;
    params = me->stream->isp_params_configs;
    }
    --
    2.34.1


    \
     
     \ /
      Last update: 2022-01-25 01:11    [W:2.897 / U:0.680 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site