Patch "media: atomisp: fix ifdefs in sh_css.c" has been added to the 5.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    media: atomisp: fix ifdefs in sh_css.c

to the 5.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     media-atomisp-fix-ifdefs-in-sh_css.c.patch
and it can be found in the queue-5.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 30a69a770f412a18bf64f2ebd27780b719a9c85c
Author: Tsuchiya Yuto <kitakar@xxxxxxxxx>
Date:   Mon Oct 18 01:19:47 2021 +0900

    media: atomisp: fix ifdefs in sh_css.c
    
    [ 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@xxxxxxxxx>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/staging/media/atomisp/pci/sh_css.c b/drivers/staging/media/atomisp/pci/sh_css.c
index ddee04c8248d0..54a18921fbd15 100644
--- a/drivers/staging/media/atomisp/pci/sh_css.c
+++ b/drivers/staging/media/atomisp/pci/sh_css.c
@@ -527,6 +527,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)
@@ -579,12 +580,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");
@@ -1019,16 +1016,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;
 }
@@ -1451,7 +1446,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;
 	}



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux