From patchwork Wed Mar 6 09:33:28 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changhuang Liang X-Patchwork-Id: 778447 Received: from CHN02-BJS-obe.outbound.protection.partner.outlook.cn (mail-bjschn02on2135.outbound.protection.partner.outlook.cn [139.219.17.135]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6572D328A0; Wed, 6 Mar 2024 09:33:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=139.219.17.135 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709717639; cv=fail; b=kC6ZfHy0uwIt69ZhRJuNASU5yzOMFjQbfuib+DqXhpCKOnPbh6+yQCsvVtxz/VOpgzklufymlBuvqv2fHrP6eRQ5Wl4UpSooLiQBu7aHXHNS0gJ6hkbp4ub1yWJweWJpQhj0OfYN7xKeNoPJ3Gmi3DN8qz4vIgQOYnJu/NGBvto= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709717639; c=relaxed/simple; bh=tOALpcc4YM8n/3py9YC53u/17iNhVUItYA+c3zRKdmA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=GSATFv+TycNaBXfn0d+Zfaqny23XeZhXi+J1vD8oK7VYVQ1TSTYNkA1IyKdHL9tekjeerzarLhoux+z9PoLmtc1d7q4gOd0HBp4AXLnWrWJwDRfKHB/QmisBXg4HC0kPZ3IkAwXso6GrjcnifNz+vm6EPSevMR2b0ucdu2xf2/s= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=starfivetech.com; spf=pass smtp.mailfrom=starfivetech.com; arc=fail smtp.client-ip=139.219.17.135 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=starfivetech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=starfivetech.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KIypIJqyHvuQfeIur6JUOMW5275WiRi5STtH/mBlgJC+mwLeVBmAQ3n5neNqi93tVPQH1GDp20Z7v1q6ghqo9spsyxikPwJm438vov+eK/+AOxxB6WMB/gTTa9ZN8zQeTvZWO0XWxuMnBwNtxqI3JsbWPVPx8Ws+xa60C2hZdNw4xH3Q3s5un8NBf1zFKgck8LhtyxWNqHENsdJir7P4Z8sSQ7uWuHQQVn7yHCOi25dBKQhfF2pia6bQnMn/tJu0L8SQBpuCMSlnk98dO+/IT/rhrkotEVlGKdpcJWVV5qsMORJOPNeEk+1DIf4ccfjlzRNMJ6ykran+QUfNY3VnaA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=4zYNQNZAC6tzfZZNanbbt2SZhYlFf0Mq2X72yc6nS5Y=; b=oMVxuUweIl+CMYsL//v28i8qEYTvGdhjG136LGF4W4BHt/lqHCD3/f2jIWWADHYWyLdboRP5Xm9NRrgY9czQ9TatDrgSJ9ah3AVK/d/qsqOeUzu0uAMRVaZsM5ApvM16TqIF0iZX5sAFEqVs+hzS3k2fNhZCjzTO/xrHzPnWpzURPqMK5ls+7ghRGlWbp1Iml9z1wlgDDnxNf777bg4QxychiRirl5NkYkxBmtgGV/gHj4PHW6rrVvECNy01vSxLFuCtnxagWtHxuywhkW9CxCF5GCTnDzQAMH6BR5lK9Vbir4G152/vFF50QJ6t8nqeWtcGNkbrw/4fxGD/dBFlmg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=starfivetech.com; dmarc=pass action=none header.from=starfivetech.com; dkim=pass header.d=starfivetech.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=starfivetech.com; Received: from SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:25::10) by SHXPR01MB0765.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:26::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.51; Wed, 6 Mar 2024 09:33:43 +0000 Received: from SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn ([fe80::b0af:4c9d:2058:a344]) by SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn ([fe80::b0af:4c9d:2058:a344%6]) with mapi id 15.20.7249.041; Wed, 6 Mar 2024 09:33:43 +0000 From: Changhuang Liang To: Mauro Carvalho Chehab , Greg Kroah-Hartman Cc: Hans Verkuil , Laurent Pinchart , Jack Zhu , Changhuang Liang , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev Subject: [PATCH v1 1/7] staging: media: starfive: Replaced current_fmt with get from sd_state Date: Wed, 6 Mar 2024 01:33:28 -0800 Message-Id: <20240306093334.9321-2-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240306093334.9321-1-changhuang.liang@starfivetech.com> References: <20240306093334.9321-1-changhuang.liang@starfivetech.com> X-ClientProxiedBy: ZQ0PR01CA0010.CHNPR01.prod.partner.outlook.cn (2406:e500:c550:5::17) To SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:25::10) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SHXPR01MB0671:EE_|SHXPR01MB0765:EE_ X-MS-Office365-Filtering-Correlation-Id: d83a1810-153a-4557-2430-08dc3dc083d5 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6Dwx1GrF8AFWVHNEtedA+EYpZM9KYsTqZhjKZaPZnxBl2ycA3j1N+YtGHil/YODhh0InQrXtRUVcTYT/L0/FLb6LEMWZt0owLlQWYoclFS/8mv5Isxwrb6erREl05O9VTUXuTXCwNErVwZiiMKxHX1QJbIflfBX1WykSdeNnOyb3r7Hk6wQkrvjQZbBtPI43PnNUrIchCe4El48qooWvS1AZJtffZ1RtctBfG8Cz2EGJ2uPmsQAtIBjlqgVGlf5d6PoaF9hH64DYbOZBu6lN4g6n52sohUUrQ0BkivCxk9lUG41PCns+SgubfaFvmF8SYSLH6ZTGRjFDTTzlfpZ2CQFlC+LE9HDQhpoZRL3e1RScFlPiN9ejYQFFdHIug30wBW8YqTcQdSNiXg3gxb0AjVGcjfWJGMaBtqfxbRqnbkFGJxEg0bjYeazXyrFMf8RSxZOlLVrawVMbsyVtg3viyz3oOA2yiKS+XgQXBuWAT2Po8fkhRq4aY+Zb7oxYrCD2NJx+fAGd4yjWsc+8W7XnZ6Rmi98LtJQbpJ5fBjsEfDE3/6jVnGHnC797mm6xQAQpyQ8J3WPpTfd1N3Vw1avk24X2dzxtcoVrMc7UCNHs8vV5okmU2Uy4FjIuAIMI6428 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn; PTR:; CAT:NONE; SFS:(13230031)(41320700004)(38350700005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: WpCA37aLR4SJcS3gCCw3621wTDsVVFpSwt/UQX1kWlvIooNWMOWrVSTCpZN5CZDIHZVqGR70B+CyTYq3D49XVcvZy0oTlriDw/CsnrbCD/fp2cPovWUMPDzQvR9z8ZYbzXtN/X1hNXD65ltSVhYcBXhWfJKsEWLXun5T1UlvmvyyniZ1HJBCgCel6G3ihmB1cGOzP/AHVx+ukwiTMGVnqz8+ip5G3hB5jdUKvTt4RApKwqjeRZqhv7r/ZywWm5BGmub5dIZU+VjmyNMyRhM+pCDnHrOU0QqdnOYEK+RhEF7hIlnHqWocaesJW/Win+yabANvZdZB21BWsGAgDJrExX6rOnLgDHS+f/YwCUn3LKCuzhi2uGEvXzvzO8CUOHLuWVMaWMxN96cdDPOURQnllLIm7bLjDKnoGu6s99sDZ8CvzqIIOQb2g2boSFtUh+9Upe8vAVEFVCqefBnK6vxMW3Pqgn53rlSIyiTOVgeXWz1FuzunIYtD935BqL2MTA1ZLy+66FywShDd0wG+bVdfEt4d8kXpqAUzV+Sfsm6E8/6RwrJQMSu7FuEJE7r4ATqCSlyUgclWMZc9NBdb4Cphtkmv5AAnOHKXdo5bRHL4ifYp9F52EE/kYKFsgfM+k5CVNWCxWySGQeohJXjGVuUNtOPWLZt+kqRsSuQ3GXcGSw9k3smv1RJoHMkX9fCLUWs5tjxCpe6u8qq7sHFyQtZYLwfi5O0hxYFRa2HXaQ9Jeqt4eSrV9LiDaAn12rGz8+twzeuFeKNI2czok0XzRKFpv9bJKzXjTbbWwk3DhBZbGlDdcAVA4iatoGZO+u214eRyFlHojmSdhW8UWfSlkw7lCnz66sEDjc8OLka9BiNu/mwHwmHz3Y0g4heD/ptMs/mbKX8a4Ow8Zx+omkX6VJJKxe+uyRJ+axTsGyIYQElR4coCbrss/HoGdmVcnIxqzo4ZRRPgDRudGI2XnUmrUns/NixNlEGHvFjllXzwcrfKongHJY3w8iDR8/cW2P76OlHeraLdyTZUuPwD0TpoXSeX3WrBCjOTvcL7+9PHF26FvqxqicBM9z1OYs3BFo93lH+OTn2dVr0gjah3uBlSMn4uNkIqDDjbeNeH+jSMJ9+owRNMQ3kanWJmjg9KG4veI7GrFCdLmNzK9TFEdAqv96eSs7XReNbJuH6xDhY5gVJN7owM/dxcpKwXX1nNF8pqSWxQumMWY0Qrbk5x6+dKgVSI8Q9Mou2BeOmxIpSktf1DHARXPmYDvU+gtIeGIPTllgUsffViRwf8xtCXEGCz9Hr49BeFfyrM96UWHv1acwZew+ZY3SYDg3fmS2/XqawUh7FUbyZeVEh3pKAUmzvM4AIq9fvwY96t6tDzVN0oH7SbcxkerM1My1dAO2sfamwhqFD+CFQZkAG0drP/sMUz7zErQ4wzr5zDqUKomhiy+jP5xiTY5+BSo0bYFIJab5Kf2u0W9/GsUPiQxIZJWBi/8qAf0+5d0iqx6VTb0ctNP+6pseMiaER/jJG6Cw4KkdmBPdpS8PTRi1MG2aED1UQbXpaeMnoVDVViS4EdYlGcRiiVqydOJbpvArTATUktQ4E2i9aJDCuXR71bJ9MF+QPe8FLt4ljmrVTImYz9oCY5vfx+lLw= X-OriginatorOrg: starfivetech.com X-MS-Exchange-CrossTenant-Network-Message-Id: d83a1810-153a-4557-2430-08dc3dc083d5 X-MS-Exchange-CrossTenant-AuthSource: SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2024 09:33:43.5704 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 06fe3fa3-1221-43d3-861b-5a4ee687a85c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: MWxkYRlVgK6NiSsrEETSXfNnkk68l3jAayNrHMNqQn/3oNDrKtetl3BmDvlRu7OrlrIOz6kH8oguqrToa76Fvv1Gx33zZUVZhD1M58ApyxxAHzzeo3s3K21jSeRonKH9 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SHXPR01MB0765 current_fmt only can store one pad format, when setting other pad it will be overwrote. Replaced it with get from sd_state directly. Signed-off-by: Changhuang Liang --- .../media/starfive/camss/stf-isp-hw-ops.c | 10 ++++--- .../staging/media/starfive/camss/stf-isp.c | 26 +++++++++++++++---- .../staging/media/starfive/camss/stf-isp.h | 3 ++- 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/drivers/staging/media/starfive/camss/stf-isp-hw-ops.c b/drivers/staging/media/starfive/camss/stf-isp-hw-ops.c index c34631ff9422..b933d425cbd0 100644 --- a/drivers/staging/media/starfive/camss/stf-isp-hw-ops.c +++ b/drivers/staging/media/starfive/camss/stf-isp-hw-ops.c @@ -345,7 +345,6 @@ void stf_isp_init_cfg(struct stf_isp_dev *isp_dev) static void stf_isp_config_crop(struct stfcamss *stfcamss, struct v4l2_rect *crop) { - u32 bpp = stfcamss->isp_dev.current_fmt->bpp; u32 val; val = VSTART_CAP(crop->top) | HSTART_CAP(crop->left); @@ -357,9 +356,14 @@ static void stf_isp_config_crop(struct stfcamss *stfcamss, val = H_ACT_CAP(crop->height) | W_ACT_CAP(crop->width); stf_isp_reg_write(stfcamss, ISP_REG_PIPELINE_XY_SIZE, val); +} + +void stf_isp_config_yuv_out_stride(struct stf_isp_dev *isp_dev, + u32 width, u8 bpp) +{ + u32 val = ALIGN(width * bpp / 8, STFCAMSS_FRAME_WIDTH_ALIGN_8); - val = ALIGN(crop->width * bpp / 8, STFCAMSS_FRAME_WIDTH_ALIGN_8); - stf_isp_reg_write(stfcamss, ISP_REG_STRIDE, val); + stf_isp_reg_write(isp_dev->stfcamss, ISP_REG_STRIDE, val); } static void stf_isp_config_raw_fmt(struct stfcamss *stfcamss, u32 mcode) diff --git a/drivers/staging/media/starfive/camss/stf-isp.c b/drivers/staging/media/starfive/camss/stf-isp.c index d50616ef351e..a5573abe0d7b 100644 --- a/drivers/staging/media/starfive/camss/stf-isp.c +++ b/drivers/staging/media/starfive/camss/stf-isp.c @@ -46,6 +46,19 @@ stf_g_fmt_by_mcode(const struct stf_isp_format_table *fmt_table, u32 mcode) return NULL; } +static int stf_isp_g_index_by_mcode(const struct stf_isp_format_table *fmt_table, + u32 mcode) +{ + int i; + + for (i = 0; i < fmt_table->nfmts; i++) { + if (fmt_table->fmts[i].code == mcode) + return i; + } + + return -EINVAL; +} + int stf_isp_init(struct stfcamss *stfcamss) { struct stf_isp_dev *isp_dev = &stfcamss->isp_dev; @@ -53,7 +66,6 @@ int stf_isp_init(struct stfcamss *stfcamss) isp_dev->stfcamss = stfcamss; isp_dev->formats = isp_formats_st7110; isp_dev->nformats = ARRAY_SIZE(isp_formats_st7110); - isp_dev->current_fmt = &isp_formats_source[0]; return 0; } @@ -61,18 +73,25 @@ int stf_isp_init(struct stfcamss *stfcamss) static int isp_set_stream(struct v4l2_subdev *sd, int enable) { struct stf_isp_dev *isp_dev = v4l2_get_subdevdata(sd); + const struct stf_isp_format_table *fmt_t_src; + struct v4l2_mbus_framefmt *fmt, *fmt_src; struct v4l2_subdev_state *sd_state; - struct v4l2_mbus_framefmt *fmt; struct v4l2_rect *crop; + int src; sd_state = v4l2_subdev_lock_and_get_active_state(sd); + fmt_t_src = &isp_dev->formats[STF_ISP_PAD_SRC]; fmt = v4l2_subdev_state_get_format(sd_state, STF_ISP_PAD_SINK); + fmt_src = v4l2_subdev_state_get_format(sd_state, STF_ISP_PAD_SRC); crop = v4l2_subdev_state_get_crop(sd_state, STF_ISP_PAD_SRC); + src = stf_isp_g_index_by_mcode(fmt_t_src, fmt_src->code); if (enable) { stf_isp_reset(isp_dev); stf_isp_init_cfg(isp_dev); stf_isp_settings(isp_dev, crop, fmt->code); + stf_isp_config_yuv_out_stride(isp_dev, crop->width, + fmt_t_src->fmts[src].bpp); stf_isp_stream_set(isp_dev); } @@ -157,9 +176,6 @@ static int isp_set_format(struct v4l2_subdev *sd, isp_try_format(isp_dev, state, fmt->pad, &fmt->format); *format = fmt->format; - isp_dev->current_fmt = stf_g_fmt_by_mcode(&isp_dev->formats[fmt->pad], - fmt->format.code); - /* Propagate to in crop */ if (fmt->pad == STF_ISP_PAD_SINK) { struct v4l2_subdev_selection sel = { 0 }; diff --git a/drivers/staging/media/starfive/camss/stf-isp.h b/drivers/staging/media/starfive/camss/stf-isp.h index 955cbb048363..07d6c2758253 100644 --- a/drivers/staging/media/starfive/camss/stf-isp.h +++ b/drivers/staging/media/starfive/camss/stf-isp.h @@ -413,7 +413,6 @@ struct stf_isp_dev { const struct stf_isp_format_table *formats; unsigned int nformats; struct v4l2_subdev *source_subdev; - const struct stf_isp_format *current_fmt; }; int stf_isp_reset(struct stf_isp_dev *isp_dev); @@ -421,6 +420,8 @@ void stf_isp_init_cfg(struct stf_isp_dev *isp_dev); void stf_isp_settings(struct stf_isp_dev *isp_dev, struct v4l2_rect *crop, u32 mcode); void stf_isp_stream_set(struct stf_isp_dev *isp_dev); +void stf_isp_config_yuv_out_stride(struct stf_isp_dev *isp_dev, + u32 width, u8 bpp); int stf_isp_init(struct stfcamss *stfcamss); int stf_isp_register(struct stf_isp_dev *isp_dev, struct v4l2_device *v4l2_dev); int stf_isp_unregister(struct stf_isp_dev *isp_dev); From patchwork Wed Mar 6 09:33:29 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changhuang Liang X-Patchwork-Id: 778445 Received: from CHN02-BJS-obe.outbound.protection.partner.outlook.cn (mail-bjschn02on2121.outbound.protection.partner.outlook.cn [139.219.17.121]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 788855D903; Wed, 6 Mar 2024 09:49:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=139.219.17.121 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709718554; cv=fail; b=b1IEdjywI+Wp7cfiStQFA6f00yaEZ3SPLc0E2hbLc7WS3tYvSRdSDRfYhNBgWi2YGzBOrKdD+zqxPaDOHPpA5KEQxbeXrTjAXVXYTg/pW8OJY0NVAqt+dgrFAVwwCORmq5UdyCSWoaZIQqIkP278ZBhNNQrMm2FVE9sAlp/Lf+E= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709718554; c=relaxed/simple; bh=bITfJJgMEEDmklNHaEfseE9jsww7gadnLcPygZMdMD4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=HGrM29NEfSxjowQRemb6ijN3OXCwowJwjd7xZrcQ03b/iuFaaWFiev3KOcCD5wrXUKEAdoEAUU5sbjr0fFzTKsCMj/anzOUBkc/91eXkk5wtXh1hp+NarISWb9RpwiPj1hrfKPEgq0o9xdf1aaLVokV1xQEcuYotJQ2ubcYZt90= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=starfivetech.com; spf=pass smtp.mailfrom=starfivetech.com; arc=fail smtp.client-ip=139.219.17.121 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=starfivetech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=starfivetech.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZwID9MFRukfFEVL/y/X5wRn/P6H2hgUrswuGuFeFm0npKAcFqxH2dOuJAWEW548UowV/0+XuTQYjLNJ/UVZLuCJja8+QYw1lFeyruL22L+2p37LGdfhWc/s5HNJB6AeETE07Z5tgLIvHBLNZ5ucO6xd33vBBJaNjUhf4yV50qXMEP92I1JcegJRjPVclW9YyduWLneZUY99gb1hHFygiNH4a5Jpgfy58w+hQLFrI4Nh+uG5+k1uxNpdhGUi06RDBmN/gj5IW6SvrGbZ8na5p4MlICd/2aylrioTBkthkKej9QM/dfM51Yhdffv1LQWS4RnAcPNPTfqPy5X37z8vAIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=G/ZG3rH0d+0pY/m2YlgTq+zhQIYZEEfnKg8iyu9aN+4=; b=InSsQufK9HuBJ5oo4n+CPGeP3e/GnY/jZD8+TbiF1P1wc+xlscmD83PLGPl3Qoy6z7VNfM/q9gQc1rd9PJDqDMgU5PubQCoUyxkME2EPbQjssh81znhYKbSf/3gIH5DrNbXI4wa1KSKKfXK6qNUgxWOJ9tmGsKajk6vsBFEOao64REUVQtQK/+vLrysqi6hE1VxzaJlLq0fYhmLrgK7S/i2+ZSsYhWhVj3ZJ0KR6GPxpjBUdIX6HP3XendNV6kctyWK/pKiFeIbDdvQ1MB4Xt6OvC8zZuji1Cf7z5rSCsMxdCzbaN40c0mzyxapCPQtXzSgdW6Gydej7fjSPHTW3yA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=starfivetech.com; dmarc=pass action=none header.from=starfivetech.com; dkim=pass header.d=starfivetech.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=starfivetech.com; Received: from SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:25::10) by SHXPR01MB0765.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:26::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.51; Wed, 6 Mar 2024 09:33:44 +0000 Received: from SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn ([fe80::b0af:4c9d:2058:a344]) by SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn ([fe80::b0af:4c9d:2058:a344%6]) with mapi id 15.20.7249.041; Wed, 6 Mar 2024 09:33:44 +0000 From: Changhuang Liang To: Mauro Carvalho Chehab , Greg Kroah-Hartman Cc: Hans Verkuil , Laurent Pinchart , Jack Zhu , Changhuang Liang , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev Subject: [PATCH v1 2/7] staging: media: starfive: Add raw pad for ISP Date: Wed, 6 Mar 2024 01:33:29 -0800 Message-Id: <20240306093334.9321-3-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240306093334.9321-1-changhuang.liang@starfivetech.com> References: <20240306093334.9321-1-changhuang.liang@starfivetech.com> X-ClientProxiedBy: ZQ0PR01CA0010.CHNPR01.prod.partner.outlook.cn (2406:e500:c550:5::17) To SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:25::10) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SHXPR01MB0671:EE_|SHXPR01MB0765:EE_ X-MS-Office365-Filtering-Correlation-Id: a5a1a613-c6fb-4057-a36f-08dc3dc08479 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: VJK+Euv448HJcYeeoQzgaA3T+HyZTexOIPEv+GhHwVYPyzv7RL45eSwLLHMvRrd9Zp1s6VJgAO176K6bCDJl26IATM9qQnEcBcBZNslHEt+0AK0HhV7Z9+1W1KuYbncOY4hJcFnO7puGG2T937g0BdFyHALXZF5pRAF31xKFXf2GHxTHm0Sk2nYGHxedI00STqqZ13CZKRfi9AjPhRe4ldYbRhYTaQAa1hvQB9FeGHg4KOYrppnSgA0u3dwmC+tIWBVjeS3vYfPa++wo5R0VHySYH/KQ7PkEuV+nMS5mwA863WgT7eoeQp7pa5qDd2HXnCu9K2pslXYZJPr9vKkW1ZjEqs/ijSpaijUjIYBQIh03TraiEnm8ariTusr0m/L8pgRRAz6ftg11uqkvpgoLrP3hGpBD3odairHBzgPdvn/UNn9HTmIl7X3nR/nR6rz3hAH2jBxMMNmtTpLFGCFS8akPBhwfKnG52t9tFJqWRndAsgq9TNg0YMEJ8IaLQRUjV7LQaSP722bmVLPBb7HfaqSGkxD2WY/5ict8t3x/Y+ReeMd+fXa7+dQjlZpLzlEt8u/0facX6Tl2rlSj2am178be0QDQFBa6gcO2u1aWuq1wqfrzJo3Da2nRStE8wvTE X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn; PTR:; CAT:NONE; SFS:(13230031)(41320700004)(38350700005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: NDVM4nP27oflQJi3isFAod202UfjcbY8tGPL45R69U1COtGhzTMYoCdcRTItDecruSCPnVQzIjqy6VYNT/wPknhtj65OH1QC5j/S1VQP07Uhy2yvwvuO7DeoThqJJo4/Vfi1TQbZFIzecpo6wbKPOA+e/CiZP4E/CTUdv37IRqaSv4eDKmILKeYb7QPYkwOzhCDlSWlpvZFhzdrvoITn3VVSD+g3gum2al4wN8U8ANXhE/mgQhQ+US9z9NhzSlSdEJOg1HjKQxcWDURx8lqRe85enSWufU8wOrrlrxD2hgKDeD8OV6QOw6CNFlr/dJ6fCmBGYmt9FgnzTfM5zXu7I4OEkZzobQgnmSWRWF/HqimrYQ0tXefYNIGpRKkzMJ/w+qPrmQAtBiS9q9twt9pqcaxK5zdaxtrAe3Q3Vg6w290dgJaemrccAjYYGejHvEmX+33Ut70fh6r+979l5YoVa9QY/mtMGij2dxS40czUyFnKIpAp89u9z127UlgT1jivclw2Sxe99q90hEdh6+V2vaVVV6rT5JtVcxtI/J6pG5gwSI6ujiNhEBNOXxcB82vAYmKub1dS23N6w0CCAv90iCRSGxFYGPVdpaVnGwPArouAdTxT99n3wqbQSYiDtv5rSsz5KTDwoYWNNilY8SJBEXfj7xpFBQsE0x/PPyWbZ7zyDf+GnRaDXMSsm8YdWg0SJxyhWcRpdWjv4wUxmhDj9GSPcesGGXbE9RsAASAVHjxbxG66Um61+cHK81jx3SpjBhZ+lIbowElp3V6JoMEfKug85b30ARix7RSeyZvmqwhMLROcZoxG1b9BqWJN9qeQvh2EfFLcFtjJc9G1ZrrLxrKnILlGjrvMmKQ+hQ4NH4dTLlRmLX3ACM5PFCVnOLNrDQjuibdbOPdd1ssT5WeWCr10U7aAdUI5d1POMhgCABuqMMDceFWD3gvFrHoI0oTdZqQ8WMGLWjust7frx0AXtYMgcQSJky9Mm8FKKzr91dxNwuRiyZeO/O5FXh+Q7iTO7PUhQEkbYbhMU2ffUdysI27Sw349ssd59t7kgri0VyY/YQFmZr+OPBQ9JQFDwJuRuqFo+B83cKgcQ3rpgO+0YncaBUoz6LBMpLZ5QuzbX4OXheOJdsH+euGDnO4CsIlkW0c/FoaBiKIxNkyL9yXbvBitLvor2yEinv8fZynju8rxsi4iQFNfReEAe8L9XxDCOJot9rKN7qd/59yuxbTOFKaHY7ZOdT3VKM0BKvXviFBGEgkEadP+4ekudiaXsrP3IFnrSKGBdjZ6DZ05T9yHbha9gLUIeWYi6xJRtdiKOtGeNV8lmWd1l51AcG6SgsYFcv3ZInOul6y9Nt6ek2fvXf6cbrmnMjN7cQOe0u1bv3UqVilm+IIdCXl5VjEhVtA6YEG1AhKR+tpkyYsihgMD81IU0q1CfsCG7nkYP7rvC7bLCg3R4/3kY1NdRER0+kprqXA9RvIZqCu+Y1gi22HnwEd0S0ZI8jQ96ozHHWzG927PcYcoB9noy29tb1yxhd0e39AuCoYoBqDNsXdB829FSAGpY2T/TKTGP4f6rfn+Hnkjih3KKZXKlgk0ev0t6+wNrCIkRXoyerea9sDEqOH61/zrmdPiaxItC0CP70Jqvzs= X-OriginatorOrg: starfivetech.com X-MS-Exchange-CrossTenant-Network-Message-Id: a5a1a613-c6fb-4057-a36f-08dc3dc08479 X-MS-Exchange-CrossTenant-AuthSource: SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2024 09:33:44.6564 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 06fe3fa3-1221-43d3-861b-5a4ee687a85c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: f9z9AkyFGEZMNGsuStbnvNmCzAELOHVeCsAp5TQbfqXihSVKCaxb5WFsA4N8idRtiBQ2dp3RmhbX2frkCay8woATVCW73FXoLFtA/jsfK7Yd811lLFX802SR5hzf17pr X-MS-Exchange-Transport-CrossTenantHeadersStamped: SHXPR01MB0765 Add raw pad for ISP, it supported the conversion of RAW10 into RAW12. Signed-off-by: Changhuang Liang --- .../staging/media/starfive/camss/stf-isp.c | 26 ++++++++++++------- .../staging/media/starfive/camss/stf-isp.h | 1 + 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/drivers/staging/media/starfive/camss/stf-isp.c b/drivers/staging/media/starfive/camss/stf-isp.c index a5573abe0d7b..6bab0ac23120 100644 --- a/drivers/staging/media/starfive/camss/stf-isp.c +++ b/drivers/staging/media/starfive/camss/stf-isp.c @@ -10,9 +10,6 @@ #include "stf-camss.h" -#define SINK_FORMATS_INDEX 0 -#define SOURCE_FORMATS_INDEX 1 - static int isp_set_selection(struct v4l2_subdev *sd, struct v4l2_subdev_state *state, struct v4l2_subdev_selection *sel); @@ -28,9 +25,17 @@ static const struct stf_isp_format isp_formats_source[] = { { MEDIA_BUS_FMT_YUYV8_1_5X8, 8 }, }; +static const struct stf_isp_format isp_formats_source_raw[] = { + { MEDIA_BUS_FMT_SRGGB12_1X12, 12 }, + { MEDIA_BUS_FMT_SGRBG12_1X12, 12 }, + { MEDIA_BUS_FMT_SGBRG12_1X12, 12 }, + { MEDIA_BUS_FMT_SBGGR12_1X12, 12 }, +}; + static const struct stf_isp_format_table isp_formats_st7110[] = { { isp_formats_sink, ARRAY_SIZE(isp_formats_sink) }, { isp_formats_source, ARRAY_SIZE(isp_formats_source) }, + { isp_formats_source_raw, ARRAY_SIZE(isp_formats_source_raw) }, }; static const struct stf_isp_format * @@ -113,10 +118,7 @@ static void isp_try_format(struct stf_isp_dev *isp_dev, return; } - if (pad == STF_ISP_PAD_SINK) - formats = &isp_dev->formats[SINK_FORMATS_INDEX]; - else if (pad == STF_ISP_PAD_SRC) - formats = &isp_dev->formats[SOURCE_FORMATS_INDEX]; + formats = &isp_dev->formats[pad]; fmt->width = clamp_t(u32, fmt->width, STFCAMSS_FRAME_MIN_WIDTH, STFCAMSS_FRAME_MAX_WIDTH); @@ -142,7 +144,7 @@ static int isp_enum_mbus_code(struct v4l2_subdev *sd, if (code->index >= ARRAY_SIZE(isp_formats_sink)) return -EINVAL; - formats = &isp_dev->formats[SINK_FORMATS_INDEX]; + formats = &isp_dev->formats[code->pad]; code->code = formats->fmts[code->index].code; } else { struct v4l2_mbus_framefmt *sink_fmt; @@ -281,8 +283,11 @@ static int isp_set_selection(struct v4l2_subdev *sd, crop.target = V4L2_SEL_TGT_CROP; crop.r = *rect; isp_set_selection(sd, state, &crop); + + crop.pad = STF_ISP_PAD_SRC_RAW; + isp_set_selection(sd, state, &crop); } else if (sel->target == V4L2_SEL_TGT_CROP && - sel->pad == STF_ISP_PAD_SRC) { + (sel->pad == STF_ISP_PAD_SRC || sel->pad == STF_ISP_PAD_SRC_RAW)) { struct v4l2_subdev_format fmt = { 0 }; rect = v4l2_subdev_state_get_crop(state, sel->pad); @@ -294,7 +299,7 @@ static int isp_set_selection(struct v4l2_subdev *sd, /* Reset source pad format width and height */ fmt.which = sel->which; - fmt.pad = STF_ISP_PAD_SRC; + fmt.pad = sel->pad; fmt.format.width = rect->width; fmt.format.height = rect->height; isp_set_format(sd, state, &fmt); @@ -361,6 +366,7 @@ int stf_isp_register(struct stf_isp_dev *isp_dev, struct v4l2_device *v4l2_dev) pads[STF_ISP_PAD_SINK].flags = MEDIA_PAD_FL_SINK; pads[STF_ISP_PAD_SRC].flags = MEDIA_PAD_FL_SOURCE; + pads[STF_ISP_PAD_SRC_RAW].flags = MEDIA_PAD_FL_SOURCE; sd->entity.function = MEDIA_ENT_F_PROC_VIDEO_ISP; sd->entity.ops = &isp_media_ops; diff --git a/drivers/staging/media/starfive/camss/stf-isp.h b/drivers/staging/media/starfive/camss/stf-isp.h index 07d6c2758253..4fc5cfac115c 100644 --- a/drivers/staging/media/starfive/camss/stf-isp.h +++ b/drivers/staging/media/starfive/camss/stf-isp.h @@ -393,6 +393,7 @@ enum stf_isp_pad_id { STF_ISP_PAD_SINK = 0, STF_ISP_PAD_SRC, + STF_ISP_PAD_SRC_RAW, STF_ISP_PAD_MAX }; From patchwork Wed Mar 6 09:33:30 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changhuang Liang X-Patchwork-Id: 778444 Received: from CHN02-BJS-obe.outbound.protection.partner.outlook.cn (mail-bjschn02on2115.outbound.protection.partner.outlook.cn [139.219.17.115]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 496C45F875; Wed, 6 Mar 2024 10:08:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=139.219.17.115 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709719706; cv=fail; b=jw8tiVlaZiXy1u7HGank5sdMGLkY1SQXp3xxhxGMjreEsSlTVV0IDQjrnwSrH/Ezd6lsL21ghqXVrxc0TOl8I7k3eYIXBRUkfdQCA56rsNdeKLew7gULvxEm1+Z1zg8dVqEo9IDBNvhBAvmQkpeDsxlzxO5/RZYnBuEUp+kBiIQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709719706; c=relaxed/simple; bh=oGjeh/iqC8qg6oK7qO5kLtJQbnNBQVPsBXYmyTvLXq0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=jPt/L+KMb6uSMIetDc922qCdQ5vwOB90l5Wba1STpi9w206tzWTQVaW1n+DbIkXAL2Co9bT0S/nqfoRPINnc0sw2I16wmvmGXu0v+EhbMNgzmiI5jXHEJ66S/ULE+dMEhCDqtqayH4PMR1dVedYD4WNQTNzCbFsTPR43ZJflKGs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=starfivetech.com; spf=pass smtp.mailfrom=starfivetech.com; arc=fail smtp.client-ip=139.219.17.115 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=starfivetech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=starfivetech.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=X2noor8SsfXdxQCWxXXPJCyi+BPQGz1ZqDxf51KC1vcnip/wlKgrbpGqEhM7hnQ7GKc0iibkgoy272DAmm//v1/tkZy7KT7vU63P1SEyMhuJUI4B8N1QUQOpuEOVfaO+D4EJP1j0soOr3JRLhwbmOKYNjZlSFOws827RbhYRigaBPv9zJjfGD9UMj2JJCNk0urK1EVgjqiEIAi6DSO6m4RRsSbLg7z+arRBFJfMVPR8wGgxNaVowtYv9J5nSfUSUB3M1YoJ+/pjSmPXBPsOfzaBj2IReP20lT6PtG0HnL2zHbCZ1eAdrAb46M8mT2vUEtAOmizPNFoff5bDnMxak8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=97Q0ajJf1BXRnJXZ/rZBKBWF57BB22R4JvBABMYZvmE=; b=FnBnyt+puCkZpPDwMrhkvZzr+BLd1Hv6Pc2xMjdT9wWD0My5hS81pKA+dS1q+mOl7sppMcMTwBDUvSdDdySa1JgUN9IzqUu38boTsrlSZE/2Tkvzk733AHd3LdGbTSNbIUPNWIo29V3qUQTGTQzvOTykcbg8TOsqjKLPr7F4DDtXgMl/WXIUi+heEMYJ+KT3gyj5b+OtKBHSECL7jsRxdOitUjLbJylI4WFYR6o6YawrJKDEQHFivIvZUxLdalVbboojLUJXCWEAFGy3KCakGpm1QruWaca+8kFj0V7Sv12a3u955eyqf9n7tJGcSdENbcyBCHGdDmW3gx0/sjL1Sg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=starfivetech.com; dmarc=pass action=none header.from=starfivetech.com; dkim=pass header.d=starfivetech.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=starfivetech.com; Received: from SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:25::10) by SHXPR01MB0765.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:26::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.51; Wed, 6 Mar 2024 09:33:45 +0000 Received: from SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn ([fe80::b0af:4c9d:2058:a344]) by SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn ([fe80::b0af:4c9d:2058:a344%6]) with mapi id 15.20.7249.041; Wed, 6 Mar 2024 09:33:45 +0000 From: Changhuang Liang To: Mauro Carvalho Chehab , Greg Kroah-Hartman Cc: Hans Verkuil , Laurent Pinchart , Jack Zhu , Changhuang Liang , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev Subject: [PATCH v1 3/7] staging: media: starfive: Sink rectangle set to ISP source pad Date: Wed, 6 Mar 2024 01:33:30 -0800 Message-Id: <20240306093334.9321-4-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240306093334.9321-1-changhuang.liang@starfivetech.com> References: <20240306093334.9321-1-changhuang.liang@starfivetech.com> X-ClientProxiedBy: ZQ0PR01CA0010.CHNPR01.prod.partner.outlook.cn (2406:e500:c550:5::17) To SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:25::10) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SHXPR01MB0671:EE_|SHXPR01MB0765:EE_ X-MS-Office365-Filtering-Correlation-Id: 6b101b64-a2cc-4594-22b0-08dc3dc0851e X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 5RxmvjOXBLysVi+dAQXwtl4d93vEmYUXnhWYhKMZ5dihEjyZrN+MMzFysALMQu3pzcZTn0ti96aFKj6qtNiAfr9+fWPXuTc6S8/1czzhCVbuv9gaNQ5uu+urInUOu1WnwMDoj83uOwnV7DCQqsE64XdLJr+DDN0gmAszAK1zdMjriPKTznKUu2L4PHmSeyJZ6O5VMhSsQ87y/dGsw7sLLJezOHQJfnUnP8gR6ZJ70OkDyMRtysmridXhz5tcazkxwS7UZA/Nzf6L5+6rDOf5pdZwo3aYM9d2IF5YkpWfgJWxnJ3TyiYq4xuVXayruvIEOKpFQEMJjsOU/iPGzszXgbJKzTUQBw4C8l5hfpLuemMcx4e6SgtJFdmhO3OxVw8LAkb7U1akKFNScPi4dDOkib8QpuI3L3rq1wS6M1PnsVnRydMrZBRWdfxVx21IvRjZVENQObgYAz2bLHVKYG6PYfaFVPHzPzLFxS5KEuQc3W9Gr+iT8i8umKYZFLoQtGNguONnwMyC4wumXXN0Bu3J90ZpqITcosCt0Fy3CZIYmkDq9XmhVUDkRatBqR0g7pyDwPgNaVlA20T4U6N0CwxvYWuccsOit0pciFOTIE/ydS9E2xp/1A11BOmdbK9Lu4O+ X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn; PTR:; CAT:NONE; SFS:(13230031)(41320700004)(38350700005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 3Xqxa/lkHzp6I50MYnIz1osIkUDvdKXGQXwf7LrLbNGZzy6vg0Dw37ubd3NBRS8BJJ2fxTg+vK1xG0/sQMVZ/kXM+LwSxYQS4alLmMF1rhzEW5KrdzP5ZzjmK6RUFBGhbDGHvKllnPDpqU3h+CUB3FI5Fk8nvtmf7I1drK7BothwwH3IRRMN9mxJMOvbIMPnc7nuxJyjfsE3pna7Ox1wguqVc+b777bbaqKjEQtQimi+IRna2x5vQzGqai6hrrttBPUKpgdeMWTP6ore3tcUqaE6r1yD9CIxNSxzuWli6LJVrymPK928CbovzFDxUtGItVuN7KdUlbspBexTkGIpaFMEN1k8SJT2dykGHJwfiLWhs+9p1vnvWRChyWd835fTuSsp9RJidHRmc4uOmyC3vkPxPDrgf0h4EwRU3ibHOuAJbAkt6v88mSvyz+6L3ZY4AjZ8j2jO7AkKunft/z1yPeewN6VauNaGdb5gi1XD6BOgSKSz9PQbE1I+Yp836w5y+e112p9L9RC1gBj/yv4PTY7blk0KTEiAh87aV80U47UjQL3YFADZyBx/naHZ64XVdtrjy8OSRh4mi3lL1HYmFRGOJFPGbTTtL4yBxXMHSw4JFpG9OBgKR/lVqoFTRB2pejY0+7UWJ0tvX79oDR7LfPLb4kC4OyRyhIStuUJhvv99LT3VDGrKArgmvdRPRABAn1QssBVOZtT9mtzAs0FFt6ZXMVBELbgSaET3eK5KfhWXlcXAcggugmJbxDYaxx7gV84MPxIcOYWpcId64vSvNovyaHuFGpZ+sg3qJLgFvQ7JqrD8imN0+uSVHc5xZhRuE0PdCbrdSVFUQWW9kpSpOJCaOshyD5wocsNebnNJoR4OIyfxXhsfiQAKsWXr6WU06PFK9Jz7TpONY2hae0oR0bbUCMRef++/r90W1llrLuYl8H+RbK1hFU3GnFc3EkV+O1CYbiijsdR1nqlNJCBe4ABf6MbAXY7ecwEOH3DEl0wy+1SgllUZzTjh2zz6Y3jlQXN0sTokcQyePOSL+a4S6ri2W3MsbxMsJigYWVc+dKUDJqqdTzKMPwZB/k07nZZfxcisyRN9+mRIWAScZl3UmIe+Y2PzxVSa/8QZUAbWQEzAv6SbAytSPFiEPofnRj84vlfCIN+VmXvo+9eGlK9P66JNydv8ot/b1K9IhHvM0Zp/g8PoXR8CgoFJPfbqYD81dNOaA4Vz7e5pgQPvBBRPCeTqi1Bj5Kng7JOsLLw5RZV5XOPOk8pgSxQh8ZO8Jhf6CvDvJmtzSfgXezITbMuRY34VfH9zcdn4espDsWKjD8CvYeErGRmrvJJ44pO+hV5XnJXa9E8TIidbms97vTCDEL3GSacQ1tiv0yiwRZ6WD2IEKcvdwyX3hq4GdCuoRPN5GdfhUnsqWVenSvn6tMm832ip52sl2dt/+7KkUk0hRnKrfa5yFgdRw0AbOxARXus3E/NNH8QKZ1wJutVYzEXsNUcOg79MHjBemq68odfBii++g4YIgielCY4l/bFnKJgaKbxRethNcN5WCypsZgcLw7Z5Gz/XHG8JxoJJajAFL9avaGxcp0vbOoxqV58KquNvj5AUKKiiU1CRNS4aNr614alzLeQMmjFnFAPcCxQiWvE= X-OriginatorOrg: starfivetech.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6b101b64-a2cc-4594-22b0-08dc3dc0851e X-MS-Exchange-CrossTenant-AuthSource: SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2024 09:33:45.7810 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 06fe3fa3-1221-43d3-861b-5a4ee687a85c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: bFS4z/PNE0lAq/rObLVIsIJIPUJ7HqTD/d37L6DkA6NvivHti02DZALG7TUvN6funDpK4YbGiJZdqYC8QndWGjpNaUjQsRJjdjuxtDUyk7jF237a/1gFJfLEKRqgVMZR X-MS-Exchange-Transport-CrossTenantHeadersStamped: SHXPR01MB0765 Sink rectangle will be valid for all source pads. Signed-off-by: Changhuang Liang --- drivers/staging/media/starfive/camss/stf-isp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/media/starfive/camss/stf-isp.c b/drivers/staging/media/starfive/camss/stf-isp.c index 6bab0ac23120..9b5745669fa6 100644 --- a/drivers/staging/media/starfive/camss/stf-isp.c +++ b/drivers/staging/media/starfive/camss/stf-isp.c @@ -88,7 +88,7 @@ static int isp_set_stream(struct v4l2_subdev *sd, int enable) fmt_t_src = &isp_dev->formats[STF_ISP_PAD_SRC]; fmt = v4l2_subdev_state_get_format(sd_state, STF_ISP_PAD_SINK); fmt_src = v4l2_subdev_state_get_format(sd_state, STF_ISP_PAD_SRC); - crop = v4l2_subdev_state_get_crop(sd_state, STF_ISP_PAD_SRC); + crop = v4l2_subdev_state_get_crop(sd_state, STF_ISP_PAD_SINK); src = stf_isp_g_index_by_mcode(fmt_t_src, fmt_src->code); if (enable) { From patchwork Wed Mar 6 09:33:31 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changhuang Liang X-Patchwork-Id: 779035 Received: from CHN02-BJS-obe.outbound.protection.partner.outlook.cn (mail-bjschn02on2097.outbound.protection.partner.outlook.cn [139.219.17.97]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 91E3F5F549; Wed, 6 Mar 2024 10:08:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=139.219.17.97 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709719728; cv=fail; b=cr/sG6KHAiltql96vSss2VvWMfsNcsh48Mx0I3MJGWDqg0pPhMaKlDqZHFCyljxJINyv94W/1GOz0yrnmKnBvD6QTqsTA6pOe9jL441JfNJ/UbSiFYvWOmtnxFdL9KF7G73qialW+a64D1UTxtOJo43ZvxhaewdugoJC0OIZXSA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709719728; c=relaxed/simple; bh=Ag/9jm7fZlBWooHWCeXB5OWwqFPZwihKU9de3eVv2g4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=IYbeTkkwDPOf3Z5VkGrhKp82VKfJWzDJCyotKq04vfVwTKT1oGRD9+8KGOkEIQo8Q2FTuF7rl59J1ocI9Ql6pwd88IV2pyGxFserIBu8bqKuDqPLt5Nef2A4nMVPFTV8IFggu5JffYAzZNfjueoYYL1Pf/5HRqKO/rk7KHpoO24= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=starfivetech.com; spf=pass smtp.mailfrom=starfivetech.com; arc=fail smtp.client-ip=139.219.17.97 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=starfivetech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=starfivetech.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CXCgC3TtGQMYBg1xiSxmqCjQWia24Y/Yz0K98SLdig6ETZroOycmH1OZyhOl6dvYkDaN1VqaE3UfoQsC5cI2wLl5+58toKKE02RrfW+Gv0jIJ1fRCZ0kSdce8QbzEY7R1gvE657uAP4NQ7cVlwXkLIHhH/r8+j8nOCCG9IBb9TdH1Z1fp/1rnJlAmfC3bVNTTnCaRnwNAHoEo3EF+4NHMFWVwCfiaRsYW1uODQ1zU5doZ1SY13kp7xAB8/O88ZtYjzI1LnGCRltXLfehcSQhqp9dVI1s7shcigshFwZv7UGsDZLOkeBDGjI12FQF6TNNZRoCnnyAjPS9baD58oKr2A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=xAPstmroN5nFl6jMr8n3AzD2pk6wIBAH7OD/yrVrd9w=; b=RiS4pslRQpUs5zHnDC2p9iAPVC1LBy7n3YDWejYqTdIJHgUA3pzx+in9FDD9l4Dmu8sfVAX/nSMGvEul8Pf3Q6dCnWLavTdT4Nv9BLwCR33JrmeE1CyHVjWOs5ezvObp6CA0zI8tGIK7gHo0AtEUV/IXr0Tuy8Z2jrlgM7wA7jEaxuJDJTpZkGaS4ej/BXm6E5U3bAUyt+7C8JDIUUjRTMY+o8Y1UqZDIBlDqaT8eqkiDwChaZWFIEi42mjnotyzellCB7G35kPVD24iOJ+L+bbKo5pBIJ1J0B9Z8woW9MuDKB0vVNgHQvCBno8w+NQU/1LHUBTpyFac/CoVz6GVig== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=starfivetech.com; dmarc=pass action=none header.from=starfivetech.com; dkim=pass header.d=starfivetech.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=starfivetech.com; Received: from SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:25::10) by SHXPR01MB0765.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:26::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.51; Wed, 6 Mar 2024 09:33:46 +0000 Received: from SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn ([fe80::b0af:4c9d:2058:a344]) by SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn ([fe80::b0af:4c9d:2058:a344%6]) with mapi id 15.20.7249.041; Wed, 6 Mar 2024 09:33:46 +0000 From: Changhuang Liang To: Mauro Carvalho Chehab , Greg Kroah-Hartman Cc: Hans Verkuil , Laurent Pinchart , Jack Zhu , Changhuang Liang , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev Subject: [PATCH v1 4/7] staging: media: starfive: Add multi streams for ISP Date: Wed, 6 Mar 2024 01:33:31 -0800 Message-Id: <20240306093334.9321-5-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240306093334.9321-1-changhuang.liang@starfivetech.com> References: <20240306093334.9321-1-changhuang.liang@starfivetech.com> X-ClientProxiedBy: ZQ0PR01CA0010.CHNPR01.prod.partner.outlook.cn (2406:e500:c550:5::17) To SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:25::10) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SHXPR01MB0671:EE_|SHXPR01MB0765:EE_ X-MS-Office365-Filtering-Correlation-Id: c597e034-318f-4948-2b19-08dc3dc085cc X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: og76OOEnX5KI6Ac5SL8zUEwRepFmh+bSa0DI3k7r1gTtI4ORcZw4w003ln3bD9aZ4yxa9WmvGSThSxsCYNkWryQOekZ8+i+/t/bMYg/AO+9tuc3f6cQ1uOvbkYs38QDfBZpUKXNVLIoC06IuWjZlkEZkWf9A18flJ1cubcLJkOr1X0YmbKVk4s0O9WZzSL7TFE+1Ui3DkR20+8dj1EdZb59LRsuU8xiU2jxi8kcs5xBAWNc9fD5nGwGLY/zA0fiZnUnHO1CHeBpa+VjIFZjkk3EMybLRvlVdoPN8nlqKu/qwN18AGbjLbRDT0Vp1dpekwHbTze9seVd7r0D882zEBs7CYlOZQ/nA9g4w8f5I+CWpdahSe9ne2EodXQOUrxBppE8DA7vccXihAade3YPDClbmkTG+gISufyojoKLoS1XIrLQa0wjCyptiXpqW6wGIfBTCm8/mPrl8lqtW5Bm/FYm3PjQ6vrJOYtlkuT4nj9mJXLdRZt9TvbSi8gvMu45x04qsQ7X/si7dFWwwjTXEs0dm6QQUqfw0EV8b4Wa0R3ngkHb9XxL6T8MfkPYYSEqJ0wQMHsJMJA08ZRkWs6p+otAjE7FDMuoPN9yaTPFh6ENVHTWbnn1bEImpS2nDN+KH X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn; PTR:; CAT:NONE; SFS:(13230031)(41320700004)(38350700005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: tUXXXps2Rksso7CBdyufFPKBob+wxRkA/Mf5TVVYh246DOaBG8XyfV1cOLO5C2mUpOmvSbODJAX7qSI+n3s1Ip3HAcs2zJtqj2RgytWV1gPZN5rKyabDu3t5G2+jVLhcCAT4Fa1yxxb0zlM31NHuScNx4FDwr//Yd90CMuVNnaTEKiesEvX511KAaRmPd092ayqZp4tWK3qErV3eGbUQbAbccqLikn7QdDTBZQNKFgbkjgJL4voSo0lWRbe9e6KTS8HfFQSRGwn8CfT80B1Quz3FEREyXdVpE4etYmB7zI+SG5roA60PezLRNElslzHhGclgeF7Q9Dy2stG+37G1q8vmIi7rWHLpJun4CEffX2YTgGMcEEJU04cHxYCQCseXvTxNsCr8RsEUs7BI/tEOqZh/xKJ+657x6gHROhqjybstg256kTFE1gS0HJVFCJBWGId1bdssdEu6B605KQf/itUorP+R4Cpr234W6wvPw5Yj296ZwmY6+cOJ1StJ/gHyhqDn0fuFdP2oQZfn/g3Sy1aRXtu7CJd089koGBmM1Sx+d7v8h7h04SuuisltKZZTqZhd7LX21WJB1IKVDTwh9qK7egjOXRPYKjiahpoYQ8FFe+UbV75WHSFkGBL9CX32yrBwf8kIgbTE+//XpX/tIaV13ka12Cn/q+AGX5yLHuaXdJl3KPd3GauosMjSdnm/jZDKmayu9nerPl9vh4rbBtG/FGRKcoMz2ILkc/Oe/7yLNTBNNv+KQ1aFO603qqIQ/k780D2w75WKoUHlz90uEbavs2po9rtzRs1x/QRw2c2aWfbsIj7WDm9JGdIuBwvPx8OsUGfeTwD+OTWSDBkAVCT8KQEnZFgmy+0+F/wvqtTaQt3E7fjBc5SdCmGClxPLGyvKY+n7+KzCQbVPhYyvtxFck4qnQrEvSVUF3yb7GVo07ohzX+ZlDg9S0aHVAL9HWNjWy+0bX7zPA1+T3I5hidFIDBBriTuQxksP/amX3DP9pjcxTAUHI9CpteLowtgQZvH2kEt6pVyo0LqafK7wr9zyJvANVhNeH37kbAnVzNqkJDUsuxvWXxNul1xEKq5HTMLPc1XtM+h7xzn12BVbdE8gr42i6JwSn73sN5OhAU2dxVPE+cKZVyms0OQkOwQEHJ/az4LBl3MLodJgaxeHkD2aE9Y7eOdrAe7HVl7jhK745VNTJeBheG2jpyD8yqKw7W9VKosjm8oe0Fv26uioCcYC/cjBtOahCg4j4S7a6jgFbNpwxikSE43hG6QHOIAMK7USEwipGYO69tXgMBxhNe7vfg9jHB4cJL7c/nzOtI57WNO6GvnG655GTfk/aHDOtBzGFuj9/4dsBFtUuSByKHJzHol788yjLnKN/gA+u0PN8l6P9Lo0DYHJRcr+xhAM4jH4eiEixz40OuZrue/HSBHk7+yPkSYZAMQfBEvP9un5aO4BMLouBt/T1gYAifoKBZ6xkjec3EczG5Ce+Utouthn0vPle1/FwXHg7GIAQ38tTbJnUN0RaC7Dr+SuVbR2NFN3hHnkCSsZRR9EAyFh1mWKbyE12wM5uohPU+OVviOxXzkYmImTBKKzTDh39BcCrbGkIU72SUpkqBDFWNCYxMEmQU4zC3+e20/abugK+0A= X-OriginatorOrg: starfivetech.com X-MS-Exchange-CrossTenant-Network-Message-Id: c597e034-318f-4948-2b19-08dc3dc085cc X-MS-Exchange-CrossTenant-AuthSource: SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2024 09:33:46.8701 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 06fe3fa3-1221-43d3-861b-5a4ee687a85c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: MAhmhPG27jV75DULtX8LM2y1BIfUtr/9J767AowYLGD818vrGppcB4PNyH9ZcKOAuXpJVItlTV6qj2h09iRCwJ9fj/buLqlOIPbHqrMm6cWATCaVDbA9vtMC2UdAWMKg X-MS-Exchange-Transport-CrossTenantHeadersStamped: SHXPR01MB0765 ISP support multi streams output. Add stream_count to save the number of stream on. Signed-off-by: Changhuang Liang --- .../staging/media/starfive/camss/stf-isp.c | 28 +++++++++++++------ .../staging/media/starfive/camss/stf-isp.h | 1 + 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/drivers/staging/media/starfive/camss/stf-isp.c b/drivers/staging/media/starfive/camss/stf-isp.c index 9b5745669fa6..1bfd336b14a1 100644 --- a/drivers/staging/media/starfive/camss/stf-isp.c +++ b/drivers/staging/media/starfive/camss/stf-isp.c @@ -92,15 +92,27 @@ static int isp_set_stream(struct v4l2_subdev *sd, int enable) src = stf_isp_g_index_by_mcode(fmt_t_src, fmt_src->code); if (enable) { - stf_isp_reset(isp_dev); - stf_isp_init_cfg(isp_dev); - stf_isp_settings(isp_dev, crop, fmt->code); - stf_isp_config_yuv_out_stride(isp_dev, crop->width, - fmt_t_src->fmts[src].bpp); - stf_isp_stream_set(isp_dev); - } + if (!isp_dev->stream_count) { + stf_isp_reset(isp_dev); + stf_isp_init_cfg(isp_dev); + stf_isp_settings(isp_dev, crop, fmt->code); + stf_isp_config_yuv_out_stride(isp_dev, crop->width, + fmt_t_src->fmts[src].bpp); + stf_isp_stream_set(isp_dev); + + v4l2_subdev_call(isp_dev->source_subdev, video, + s_stream, enable); + } + + isp_dev->stream_count++; + } else { + isp_dev->stream_count--; - v4l2_subdev_call(isp_dev->source_subdev, video, s_stream, enable); + if (!isp_dev->stream_count) { + v4l2_subdev_call(isp_dev->source_subdev, video, + s_stream, enable); + } + } v4l2_subdev_unlock_state(sd_state); return 0; diff --git a/drivers/staging/media/starfive/camss/stf-isp.h b/drivers/staging/media/starfive/camss/stf-isp.h index 4fc5cfac115c..30e4eb29f077 100644 --- a/drivers/staging/media/starfive/camss/stf-isp.h +++ b/drivers/staging/media/starfive/camss/stf-isp.h @@ -414,6 +414,7 @@ struct stf_isp_dev { const struct stf_isp_format_table *formats; unsigned int nformats; struct v4l2_subdev *source_subdev; + unsigned int stream_count; }; int stf_isp_reset(struct stf_isp_dev *isp_dev); From patchwork Wed Mar 6 09:33:32 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changhuang Liang X-Patchwork-Id: 778446 Received: from CHN02-BJS-obe.outbound.protection.partner.outlook.cn (mail-bjschn02on2096.outbound.protection.partner.outlook.cn [139.219.17.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 298125DF28; Wed, 6 Mar 2024 09:35:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=139.219.17.96 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709717708; cv=fail; b=KBsuuIgJ1cXAZSp6JiK5548yUt0/Wobl1yuIz4ZNpvguWxLEpbnY8iaTvmkzcsRSr0E3i4lZW+1R3H5t+R5NPatbU4i+W6am3jeD6kbLJ1/XEn+WG7Y866QaX3GQ/6BiBpu+P2GXZwo+SeXXFjQhm9NqbqT1UAaVOS3l9PpB1+M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709717708; c=relaxed/simple; bh=SlH/hVyLYNqyxN5DLVfot9JVRxYvrwxxdrBWpqDZjsY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=gQhyQ5/eWT85TVdIp6uo3NvHD2dp32LK7KMQfeUne55FDfvqoTgOIqzTZIxTrDAb48Wd83uLTnKJTF+kHL+cY2ch3Ydx8U/AyI55ypFmm5XwZNFwuAoPKC77F0wZpOiZzewg4iyPeVvd/EL16uUNNxAiD9Ry0DjALwpsO1U2XEI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=starfivetech.com; spf=pass smtp.mailfrom=starfivetech.com; arc=fail smtp.client-ip=139.219.17.96 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=starfivetech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=starfivetech.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=P7716cbqVYAOtHkQc5InHtn8McmRzJpOm5U27MM75kDmt+lhOT960qvQ7rbZ1g0nHsiGh2wPRsYi+fZlV7EbbHyjT6W4sOjucUe/HDSweFpAiXPXGhzyaW9zO1Rkl/HsOb4PFWRHG/98CviCdFzJI+l6rBehUhMweKjd/QdSPwPxdzI5bgiXz+CBO4gYMRXkdwawUeSDaAk55pk8R5E1+cwJ6AU6tgNFxc0y6HoPChj9vD4tTNRtOR6gUa16l53P1lQCPag8U8xXqVLZ65/fRS0kEioRhivM7dm51ididZYcx7hhWoEPGSQtFAhyPSrUp1Ak6cvDsZUn41YRNs6BwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=RiM4HQjaSjnjqEr0hjGgbLSiOZY/NOEIpFCa5O+6cLo=; b=m26MfFC1jNHhZpHVK7/N5SG4FHFMRCr+TcsZk2srfog6YgBqMm3FTfQ/2UqM+x+ERHOBHx4HFk8eVrnucw/ZikUY0l8Z0YOaXUeflflTEYEVhr4idUQDgTRhkycX6/74ngP6mv2F/gWOEgGmusRUV9SJ02TxGu0G20BZU7+YQjtjSRW2qc0yKwT0CbjPJf0McN8nH9i5WDXxXcTFiD+ew5KF4paibyEvIwsCFyIBrvWwjdW5WlGkDj9izAr4t2+7hAm07d6eaORCqcsavuabMnS8A37WjpbBZkziQ3L5SMQ1ZlPPI6bCH4QeGnLBf6UB1Ck8PJ4eSVfA6RfGxe1/jA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=starfivetech.com; dmarc=pass action=none header.from=starfivetech.com; dkim=pass header.d=starfivetech.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=starfivetech.com; Received: from SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:25::10) by SHXPR01MB0765.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:26::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.51; Wed, 6 Mar 2024 09:33:48 +0000 Received: from SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn ([fe80::b0af:4c9d:2058:a344]) by SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn ([fe80::b0af:4c9d:2058:a344%6]) with mapi id 15.20.7249.041; Wed, 6 Mar 2024 09:33:48 +0000 From: Changhuang Liang To: Mauro Carvalho Chehab , Greg Kroah-Hartman Cc: Hans Verkuil , Laurent Pinchart , Jack Zhu , Changhuang Liang , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev Subject: [PATCH v1 5/7] staging: media: starfive: Add ISP raw video device Date: Wed, 6 Mar 2024 01:33:32 -0800 Message-Id: <20240306093334.9321-6-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240306093334.9321-1-changhuang.liang@starfivetech.com> References: <20240306093334.9321-1-changhuang.liang@starfivetech.com> X-ClientProxiedBy: ZQ0PR01CA0010.CHNPR01.prod.partner.outlook.cn (2406:e500:c550:5::17) To SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:25::10) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SHXPR01MB0671:EE_|SHXPR01MB0765:EE_ X-MS-Office365-Filtering-Correlation-Id: ba3e8ecd-8ca7-4707-0ca1-08dc3dc08673 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7Yu9jl6T0gSz5HuMHMpQR+bRjMg46e08Z2YjGPSk2MIHHjQLgNrdOVWQ7+X20CdXcXZv9eIwBpjzkgalNAUeKq9MgdWWx8Z8CkuWalEAdcqlUch7+Q2sn86PlywCGlG5AgycuMsV17DmkFm1lehNG2tpz5rbe0dCQijpZgHplJnrHOjKrPUvsTygs7+F+ltNzjOuPq5aVPmFIIMpdHYI9IKl44j08tICEBtBpLOpCz15Wc2GfS7Wse82GtM1RTHqtmVHTf35c/J/WMNF253YWB/UbaU+Hxo7X4Jbla6CRMbVTMm8Yhla4FrXIRe7Qsl6oZbc083CKETh2tWvZ29cCe0jJVSoHlNgBd9W3qlCcFp4UTCc14QXHwMmRkpwfaKoA4dYIjo1SA1EHl6byGAwfMWLQHr/yLItzIDhriL4sT3z+TVg3zGhLDay7STvGF9R4983hc8p9dQtuyCF8HHLD+Ls5AJfaxt+7iMvtWUK1UPWvHwf8qT1SqDaCCAbb5qToDaK+UdiTOqO4EVT0rTgtMTpqAeb9vuKow4/KxA50GlAVDxJAtpJ+piFHo7Nvys9CwAz7xTpaZ95hEyHTEndgJQG+KvBW88RHA5XdjuT69KxwVA2Qz8u7yEFwHGL2/lB X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn; PTR:; CAT:NONE; SFS:(13230031)(41320700004)(38350700005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 0k0h6FiBAA/zD9sERNFwpyDCfabZrBgLCNmUgNNaoCI3DscWAJ7qeINCrF8E9gwfmfYZjj8V+gxAu/GeFnoKQzKPKG6iqSwT330Xic1PuWEZIn9KfYVqVOQthvMlNVDr5Fu4qDFAezL6BB5+hzqTOkIX77QRzMJIbDlFm5SBfYbYv3Y8fN+XWbUBppcmoJCp8hu7haSGphyxQs+tQFmzyjGkmaG4k8UEY4geIvRHjzx2TqiiaFWInisiWZfUUpq1ZhqUoOEQ74P6VSfPt4ffPZDrnoYZvlmtoX1ZpCwJkE80vRR21Urfe96UwcCvHTXVnNkWSmSZKSIhb6uskcc20soECAK9RUhfdfbHzJMjXwLHVegZqUUlPwd56MH5zaOg+T8VZYgTEcIMsMG3GVUxfFZFCEcNUXO5UGgKWNMgPV85pXqkMJ8l8btxn65SZPM157IEj50VHocnOVFhOSfugbAkoFXsRTw44SQA2/gj0ToPETYY6Re/gfBpdc64RxPvXezyrSPKs0QYuRTq82F/MxhKV79Dzb8DKFhcBwtOsHdXY/4Bx9fCGwR+pA5tgm/pbIxUocKy+ifKU0GuLZPeP3bprqSoW3b/Fk9MmS0K04DHFRyhRL+tTJeRh9/QpDY0YIix/TyFBf60TW1aaMWTHo0ukjcuxwy4zYyWjvjEgKFOXkY4AuzaQNANLrnrBrVNlR5i+1Qs9wgNzWAhbdw0Te2MwGQDFNNEX3SIOQ8Ag/cwinyd+RBxbFmlW5wkNbKANuUcnM5wlx8gohx/V8D1lV+JK0/LjrlRrP2IgVTgiXiUFzggfRWlspftE3u3NoY95yMRTnIsHpg4BbR86vdXbnsatQ/oK3uPwWILE1DfF2vAy9v7CBgrKgNH0hYvLOoi5clx9Tlre2MNZfEVKW5xMPfrG84wpdomUxEVza5npV/Mz1Sm1dCl/NfcSC5ypqNgc/OSG4AHPRO9MdzLnR51CSn6nHnSIH/Kpw+qf78Z1sx4IfgURrTb6esaCV54uEDR+GNzVHdyVAxcqpTkM9rTYkNVNB8mHow+O7xP7O8FdzzGgc7SSF2rT17lyqUaOpz4PIysSfQY4EgYC1Ylpg6BnzZzSLv2/xtYYk5FbncznvRh7OfDSRb5fYcGpvEABFjI7joTpyOtpC3fTk/adSUfjBoeTz0wbvy3mpFRHnk0f/5kQSzv+ebfGh8UZJrNDU1JTy/yRplIXhFmUfuBd7RTFBzma7vMMTMuqKdHYzxdyDp13jJWxQ5uxKTW+sxWCWmN0UlkcCA3LfQOu9bju6lgFhSU3SF/mnBLeeVSDoLjFRQRHELR5Xd6qFAVJNSPnfz+vbdBsG01bFEtfDuRh7Xr0Ajykc4Nrg1ceApfE9wVC8U6RrHCxzs74bj6F0RzLHTBPhfU1Iq39aatbFlzbNgBJXWzNSMgzXRVT4SDJRf9H6RBGL/b4G6HBWqp1Rl6xwDEtbtKeTVIn/fHK8kA7mobbQdfj2Ky2LHYlAxKb8gzG+jgeWHr6y5IOBxefYCGHlxxUHwEKvwkuV6m0nsCWrWA3aaikfjLg+zDnT5RzJYJ5BOL9ZYbcTAY28eTum+tYaLZdc6vZJqh9cOERwM+J2Er/1ndwvk7LUEKCc8yT99+1vs= X-OriginatorOrg: starfivetech.com X-MS-Exchange-CrossTenant-Network-Message-Id: ba3e8ecd-8ca7-4707-0ca1-08dc3dc08673 X-MS-Exchange-CrossTenant-AuthSource: SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2024 09:33:47.9657 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 06fe3fa3-1221-43d3-861b-5a4ee687a85c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: goto9k9MgOqyBxWa9udoasRLqIrlQ44L3UJ4wWxsN/krflAQp3hTbpNeehTZ5zk4orjRFwr4xi18xdCAy65cGI7gYMvNWPBc9TBwUh9pMsxlRuMwTc1MWkmguV075RiP X-MS-Exchange-Transport-CrossTenantHeadersStamped: SHXPR01MB0765 Add raw video device to capture raw data from ISP. Signed-off-by: Changhuang Liang --- .../staging/media/starfive/camss/stf-camss.c | 19 ++++++ .../media/starfive/camss/stf-capture.c | 58 ++++++++++++++++++- .../staging/media/starfive/camss/stf-video.h | 1 + 3 files changed, 77 insertions(+), 1 deletion(-) diff --git a/drivers/staging/media/starfive/camss/stf-camss.c b/drivers/staging/media/starfive/camss/stf-camss.c index 81fc39f20615..90ac8b67c76e 100644 --- a/drivers/staging/media/starfive/camss/stf-camss.c +++ b/drivers/staging/media/starfive/camss/stf-camss.c @@ -126,6 +126,7 @@ static int stfcamss_of_parse_ports(struct stfcamss *stfcamss) static int stfcamss_register_devs(struct stfcamss *stfcamss) { struct stf_capture *cap_yuv = &stfcamss->captures[STF_CAPTURE_YUV]; + struct stf_capture *cap_raw = &stfcamss->captures[STF_CAPTURE_RAW]; struct stf_isp_dev *isp_dev = &stfcamss->isp_dev; int ret; @@ -150,8 +151,18 @@ static int stfcamss_register_devs(struct stfcamss *stfcamss) cap_yuv->video.source_subdev = &isp_dev->subdev; + ret = media_create_pad_link(&isp_dev->subdev.entity, STF_ISP_PAD_SRC_RAW, + &cap_raw->video.vdev.entity, 0, 0); + if (ret) + goto err_rm_links0; + + cap_raw->video.source_subdev = &isp_dev->subdev; + return ret; +err_rm_links0: + media_entity_remove_links(&isp_dev->subdev.entity); + media_entity_remove_links(&cap_yuv->video.vdev.entity); err_cap_unregister: stf_capture_unregister(stfcamss); err_isp_unregister: @@ -162,6 +173,14 @@ static int stfcamss_register_devs(struct stfcamss *stfcamss) static void stfcamss_unregister_devs(struct stfcamss *stfcamss) { + struct stf_capture *cap_yuv = &stfcamss->captures[STF_CAPTURE_YUV]; + struct stf_capture *cap_raw = &stfcamss->captures[STF_CAPTURE_RAW]; + struct stf_isp_dev *isp_dev = &stfcamss->isp_dev; + + media_entity_remove_links(&isp_dev->subdev.entity); + media_entity_remove_links(&cap_raw->video.vdev.entity); + media_entity_remove_links(&cap_yuv->video.vdev.entity); + stf_isp_unregister(&stfcamss->isp_dev); stf_capture_unregister(stfcamss); } diff --git a/drivers/staging/media/starfive/camss/stf-capture.c b/drivers/staging/media/starfive/camss/stf-capture.c index 5c91126d5132..a5f10ec57782 100644 --- a/drivers/staging/media/starfive/camss/stf-capture.c +++ b/drivers/staging/media/starfive/camss/stf-capture.c @@ -12,6 +12,7 @@ static const char * const stf_cap_names[] = { "capture_dump", "capture_yuv", + "capture_raw", }; static const struct stfcamss_format_info stf_wr_fmts[] = { @@ -55,6 +56,37 @@ static const struct stfcamss_format_info stf_isp_fmts[] = { }, }; +static const struct stfcamss_format_info stf_isp_raw_fmts[] = { + { + .code = MEDIA_BUS_FMT_SRGGB12_1X12, + .pixelformat = V4L2_PIX_FMT_SRGGB12, + .planes = 1, + .vsub = { 1 }, + .bpp = 12, + }, + { + .code = MEDIA_BUS_FMT_SGRBG12_1X12, + .pixelformat = V4L2_PIX_FMT_SGRBG12, + .planes = 1, + .vsub = { 1 }, + .bpp = 12, + }, + { + .code = MEDIA_BUS_FMT_SGBRG12_1X12, + .pixelformat = V4L2_PIX_FMT_SGBRG12, + .planes = 1, + .vsub = { 1 }, + .bpp = 12, + }, + { + .code = MEDIA_BUS_FMT_SBGGR12_1X12, + .pixelformat = V4L2_PIX_FMT_SBGGR12, + .planes = 1, + .vsub = { 1 }, + .bpp = 12, + }, +}; + static inline struct stf_capture *to_stf_capture(struct stfcamss_video *video) { return container_of(video, struct stf_capture, video); @@ -73,6 +105,11 @@ static void stf_set_yuv_addr(struct stfcamss *stfcamss, stf_isp_reg_write(stfcamss, ISP_REG_UV_PLANE_START_ADDR, uv_addr); } +static void stf_set_raw_addr(struct stfcamss *stfcamss, dma_addr_t raw_addr) +{ + stf_isp_reg_write(stfcamss, ISP_REG_DUMP_CFG_0, raw_addr); +} + static void stf_init_addrs(struct stfcamss_video *video) { struct stf_capture *cap = to_stf_capture(video); @@ -91,6 +128,8 @@ static void stf_init_addrs(struct stfcamss_video *video) stf_set_dump_addr(video->stfcamss, addr0); else if (cap->type == STF_CAPTURE_YUV) stf_set_yuv_addr(video->stfcamss, addr0, addr1); + else + stf_set_raw_addr(video->stfcamss, addr0); } static struct stfcamss_buffer *stf_buf_get_pending(struct stf_v_buf *output) @@ -250,7 +289,6 @@ static void stf_capture_init(struct stfcamss *stfcamss, struct stf_capture *cap) cap->video.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; cap->video.stfcamss = stfcamss; - cap->video.bpl_alignment = 16 * 8; if (cap->type == STF_CAPTURE_DUMP) { cap->video.formats = stf_wr_fmts; @@ -260,6 +298,10 @@ static void stf_capture_init(struct stfcamss *stfcamss, struct stf_capture *cap) cap->video.formats = stf_isp_fmts; cap->video.nformats = ARRAY_SIZE(stf_isp_fmts); cap->video.bpl_alignment = 1; + } else { + cap->video.formats = stf_isp_raw_fmts; + cap->video.nformats = ARRAY_SIZE(stf_isp_raw_fmts); + cap->video.bpl_alignment = STFCAMSS_FRAME_WIDTH_ALIGN_128; } } @@ -441,6 +483,8 @@ static void stf_change_buffer(struct stf_v_buf *output) stf_set_dump_addr(stfcamss, new_addr[0]); else if (cap->type == STF_CAPTURE_YUV) stf_set_yuv_addr(stfcamss, new_addr[0], new_addr[1]); + else + stf_set_raw_addr(stfcamss, new_addr[0]); stf_buf_add_ready(output, ready_buf); } @@ -468,6 +512,7 @@ irqreturn_t stf_wr_irq_handler(int irq, void *priv) irqreturn_t stf_isp_irq_handler(int irq, void *priv) { struct stfcamss *stfcamss = priv; + struct stf_capture *cap_raw = &stfcamss->captures[STF_CAPTURE_RAW]; struct stf_capture *cap = &stfcamss->captures[STF_CAPTURE_YUV]; u32 status; @@ -476,6 +521,9 @@ irqreturn_t stf_isp_irq_handler(int irq, void *priv) if (status & ISPC_ENUO) stf_buf_done(&cap->buffers); + if (status & ISPC_CSI) + stf_buf_done(&cap_raw->buffers); + stf_isp_reg_write(stfcamss, ISP_REG_ISP_CTRL_0, (status & ~ISPC_INT_ALL_MASK) | ISPC_ISP | ISPC_CSI | ISPC_SC); @@ -487,14 +535,20 @@ irqreturn_t stf_isp_irq_handler(int irq, void *priv) irqreturn_t stf_line_irq_handler(int irq, void *priv) { struct stfcamss *stfcamss = priv; + struct stf_capture *cap_raw = &stfcamss->captures[STF_CAPTURE_RAW]; struct stf_capture *cap = &stfcamss->captures[STF_CAPTURE_YUV]; u32 status; + u32 value; status = stf_isp_reg_read(stfcamss, ISP_REG_ISP_CTRL_0); if (status & ISPC_LINE) { if (atomic_dec_if_positive(&cap->buffers.frame_skip) < 0) { if ((status & ISPC_ENUO)) stf_change_buffer(&cap->buffers); + + value = stf_isp_reg_read(stfcamss, ISP_REG_CSI_MODULE_CFG); + if (value & CSI_DUMP_EN) + stf_change_buffer(&cap_raw->buffers); } stf_isp_reg_set_bit(stfcamss, ISP_REG_CSIINTS, @@ -571,9 +625,11 @@ void stf_capture_unregister(struct stfcamss *stfcamss) { struct stf_capture *cap_dump = &stfcamss->captures[STF_CAPTURE_DUMP]; struct stf_capture *cap_yuv = &stfcamss->captures[STF_CAPTURE_YUV]; + struct stf_capture *cap_raw = &stfcamss->captures[STF_CAPTURE_RAW]; stf_capture_unregister_one(cap_dump); stf_capture_unregister_one(cap_yuv); + stf_capture_unregister_one(cap_raw); } int stf_capture_register(struct stfcamss *stfcamss, diff --git a/drivers/staging/media/starfive/camss/stf-video.h b/drivers/staging/media/starfive/camss/stf-video.h index 90c73c0dee89..cad861aae31c 100644 --- a/drivers/staging/media/starfive/camss/stf-video.h +++ b/drivers/staging/media/starfive/camss/stf-video.h @@ -37,6 +37,7 @@ enum stf_v_line_id { enum stf_capture_type { STF_CAPTURE_DUMP = 0, STF_CAPTURE_YUV, + STF_CAPTURE_RAW, STF_CAPTURE_NUM, }; From patchwork Wed Mar 6 09:33:33 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changhuang Liang X-Patchwork-Id: 779037 Received: from CHN02-BJS-obe.outbound.protection.partner.outlook.cn (mail-bjschn02on2096.outbound.protection.partner.outlook.cn [139.219.17.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2AE6F5EE7B; Wed, 6 Mar 2024 09:35:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=139.219.17.96 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709717710; cv=fail; b=p6EDsA+ExbpXGp1vADhLDtOqn+93UMi7O18AjortqS6g8ZbK7/6mVLxLCww4dXgawsgCP41d/UwpLjxbW26GOzEcA7++i8N3zXdJVIOFfvjip3nL7cKmzuHVLw7kiDAun3/BZM2jWwXMQKiEle9mqfiHXN4nZYjMVbYEyJ1eTxQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709717710; c=relaxed/simple; bh=t/8lt0Pr+j3CoLNkrd0kChJLBkBwY8rlY79cPmxwmpY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=lkv45F45L4N6h+8nEXW0eQNggbZu4jduJ6Wf0pGD2URz8TEQk8qVjQLHUs+Zcgnhlw8+Ws0WSV4j00rHXl02/E7xFY5U3tA9K7wGvoaGi1fGwg/qpztEFeYL3NsNyZIdr1f5fVu3kPQE/oNLQfnkxDXG07BKQebXZAdFI43rMZA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=starfivetech.com; spf=pass smtp.mailfrom=starfivetech.com; arc=fail smtp.client-ip=139.219.17.96 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=starfivetech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=starfivetech.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QgH4DoXRHG7cbPcK3d+nVDHKFqu5KFuMhFFaiRuZBD6yOmLlgmf8ceUuFSCtDdyE8Phf5RPyNWaOjorq9OusgxuJTlyXs512oiwQOxchpErXdTI4IdXiyLXWZTkpmGKSljMlmukmnWXaPKbDpqvcl05T+fqYdPZYKl2u4u5wAVRh1LuGADiMBkVRt1pJxYOTr13EcI3rbtooeuI/cXmE1kHSGNntQXa8SMIGmx0kV6v2VKtHuBzwTgO57vNdspvEVkdxeYfo8KJv9GMpzY1ZueVcfFj/0F8bQBAYhyjOYADhctgOTqUQHAN7zSNePkbDav3aX9nKWuEgvqnNyawPpg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=1ZwJCOce09A/wb0xiNcquqsX1G80AklZpIiCYsYxIGE=; b=B/IdvxDW1kLhCLTmSiB2W5W15DEPicJAwymna+RWcB9pMk3e//y7h7PYJ1+DR+j4uCAJfRovJfPvmRKK+VkkPIcUWTiIzw7mGaVoyUOCnn+CMmF3Oa25pE1Qty2h3mQRhs8MSalVgUXE6pHzwI5PaW0vsxgk01Xf1Xb8DAggYQaTEjHHBCJ0yXvILmRtoIj0uus+ksnbqTCX3u5gmWeI+QxL9kZ/D7e01E7kW4q6HAsORMR/5X+lDg3HShscRwU1bJMxNk7RxKBjWCFrqEmyjI3nbGvbeRLiwxQnk428hI7wJQrg4pHcIUu3Sy49fTK0TGlQ+JBzL+etvTBbRwcOLw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=starfivetech.com; dmarc=pass action=none header.from=starfivetech.com; dkim=pass header.d=starfivetech.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=starfivetech.com; Received: from SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:25::10) by SHXPR01MB0765.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:26::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.51; Wed, 6 Mar 2024 09:33:49 +0000 Received: from SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn ([fe80::b0af:4c9d:2058:a344]) by SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn ([fe80::b0af:4c9d:2058:a344%6]) with mapi id 15.20.7249.041; Wed, 6 Mar 2024 09:33:49 +0000 From: Changhuang Liang To: Mauro Carvalho Chehab , Greg Kroah-Hartman Cc: Hans Verkuil , Laurent Pinchart , Jack Zhu , Changhuang Liang , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev Subject: [PATCH v1 6/7] staging: media: starfive: Add raw output stride configure Date: Wed, 6 Mar 2024 01:33:33 -0800 Message-Id: <20240306093334.9321-7-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240306093334.9321-1-changhuang.liang@starfivetech.com> References: <20240306093334.9321-1-changhuang.liang@starfivetech.com> X-ClientProxiedBy: ZQ0PR01CA0010.CHNPR01.prod.partner.outlook.cn (2406:e500:c550:5::17) To SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:25::10) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SHXPR01MB0671:EE_|SHXPR01MB0765:EE_ X-MS-Office365-Filtering-Correlation-Id: 11e03947-6e98-4c31-7764-08dc3dc08723 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1jhSHRMEYeyVmPMd46UyFxwO2x9XHeEIPyerq5FPUq5NKdAS2SWfXLTg8vcCTCm7DdpQvQAwgVoGVbIq1/AkX3s6cNgxhLZgE5V5yYvO/1GAilEeAV8WviSi5QbZL8E3DtbU4dfoe9GQ7oUpMx1Deg9xmH3b+oeyPLtdUfrOn0Yi4QiN+qYlmBgGntCpOIYXsetwdI96vMjZgIiYo+3gLzyb7UDy4HHAfjC4fmUqitnG4ZHtVhEe0JNSfpqGYoMij/VErQU0tFD4IjS/iGNnX3FVemb6/DqkKBH6nJXMMdQUst+7gqOOjBMBM5XyJYU41L9G0rgDxFyyfQpQHSknJQYU0Qq7rHz180Es7CqL66n60daXzgKLAMfzYKn0aOStCv0rnwD0G/WFfqHZww0J2hiloE5cAi5sSlCC6AJdEW+LbEequkY69+NQ4Q1Cg/2eW9ZxufBAB7AGy4h54zYMbmnksOMIoEBkaOMutP7Ti55U/Ytwf1gf5gnOcyQ2wzcksxJJt0Z8WwlLtL7o2Qx+LmpE+p4pFl38XsGp01E2On1oZRMWnjHeiAwonrMvIEum8xcaWzxGsk9Paz3vWoS6a3ltq3ZH0gpm116cMahpKU7uyqMQxPjKeNZ9W9BnIB0h X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn; PTR:; CAT:NONE; SFS:(13230031)(41320700004)(38350700005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: inwLTePbVv6+60Sje4cJ+IK9nVa91tX4LJYG95RG4VpMKHNSBbF1BRHYeIsmh84ITpWCERTPHTzOcbwZ0478XJSXdLth5pRbS3MsIx6yviJPUUqmJhiaZAyLy6RNq3efC41Kezk74OK8FsxD945HMhJg53ZFBtte5BqGQP8xet60p4zfJWsTvec9Z1zteJwz8Ac4ii+R8dtABQFy9RrqpQsK/RwTu6/DCGkZX1hHZV5DPrczj76uORkqwdwqT7k0PHTU/Ke7WLze7GMna1dNk2ATNswC0gvd1PFUw7s3CQFh1P/NmHPTAAVif2GQNek9Eq1WftUtkY7byAq5/KLSzanjRMsZARU1MAMXls4WOgkaWVIkj6jnYg/MO1zlg47DzsGDq538buSxnBH7h9k/39stFSaiq3qyDi6mI19YeFQVHoHkGQoLbW+boGxbVyFGaB5omF6rc4vRjrVSTIajME5uUUJ0DU1iBBDGSvnjye2QFzrWKH4KzHGIvGlxLeDAuBfGgXPjRyFuehGoiUloL/CBRi/jxotrGZSfmL+r/YRX4A+0pkYize+1mULA3/k5PsD2kTMSxTXtdLsRdtl0macYelQr+/dGit5hrCL3XDiKEHrSgGQFRirVNF/C7Z2vF0S2UKYmPNkBM+96JQ6ll7BV/8A4z+kXYhsQxdHKna9S09Oeo9yGpZmzIOmn/LJwiEw/kC5Yus+QcxzeJIDHWn+m/Dg7xZmL0KP4+jS/P7umCnZjNG4V4pk+dyi0pwyaU8c7DEaJUm6OUk4UbMbayeocaAXnLKC+Z3DEpKnrr3yAZjAEAmul7qn8Sw7GBNrmzGfON9bd7YxX1QEB0KAp3EAAzIyJfn3LSWWlw4bGubQ4cY3oC4ai/7FblcJaMc7EB/PG227l+97rTu6pQ8Ktm0CDztw/VemZXFrrdXRAECGY+3s6tcdEpHh9ADNDtg/KP6J0di+68n2OEIxI36eRIkN03H3iKc4Ia+2zN67tVEtlSQulFaZBGQ6B36Bqcvq9ydBlfLyos9wZcKK93EEn782tZEm+19BHjbNaFNcfuAqHm/3Ypl3GrIuf00HmrAw0P6h5nyROMjWg036iUAVMjKVDvMwjLnG7gJEVAd231y+B9giBZ2hxlQc4L+lTS0qrFv66uaDq3wdDJWTFc83X9OW0AuivJZVFkiO8NvKlodYS7Mbh5P7dCoxlilXUW6l3ioiISkNvk76K9pepGeCXMOUBAQfENzvCDSoEpShfkqy+J0FAXMwZjYvTAzd44QksYgIbYM6jYxSOxVLw/PseM/5lpphUwV15IfHyDXOl18f//SojcH47AQs8hwvf9pxlXGL6ikaWufT1Qa2zj5MmQt+gNtGIbeZAOg4CEc9OENqQSC9qUxDHmkyjU3X73/55DoI6eN2mOFHQoouZEIZXSIJhpIIkYBaBF2KFjpheFDzK7ROzPxo6r9fU5953mb0EsC/vxS40pgrPoF1VxJJuUIbHT68Q9gZikAMLDpvHOuaJLw33BPFTPTzM4BKR/brL6XeUgGkh74Jwu1T1V4m2MNrfnOyOXtVZZeLz/7xNMl1F4tTrQElPf8SNlDdHa1avNO6M3DQTQvjFBvZPdcj1sZdTmIdpTUK65/27h70lbUU= X-OriginatorOrg: starfivetech.com X-MS-Exchange-CrossTenant-Network-Message-Id: 11e03947-6e98-4c31-7764-08dc3dc08723 X-MS-Exchange-CrossTenant-AuthSource: SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2024 09:33:49.1116 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 06fe3fa3-1221-43d3-861b-5a4ee687a85c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: NktCT5QeRxFrP3hH8k1YJ5Vshuxq6yOQrnpPw+heCcqvYHj7BJj39x8ac8Iv1/q1yTIPkhXuNZVcCX7htftW1DmA9YHP7okf+TYP7sws0t1CFSJnOCHo5smmpw/bppfz X-MS-Exchange-Transport-CrossTenantHeadersStamped: SHXPR01MB0765 Add raw output stride to enable sent the aligned raw data to memory. Signed-off-by: Changhuang Liang --- .../staging/media/starfive/camss/stf-isp-hw-ops.c | 13 +++++++++---- drivers/staging/media/starfive/camss/stf-isp.c | 11 ++++++++--- drivers/staging/media/starfive/camss/stf-isp.h | 4 ++-- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/drivers/staging/media/starfive/camss/stf-isp-hw-ops.c b/drivers/staging/media/starfive/camss/stf-isp-hw-ops.c index b933d425cbd0..e7f60616bd7c 100644 --- a/drivers/staging/media/starfive/camss/stf-isp-hw-ops.c +++ b/drivers/staging/media/starfive/camss/stf-isp-hw-ops.c @@ -366,6 +366,15 @@ void stf_isp_config_yuv_out_stride(struct stf_isp_dev *isp_dev, stf_isp_reg_write(isp_dev->stfcamss, ISP_REG_STRIDE, val); } +void stf_isp_config_raw_out_stride(struct stf_isp_dev *isp_dev, + u32 width, u8 bpp) +{ + u32 val = ALIGN(width * bpp / 8, STFCAMSS_FRAME_WIDTH_ALIGN_128); + + stf_isp_reg_write(isp_dev->stfcamss, ISP_REG_DUMP_CFG_1, + DUMP_BURST_LEN(3) | val); +} + static void stf_isp_config_raw_fmt(struct stfcamss *stfcamss, u32 mcode) { u32 val, val1; @@ -417,10 +426,6 @@ void stf_isp_settings(struct stf_isp_dev *isp_dev, stf_isp_config_crop(stfcamss, crop); stf_isp_config_raw_fmt(stfcamss, mcode); - stf_isp_reg_set_bit(stfcamss, ISP_REG_DUMP_CFG_1, - DUMP_BURST_LEN_MASK | DUMP_SD_MASK, - DUMP_BURST_LEN(3)); - stf_isp_reg_write(stfcamss, ISP_REG_ITIIWSR, ITI_HSIZE(IMAGE_MAX_HEIGH) | ITI_WSIZE(IMAGE_MAX_WIDTH)); diff --git a/drivers/staging/media/starfive/camss/stf-isp.c b/drivers/staging/media/starfive/camss/stf-isp.c index 1bfd336b14a1..845446ba279c 100644 --- a/drivers/staging/media/starfive/camss/stf-isp.c +++ b/drivers/staging/media/starfive/camss/stf-isp.c @@ -78,18 +78,21 @@ int stf_isp_init(struct stfcamss *stfcamss) static int isp_set_stream(struct v4l2_subdev *sd, int enable) { struct stf_isp_dev *isp_dev = v4l2_get_subdevdata(sd); - const struct stf_isp_format_table *fmt_t_src; - struct v4l2_mbus_framefmt *fmt, *fmt_src; + const struct stf_isp_format_table *fmt_t_src, *fmt_t_raw; + struct v4l2_mbus_framefmt *fmt, *fmt_src, *fmt_raw; struct v4l2_subdev_state *sd_state; struct v4l2_rect *crop; - int src; + int src, raw; sd_state = v4l2_subdev_lock_and_get_active_state(sd); fmt_t_src = &isp_dev->formats[STF_ISP_PAD_SRC]; + fmt_t_raw = &isp_dev->formats[STF_ISP_PAD_SRC_RAW]; fmt = v4l2_subdev_state_get_format(sd_state, STF_ISP_PAD_SINK); fmt_src = v4l2_subdev_state_get_format(sd_state, STF_ISP_PAD_SRC); + fmt_raw = v4l2_subdev_state_get_format(sd_state, STF_ISP_PAD_SRC_RAW); crop = v4l2_subdev_state_get_crop(sd_state, STF_ISP_PAD_SINK); src = stf_isp_g_index_by_mcode(fmt_t_src, fmt_src->code); + raw = stf_isp_g_index_by_mcode(fmt_t_raw, fmt_raw->code); if (enable) { if (!isp_dev->stream_count) { @@ -98,6 +101,8 @@ static int isp_set_stream(struct v4l2_subdev *sd, int enable) stf_isp_settings(isp_dev, crop, fmt->code); stf_isp_config_yuv_out_stride(isp_dev, crop->width, fmt_t_src->fmts[src].bpp); + stf_isp_config_raw_out_stride(isp_dev, crop->width, + fmt_t_raw->fmts[raw].bpp); stf_isp_stream_set(isp_dev); v4l2_subdev_call(isp_dev->source_subdev, video, diff --git a/drivers/staging/media/starfive/camss/stf-isp.h b/drivers/staging/media/starfive/camss/stf-isp.h index 30e4eb29f077..dcbc42f0dfe4 100644 --- a/drivers/staging/media/starfive/camss/stf-isp.h +++ b/drivers/staging/media/starfive/camss/stf-isp.h @@ -76,8 +76,6 @@ #define DUMP_SHT(n) ((n) << 20) #define DUMP_BURST_LEN(n) ((n) << 16) #define DUMP_SD(n) ((n) << 0) -#define DUMP_BURST_LEN_MASK GENMASK(17, 16) -#define DUMP_SD_MASK GENMASK(15, 0) #define ISP_REG_DEC_CFG 0x030 #define DEC_V_KEEP(n) ((n) << 24) @@ -424,6 +422,8 @@ void stf_isp_settings(struct stf_isp_dev *isp_dev, void stf_isp_stream_set(struct stf_isp_dev *isp_dev); void stf_isp_config_yuv_out_stride(struct stf_isp_dev *isp_dev, u32 width, u8 bpp); +void stf_isp_config_raw_out_stride(struct stf_isp_dev *isp_dev, + u32 width, u8 bpp); int stf_isp_init(struct stfcamss *stfcamss); int stf_isp_register(struct stf_isp_dev *isp_dev, struct v4l2_device *v4l2_dev); int stf_isp_unregister(struct stf_isp_dev *isp_dev); From patchwork Wed Mar 6 09:33:34 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changhuang Liang X-Patchwork-Id: 779038 Received: from CHN02-BJS-obe.outbound.protection.partner.outlook.cn (mail-bjschn02on2096.outbound.protection.partner.outlook.cn [139.219.17.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D8BB05C5F8; Wed, 6 Mar 2024 09:35:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=139.219.17.96 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709717706; cv=fail; b=uHQxXvGRZ19dMioNK7N3yOqZXpqKwF63xGNKzyVY5CvpDdn20sha4oAsgopZoYFW3GN4U/Fib8foytkZj1xnw6JITk8LdN/EVdDu/2jZBYxTDTFHurHahdYtF9y1LBJS6Ip94bUixxSXUuxoY3WAC5RC9ZcWCFsRqhLDVVYdXFc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709717706; c=relaxed/simple; bh=qEZUXXcGfu5KrdkYtdSJ+/hWTIHGy8fMTs2fV14JElM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=uDiyA+ZMVREQ2KbTQrD9e/OqmfFdeo9q9d4sWCl6ETLb+L1KJJXsjoQ81tliEGi0rfFcn0YNYSwOung8v25EjVAR2N8idM/IC8D9+pYsFjoErUTGfmvlUfGNxuNJuWSFm2B3Azs9VN496zrmcjeKxoFlpoTjaLI4xG95YaRltz0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=starfivetech.com; spf=pass smtp.mailfrom=starfivetech.com; arc=fail smtp.client-ip=139.219.17.96 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=starfivetech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=starfivetech.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MBgR8HbpDJLsv07xKgx5zAAUAfKM+y3Yug4pMykuJ37ldZ3lYF3XHYmUkijRPNyyG347j4etP0hofp3t9Z9sWtVIQwnsZu0pJkKGLrwGrgCTgVDepFN69J21EnqwAzuGlTjdbUhK62ZUkRhUHVAJYeDtrRGJ4qbPM0wUnGcj6LpQx00l9ljRdAPIUIk/xabsxbOlsaHaH573ijn0BqCzj21DW5Gwt3xtZq3oqDpTNuz5bBq3Aw3qNpmwiF88chz66fAuYAapfbnFAfExfhBIMk9PVnkAVjrkdQMMgFjjSHykCF2BaHQTvujrFr3sSbhwK+YiGcvwJERIhiUXwHkeLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=okrpVDdxdi53NMy6hb3yIyBF7UdzqI9iZbgrC34zSKA=; b=cZS18ikmSrh09Pq2zx7zrR+vcKtPS2KCfA7aGbP6eXx4XhGRBEQ9PpLSuxO0mQbrRzTWus7qH3JbsQxV5gy80WVBvtzF3gbfKxEFKSM0tdimsnVyQIHD3E4C4RifmdlUNRZvJlbnHOEdzQ1EkitjIJPijv0AsD9axVbyrByNW4Kdu0xbKZevK6JuhH38X+jjoK+r2XXHGcswdENi6ojXfc6hrYR4ZKxfCRglLwzzJJqNZ3ayTOOpKn07lHQG2Y+4D3Uj3XOsAa59QaoqWAkKA3G1tn8k3hjQwnGDf7DC8kzu4xRxjc1v082KFI3gG5QSkAs1aH4LibQMvVVTJ1Oi6g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=starfivetech.com; dmarc=pass action=none header.from=starfivetech.com; dkim=pass header.d=starfivetech.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=starfivetech.com; Received: from SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:25::10) by SHXPR01MB0765.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:26::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.51; Wed, 6 Mar 2024 09:33:50 +0000 Received: from SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn ([fe80::b0af:4c9d:2058:a344]) by SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn ([fe80::b0af:4c9d:2058:a344%6]) with mapi id 15.20.7249.041; Wed, 6 Mar 2024 09:33:50 +0000 From: Changhuang Liang To: Mauro Carvalho Chehab , Greg Kroah-Hartman Cc: Hans Verkuil , Laurent Pinchart , Jack Zhu , Changhuang Liang , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev Subject: [PATCH v1 7/7] admin-guide: media: Update documents for StarFive Camera Subsystem Date: Wed, 6 Mar 2024 01:33:34 -0800 Message-Id: <20240306093334.9321-8-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240306093334.9321-1-changhuang.liang@starfivetech.com> References: <20240306093334.9321-1-changhuang.liang@starfivetech.com> X-ClientProxiedBy: ZQ0PR01CA0010.CHNPR01.prod.partner.outlook.cn (2406:e500:c550:5::17) To SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:25::10) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SHXPR01MB0671:EE_|SHXPR01MB0765:EE_ X-MS-Office365-Filtering-Correlation-Id: ee297a9b-6352-4eed-58e8-08dc3dc087ca X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KJj3kc836m7RwZdCXMOUlN8YJrfBhNFUDDF0vcDELyW8b851uSWQOjtB9LkM7hLRjQVScVpNZswIXVk+H+eOvr8bDSB8meDOR0wpCYNhTd0Uac0aE0g8Ppf4OxHwhKoPIVUvKhTnAG0bj18IWIsL/VXiqjqUi8jFqVTq4j+pcRCQ+cKRYBkh8hsqXd6VtOi75ZijouGKgECWFbck2BiRdo3HaMSWldnzFsWh8k/1oMQxiVh6BpNbiIEMzzkxL1V3UWt7bLIUR/gQ2o8oOBbGK0llVYBMQYys4Ys9peE53G2sZ6GhBxsitTFC2XuFDhtCvH2aWNkGheydMM2BUnxzQMpd6YUMItzkSXCqFQfNSfuwCthRdDEXjAzlZSyanl4Assvg5xHpztoirlX5BWbJo2DYafNsict1LwGVch1I1pLMMXRZ58AkJU3MsAVHNoraCPW8MbxGk6ALqlFHyA/WMlJ4zmbcDkljEJAoFWJy044jYpCD+y6invOlvj9MgdVk9FRdAQ6Jr4K3NegCVPRr2/xcJMQb0l2chSBZpk/057Sf2dKMsdPsBL7zRiW8OJD/ghHfOzK13mcyO4NmtCNdeCcw23kxjlOe9TyzwgEbEqq7zRojAIbVtvdZrfmJtSZ0 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn; PTR:; CAT:NONE; SFS:(13230031)(41320700004)(38350700005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ljocOJK+M6zvMBBxlp1vFXgzMPSzYRHEh6KsR7zg8JWnr80HNHib154/beltYg058elEy/tJ54DI/ci2IrMSKtRj8foqEOJlQjr4l66z+FG5x8NwqK20j1tnMny665fcne/bx3G/GEbgoizHNHc6qMLwdFVaWG1sEndam8/VMl18KSCMZkRg7HXZ1gHnO2wbRm7FTMvcGaG89nMeZaX1xC3BRcLj2w5IyI7zfFp9xh4t7ya/kX0DDIUqW3UquSaMznG5a8q0ZareQGvfdB7PR+Qx83kRuNc9Zfm3CyDCk0hW/UqyANpWTQW+C8r7A5MTp8C8kbpOOGsiEZ8eJypS+tQlPerzzZ7T2sKRH37Do6s6HRkN5E06AN8Fsp3rrbylw22gERzoAoU0xDeLMKnkkrxcrXNojlTqrMfny9fQ0njFnDWCPn8fTqWEoT68iQ2IGPDdnxaW5ipDVckUfKs+qqTEqKM3qzgDL9fSljbhVUAN1xytcrRakSRitqsqtzU/2K0W5ZhegkV53ld4jhFVDvdwCrfEOmwVPEZUUDCz1Cvld7bqDA+cK14nbsnnzPkCqE3ndLhsus1lWsOiZUJ3LA/llw+gZzSf0lK7LnrpILASc/onUjyYaLvB71RH6miuikL5NMpsAxj4pi101NcykhkrSUKDgYfoSUxDNBq0E4ZXcGfPP+qYS4YMByL+kuM997trSY35cL26hLGOTpAZUEVbqJOhQdcnS5XmTWahy+7jqtvDL2HgLeEMWGHxJtkKc7kQwSo3HtH70w1p5H78Ct04HZbX5n4eUGWAxhpe516A7neD81eoFS9iu8g4VTShdPMijTBBtRMe4B98VD0bJvVqYMt/vqPpn7Q0q9r6QBaaNpl57akpXNrMock/8i7BeSrkKVS1H95yrCx14bogqhEVOlaWi4qe66rubcC8K16OhiKC7HRQ/1S8S38v1C3zVIfk8FqXqIp0KR+M2jKcg3xrzVidQrbAFoEsHc30SCn2ks1sTsgomrxxHDorvmpk37cAOKAq7gfrWGCgjw6B3EKadbEDcgbsFeBRWpUiZ5EKkRaCo8nwRzq00UosS/bJyVioK20vQD0wv169BhQ+sMrgyPG89QWxK5mxUmqQFACRwrV8fecfCQhqaWOYDRt6lMYQRXdkwEb1w49wS9RQ/Ky11LTrUOjScgcUHDsWHl8ajc2gkudnNeq/bauRZX05kneHdz1TLfEqnBpKSfbQOMzkXwwju3uJWZBgYO6OG85cPjKdAgBinjo1X278Jchp1Ernq+6otkb5tNwx4odgJKt8aU6fIU7lKEKKcQIKQXYtl3NRLg8dcKgMkV71abOojMrD6Ym1uOWq3tuMN2O1zTE96NVQPN2LVm012WWEKeFWzWmp4t1+KaKAjeEe4bceuSSqMDLSLkrtrMbsDVVYIwqdwNEnAnh8KJhpwh8GMDgZDUtVaFJQROKYELh/R+xSkBtWOLq+jhZo/Mo34xueIvsuQf4pmnkoCBUzV+KLmPYWxRBilM5E/rIk8+OLAmNj3yh+X3tlEYkGMQiVlf2c+0WsfHSN3siYSRTAAtaYZ8smpAy5LC3CO1kSIopDdp89iIO2jF4zlRJZdDRVRAdLDBvJTozYOWtqlIrdazAuzv0= X-OriginatorOrg: starfivetech.com X-MS-Exchange-CrossTenant-Network-Message-Id: ee297a9b-6352-4eed-58e8-08dc3dc087ca X-MS-Exchange-CrossTenant-AuthSource: SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2024 09:33:50.2038 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 06fe3fa3-1221-43d3-861b-5a4ee687a85c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: VmNhJC/IsSgRTlmYDwxbliYjHqasddawBeu4Q+AYmI3sClbkVXkN08DQG3XWAhNaZdjl0ViQHWj8FfXP/Zr1T2a7Sf4SLQdlouEczDH65g5URyop5pf0xxwJNHr2cMpH X-MS-Exchange-Transport-CrossTenantHeadersStamped: SHXPR01MB0765 Add ISP capture_raw video device in documents. It support output raw frames by ISP module. Signed-off-by: Changhuang Liang --- .../admin-guide/media/starfive_camss.rst | 11 ++++++---- .../media/starfive_camss_graph.dot | 20 ++++++++++--------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/Documentation/admin-guide/media/starfive_camss.rst b/Documentation/admin-guide/media/starfive_camss.rst index c224e6123042..b8d1ce878847 100644 --- a/Documentation/admin-guide/media/starfive_camss.rst +++ b/Documentation/admin-guide/media/starfive_camss.rst @@ -44,7 +44,7 @@ The Starfive Camera Subsystem hardware consists of:: - Parallel: The parallel interface, receiving data from a parallel sensor. - ISP: The ISP, processing raw Bayer data from an image sensor and producing - YUV frames. + YUV frames, and also support output RAW frames. Topology @@ -58,15 +58,18 @@ The media controller pipeline graph is as follows: :alt: starfive_camss_graph.dot :align: center -The driver has 2 video devices: +The driver has 3 video devices: - capture_dump: The capture device, capturing image data directly from a sensor. - capture_yuv: The capture device, capturing YUV frame data processed by the - ISP module + ISP module. +- capture_raw: The capture device, capturing RAW frame data processed by the + ISP module. The driver has 3 subdevices: -- stf_isp: is responsible for all the isp operations, outputs YUV frames. +- stf_isp: is responsible for all the isp operations, outputs YUV frames and + RAW frames. - cdns_csi2rx: a CSI-2 bridge supporting up to 4 CSI lanes in input, and 4 different pixel streams in output. - imx219: an image sensor, image data is sent through MIPI CSI-2. diff --git a/Documentation/admin-guide/media/starfive_camss_graph.dot b/Documentation/admin-guide/media/starfive_camss_graph.dot index 5e8731e27701..dab3e3ccbe9a 100644 --- a/Documentation/admin-guide/media/starfive_camss_graph.dot +++ b/Documentation/admin-guide/media/starfive_camss_graph.dot @@ -1,12 +1,14 @@ digraph board { rankdir=TB - n00000001 [label="{{ 0} | stf_isp\n/dev/v4l-subdev0 | { 1}}", shape=Mrecord, style=filled, fillcolor=green] - n00000001:port1 -> n00000008 [style=dashed] - n00000004 [label="capture_dump\n/dev/video0", shape=box, style=filled, fillcolor=yellow] - n00000008 [label="capture_yuv\n/dev/video1", shape=box, style=filled, fillcolor=yellow] - n0000000e [label="{{ 0} | cdns_csi2rx.19800000.csi-bridge\n | { 1 | 2 | 3 | 4}}", shape=Mrecord, style=filled, fillcolor=green] - n0000000e:port1 -> n00000001:port0 [style=dashed] - n0000000e:port1 -> n00000004 [style=dashed] - n00000018 [label="{{} | imx219 6-0010\n/dev/v4l-subdev1 | { 0}}", shape=Mrecord, style=filled, fillcolor=green] - n00000018:port0 -> n0000000e:port0 [style=bold] + n00000001 [label="{{ 0} | stf_isp\n/dev/v4l-subdev0 | { 1 | 2}}", shape=Mrecord, style=filled, fillcolor=green] + n00000001:port1 -> n00000009 [style=dashed] + n00000001:port2 -> n0000000d [style=dashed] + n00000005 [label="capture_dump\n/dev/video0", shape=box, style=filled, fillcolor=yellow] + n00000009 [label="capture_yuv\n/dev/video1", shape=box, style=filled, fillcolor=yellow] + n0000000d [label="capture_raw\n/dev/video2", shape=box, style=filled, fillcolor=yellow] + n00000015 [label="{{ 0} | cdns_csi2rx.19800000.csi\n/dev/v4l-subdev1 | { 1 | 2 | 3 | 4}}", shape=Mrecord, style=filled, fillcolor=green] + n00000015:port1 -> n00000001:port0 [style=dashed] + n00000015:port1 -> n00000005 [style=dashed] + n0000001f [label="{{} | imx219 6-0010\n/dev/v4l-subdev2 | { 0}}", shape=Mrecord, style=filled, fillcolor=green] + n0000001f:port0 -> n00000015:port0 [style=bold] }