From patchwork Wed Apr 10 09:10:19 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changhuang Liang X-Patchwork-Id: 13623913 Received: from CHN02-BJS-obe.outbound.protection.partner.outlook.cn (mail-bjschn02on2137.outbound.protection.partner.outlook.cn [139.219.17.137]) (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 8655E15531A; Wed, 10 Apr 2024 09:10:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=139.219.17.137 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712740249; cv=fail; b=AEr+yu3UHJAePY0GYp7IeEPISTG4L72U9PsOZ1Hqs2NhiWNDaVIi3R3blc5W/IDvC1bDcur+3rMPEayqDQ/4oX8hbqQA1NYHFgLCKqs/CyAOAW5q3YCB7n9pc1cA8gpeOFT9Dzuag9XuPC4jaETx34nGGuD/tZqEOfeevgsbry8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712740249; c=relaxed/simple; bh=CqqxCtrLQtbi/NtYVqo/aRLEUFRaTLP/NSO5KRjOH6A=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=qLUqPadIK+XWfC9sNaIR93G+DaR/0HVjP9hJ/gmRanQQZqArIckmed3oDefPvPFr0ma17+TWspdkkLluBTRAD9k0iLrx+aGJ/2RViikfdy1ho1exQWcgOSTVglB8RAEpSK0AJ2/L3ct/UzjufJBZt0XjkcjDZtTsWnZ8l2XcWPM= 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.137 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=glOsXyVlNO5ea6WO5E1Ohs5CjYUSG2OSkPFrvrC2HAGNmVVY2H6AW3tpWv5RtNe9hoyn5TW0o5fA2CFc8o4ZlH8QNChkJslr1aHryYHvDwONJ60K/VqbpwwDFQG88PggGHu7CQfLhBsx62Rhc6op3tlNwYzPMiYeSBG6NIasHdn5Tf6VdVqXzKye8vO2m8bju6wjXC+Yhilbk7cLlCZhsCj0uSoM/LS6T2veCalDVLVGDR/ybeKpkfDQt2RbPUlxMwSvhraD5bTNTKWGOQ/bYdltaTPows2Koki/MskOAXFm92ic7JVR/sGdIVB+N5qbrXpREuvishfPLq5CxM+MHg== 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=e+swQDihLYIny+jQI9HdFv3ov7Y7dMrR2xj0C4Tan+4=; b=T4L4Num7SFTw9vKbY83L72t+sh/oKXH4IOvgAUjvMDU9R8TOUNtiaDvMm4WielmZ9zYOvgauQ0Gozsf3WJxwDAw63SCv2PBMsPKJoP6mLIa0orEtXx83UdMcmGsiALZoz/+hZa0mW8jnORyAuiwfWLbpto15e8R5QmTOunlwNpoOPKATUSICRGmz/eyxw1KCrUiDgszebxPR8qVubpiVtCZ2M2x8uB40gJKardbFGGOBy5DwaEPqyEA/tsH6zv6jj3tMZzENE47jqBqqozryglO6qKtfP0wzbmkrzuMgWz5m8tunwGRQvbNHJGDnbSOTw66rznwUrTgmgHtauKqWBA== 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 SHXPR01MB0896.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:1d::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Wed, 10 Apr 2024 09:10:35 +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%7]) with mapi id 15.20.7409.053; Wed, 10 Apr 2024 09:10:35 +0000 From: Changhuang Liang To: Mauro Carvalho Chehab , Greg Kroah-Hartman Cc: Hans Verkuil , Bryan O'Donoghue , Laurent Pinchart , Jack Zhu , Changhuang Liang , Dan Carpenter , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev Subject: [PATCH v2 1/8] staging: media: starfive: Get rid of current_fmt Date: Wed, 10 Apr 2024 02:10:19 -0700 Message-Id: <20240410091026.50272-2-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240410091026.50272-1-changhuang.liang@starfivetech.com> References: <20240410091026.50272-1-changhuang.liang@starfivetech.com> X-ClientProxiedBy: BJSPR01CA0005.CHNPR01.prod.partner.outlook.cn (2406:e500:c211:c::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_|SHXPR01MB0896:EE_ X-MS-Office365-Filtering-Correlation-Id: 35454e8b-b323-4e1d-6172-08dc593e14a3 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: F/lASc+fOYRxPeqpye3IkFDM4ofZvKKVYTmJ9416X7sY3TlxDsLIqri4wlrzNYJvtlS1l9OsJBOA+wpt5/zdO9/ZvJSrYL21abGdS/jS3lvqU8AJnco0tHYACRo0MJmcuxllEzmh5jqbUFYMEsw5jZMoO4IjrAmJgU0YTrHxEH9h/1PIFtnq4JyaZKj4YIOh9/VTDpvfuxJj3+Qa2C70DhtHhOXdW0W/vRK7LEHncoL73cnF0GVYBkwKLRzXivFciSelJ3gS8kpUVEGZ1JvdCF8Ep6Rs30oA3feqxr7EdaNgRg7U5EKvnC4z0cgBmBkUck200S0I8mncJbAZUr3NRpjopzih7Jr390JFi9MgzG/j7HjuMU2osUVQ7iidC+Wa2uBAJLYvtsO246qMTb4lnGxMaWdu3shasuebsbQ/h+1PBVOlJZkGBbNH9vtrh2Piv5zCcw4P9F8U0PD1CqummbEpA56EunRWqwz/IGtl3vgfBk0n3c7Pv7DuBI45i0tvD0Go91qymZ8TNy5BxdNwhC1SM2+U24H3EqvuCCWamiPOlFa2mS6BWP9jkpSc7o0x5nXPNybEVW9KH+EkFFXqRfUdqmcsVegCrOF6kCjoUhactgCbu6OhYO1w+jZIlsvP 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)(366007)(52116005)(1800799015)(38350700005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Ri0oQ1APEk/237/pAaaasF/3oteztwIIGWySEDDIow9GY7vebms2jKCn6QP9y8shjOCIsAUsOGRB3zGxDFFGefRcAwAJaGS1RZAKONn/whHbDiwYLh392OWNQeLOT2dfNjJoRpJmas1faIa4CEFmHg/sf9EDvZp3Mb92S+Ltf8N/HcbLX1+f4f2IiLnDjPlI/hQWfnxzSZ+oDUICUnVOzs1nzBRR6tsv0vUIv4VrK4vD7HqqCALcGXkzolzQhDiElK8VDG6k8AENm2LEYgso36PfJxAKRKDXfvzleUjLndKHE24ZHCtDu9YRY6WKvXST+Jsm+rBdVj7L3IpAjIMGIExycUEKcmJbDsmpQbY7bGgOQeHqT/jua2mCHalFv8EGyo+MPRgZQTwhOnhMs7XufJTIBGSIalU2e2ERDUjvHMs7fZiUTHTohvZJwh0lyvwn65HGn7asQcoUEGyG6iaqKt4c3gbIoaS78WQGAri7gaJpXY92r5CMkhcRlvgtmTpwWGCF8LiOzcxhjw4Q7ivHeYMYOutbfMnlwRAbgk0FrF+8vOc2M2fa4WWyewT+axfbZwEpuZRTOSL+Z0J3riuQ59PJR0k2zU/v8oub/LIUk+9Mv8tIr4D4vMRHSJeLWTnWcaDeib+VinT55PilwSz86o2v/iNr7k3ukVctfIkIqmj9HL+sHTDq+t410Z7VN3sn4IZnbXD6RpC3MdrKdgXzVPsQTxmBTcgBJcrv9gEoRMC6G12kMgSQdjzPWc6KyiJ1YfHP2KIEL7ysL7Sus4X7V8ExoKSBC0HC1meo0DqGdPWY/cCxb3/Lbfa8gEEi/qVS568pHy56BHv5MPaK8fHwT7Epqv+LURWPK0q8vssU1qDqckLMd+4AIql2eio5F5OMOBhhULN+dtp4pVPxRGg+1ZHWtwZuESqTbV8FzwHYQRfaNrz/b8yUuGGE5aUKo9fPt5J7T3P9tgqBefCTY1edXo88agIVttD+670nO5Xv9cz6+bxmgtfQ3ZFbORmGZwVJeIA+0ycT6MIgfn/jUXK8nsIRq8DNy0X29D4y1T1bZJK0lTAtJlu4p8QTcROOfgc6yDcucb4kmqHjqh/y4tXiHGBXLWO10CvBf8YQBDYpD/UgdqYXZvYLY+SzKfZ1gL2tRU0UAiek5ORaQ8Jy7/zAaQoaURO8+CQBgnl+h/Ciz9ra/D5kZKqetkhkY5s+DKg4D6Etlt9yBNM/LnbraoKcl1u14LdwMDP+/2GtNJZSCxZfgXLcgRy6xeiH5PbdF7ODzfvk7sVbIVixeo6hW3W/bz62MHM28SfavHkA/bUxmNTly9ITTJ62dj1V84Int7gNP18EZ8ERqrhOTY0fPdZ3E1RTHrIqPTJD3uUyfV90MreTQLPpBVV5gbbZwXCixsrQP2BheJUT47JebpBl//CH7BT3vaqFUJ5IVPgenS4WIflcV9jogyrPyjDNtkedS4qlwS2RgK5fedpJhxczvKD0fnk1D8YxV9CLI0vFqgvkZVqFFC9Dd8OL7h3d5oPTXmDzbuDtym73Gma3HOP/cGOKXeKVq7UEJU3XX2wuY12iUYJPYTgUwBrQmBdNKRZl8BLQZr1MnmhF/Mc+BZAi8N5N5jcSYccv0uuimxgamTauiI8= X-OriginatorOrg: starfivetech.com X-MS-Exchange-CrossTenant-Network-Message-Id: 35454e8b-b323-4e1d-6172-08dc593e14a3 X-MS-Exchange-CrossTenant-AuthSource: SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2024 09:10:35.0194 (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: hu6O94uwzK0xr+gj0QuEusHcv+WSVIT+O8xcjRTvBkRJDYRrXgDbHDvFlFOO2i3JYRnN1fj7ZHZBqLup1CoRYVomWVLcbb5mS0o9JLXiVus8sLq/svRfw2E9znQfOdKG X-MS-Exchange-Transport-CrossTenantHeadersStamped: SHXPR01MB0896 We want to support multiple formats so saving one "current_fmt" doesn't work. This was only used to set the ISP_REG_STRIDE so use the sd_state directly for that and delete the ->current_fmt pointer. No functional change. 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 84716c809ab1..44ac472d9dc3 100644 --- a/drivers/staging/media/starfive/camss/stf-isp-hw-ops.c +++ b/drivers/staging/media/starfive/camss/stf-isp-hw-ops.c @@ -387,7 +387,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); @@ -399,9 +398,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 0cbd23069ac6..d961e06d9f7a 100644 --- a/drivers/staging/media/starfive/camss/stf-isp.c +++ b/drivers/staging/media/starfive/camss/stf-isp.c @@ -53,6 +53,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; @@ -60,7 +73,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; } @@ -68,15 +80,22 @@ int stf_isp_init(struct stfcamss *stfcamss) void stf_isp_stream_on(struct stf_isp_dev *isp_dev, struct v4l2_subdev_state *sd_state) { - struct v4l2_mbus_framefmt *fmt; + const struct stf_isp_format_table *fmt_t_src; + struct v4l2_mbus_framefmt *fmt, *fmt_src; struct v4l2_rect *crop; + int src; + 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); 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); } @@ -181,9 +200,6 @@ static int isp_set_format(struct v4l2_subdev *sd, if (fmt->pad == STF_ISP_PAD_SRC_SCD || fmt->pad == STF_ISP_PAD_SINK_PARAMS) return 0; - 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 cad202d9ce6d..3eade22c669e 100644 --- a/drivers/staging/media/starfive/camss/stf-isp.h +++ b/drivers/staging/media/starfive/camss/stf-isp.h @@ -574,7 +574,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); @@ -584,6 +583,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_stream_on(struct stf_isp_dev *isp_dev, struct v4l2_subdev_state *sd_state); +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 Apr 10 09:10:20 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changhuang Liang X-Patchwork-Id: 13623915 Received: from CHN02-BJS-obe.outbound.protection.partner.outlook.cn (mail-bjschn02on2137.outbound.protection.partner.outlook.cn [139.219.17.137]) (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 2A529155A21; Wed, 10 Apr 2024 09:10:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=139.219.17.137 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712740252; cv=fail; b=DuSn2aq1yhnqdE1iss6wbhAVX/PeMi+pCu8VGNCe1OrMz4vFatM53hh3UX8RhnGnoPdRYkILrZd0WbS3/KO0vWsWplRKBsbVo3QuQDag1lm3ufaaBhPFILiZaCbRTA4mBQLac6A+Ms6+2GSHKwu6+F67lI3MDvW07oVAcrtch9o= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712740252; c=relaxed/simple; bh=u3jNxEuaz46SNF6p48mEc6rsp6RXql7AqFodWTSDQDU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=ETU05MOfg1mEINMeKB0HklSPjb0SDc23uxi7WCHe/9+SgGZ2phe3MXCYvGbIw3aVm7dzNWGB2LA4XDRNC+RCTPSng9r69iXMdc6ifhnfNl81r5MFNm5MxG8CNsPcH9+pm+cctRZpEsH18Hhom4G9lkpbUgoS8oKzDl9AYhoZZlE= 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.137 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=dbrb7lpE3o9B3jE0Dh1/B84xxnC/l1MrkO5m466aqSaCxPstzVset6tW2VQqop5+pxXgQ+O0z4CWDDL3q9iGAvMtWLV7ztetWR8yeWfHBjxCSzURCJBuNQZxKrWGgiQlDrlXsvLRYjCHXSsK0A4TSFcuBletOuY8JeUxjk70gmIYpv0IEU8Hpo4qaTyw5eeaebhMzT6F+AZgfOa9iRL03rNfrp7BcFMk0ZkzibR28obdTS73JnGpBq/zzRq13OD+zb+8DcEo7Xw639gJdYyhYYpDBEEQLbktlc9aQK6QsgkeRcjGogvfNKKv8BpzmNZ1UY8qicTpazaDYPkX5xLm/Q== 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=Lha8EdwMlIkAnTA0bgsSPh1gSFQZdpXXx2W7oiC70kg=; b=PpKzTCxS9MwIaXlq5+RRQ+NHSvetwKG9f3ujc96YfUbJQM4tW/YJhekOpujHJfY4kJZ36zW6Y5W0Zr2WEJSHK0fe/fexunnZWKmkpDA2nrDPIkfo0FYjRApoI1XNObCCBOyKEE5tX2j7SmY5ZpBKc5+ywvFSfqOJxkjvZj1EPjdRpguHvvYvbzg7b5h/1zzcDJJNh94iUjQVxgf8eVgFD9DabWP/U1lMbBRE7CjOQaMKNtv0tBxBWdtlAPTJDHB4pf+tKcuRPGnQdPthQYlJDyN5mb+W9hYKOhmdc0ASXty4aR7kigd4ZlLMBMfaoPtRPK9xVk1G9dvQaJ4zi+E5tg== 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 SHXPR01MB0896.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:1d::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Wed, 10 Apr 2024 09:10:36 +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%7]) with mapi id 15.20.7409.053; Wed, 10 Apr 2024 09:10:36 +0000 From: Changhuang Liang To: Mauro Carvalho Chehab , Greg Kroah-Hartman Cc: Hans Verkuil , Bryan O'Donoghue , Laurent Pinchart , Jack Zhu , Changhuang Liang , Dan Carpenter , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev Subject: [PATCH v2 2/8] staging: media: starfive: Add bayer pad for ISP Date: Wed, 10 Apr 2024 02:10:20 -0700 Message-Id: <20240410091026.50272-3-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240410091026.50272-1-changhuang.liang@starfivetech.com> References: <20240410091026.50272-1-changhuang.liang@starfivetech.com> X-ClientProxiedBy: BJSPR01CA0005.CHNPR01.prod.partner.outlook.cn (2406:e500:c211:c::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_|SHXPR01MB0896:EE_ X-MS-Office365-Filtering-Correlation-Id: f191cd38-1f12-4cd0-72d0-08dc593e1557 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: V/yILe0shyKKu1GTuPTxLgn6E3prSqKsYtAAPoHzSrb5PNhrrREdDqCt32cO8UtiweEOpUxtWSwoHWtaFfX+sjNiVF969ni/IbR2fa2MbRBpt0uNxwH1c1EaZP+nXT4fO9oKm0xgPQGwiZvx/WJFFuPp8/55T6ht3GakknCArmkJQQqq12LX6yPLCV5UJucWpUdjfPcAWfbsYt6Iaw3SPTDrOyV7/Ee6t9+omWVfpIEvhL1Z06xEs/bgpKKGvvfS3r82G6pqnLT5vmcEZoHHqKpagmNcaXtKx4ssZiEFrbpVrRb0ejsSm9HHC7BUCRPBORPo3mPE1X3EwTV/YSRs5WOv4cdhW+uzQW7s36OyRBlCTmYPRKzanwR6rHO+O7UAmlMmSwbqOHZFEew/asa8ZVmvZ4YP+ShGN2fHGphD+cml60dlAULhnSZeeZqcGoTt5fuxLyBASkbDNVDxJt4/IF+XTFley8IscPxVyZOou22yjPkM/bwb+OCPRbXSyOThsPkJx+O7Rd2l+UXYwzuIZjo99xvHKkQfl5sCg9DJ0WqsyTLPumo+qv65y9DWKXxCTRn4MJsJAZCt8Dwo4KuYcO8RnZtQe2k2KMsckwjE5bb9AmOborjh0gdGEOSHYK8/ 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)(366007)(52116005)(1800799015)(38350700005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: wJXWySZ6Bx7Lmpgz9SVGst2MOvKheoc1bQYpAeD6NvKpP8f2eW/9GK0ssG35r2A0ZrQoE3roSki/flKgmpoCb3/HbNRGAYfRPr02qobz+PuGW45yVvXAT80Z0n/MiR7dPWbBtlH9jXZGDvM+PXC5MnxaQFh8uU0bQiWByPd0n4gp4ijv5IpB/qF4XAgum09XIQvqv31Q2YJg9aJC3GooeChMD13EaKTrBbIb7OA1SKluvFSWhFSS54SLNkTumUKI5e2QXtdPogFPOAqVK39OYQ+pp1xHer7ftDpBFrFVdyyhpRzsVgU6VNDYKkZoXPUigjKlh6TXBqzyXbnjHpJtAwvrOXCbdQ8h41rI/oeVOAaUSgwPU4xWZw1hs8SBQTHfHTHSXcHJFFNpuP9koHnZP2OziJUnl6ZE3LFp/F2EFSY/R6RChGCryIwJzbf0VL9K350mB2A7hda6dfXSqvTVdJqaZ1ldre9sIKA6XQy+iVuKSXgrgmHa+qPUXsxkTsG0oyRSOMWO2LY8h2uAwyMlEp7SPTq2g60nLWF3Xzx2CnJoA5wn1hFsFjHrlMNnhcN8qqSTIBqi/G1i+GzOBqZl2m+kxAYSV1hvtS9+IJ9L7+2B7j6KkJSrsPXhV58NNKowvFa7X1Ow5xMnMIKqZrDIXb3eKKJ8nBj2lBBPt2YYvWg2+/mA059WlbbnJDgd1NBeuFUNMrIFxhgLuvDDXOKHUaCiF5tbp8QOvt/2pzCm78tCVFTQnI2iJB+3hNDXk62xw9ePdR5K+7R3Jqka9G2Nsr2IO86oPGQNH2mAD/RBmzcCme9n0SL/yeIh5ryG3TZZNnU2bKvlGrNdQ7H4AuTDnp8Nj0R2AhdCFZskV2PDJLsrmF+5sv/YKp2R0KJYjeDESuWpVRMHDbmaA5YWVUiYx1sxrC0Vy0z++/5X79gEHi0krMzq36jSjqNpbocQJlpW8zp2GLxQr1agxC5MjZok6udkcvLEJdEHKQzb8uyFKbvDVyxZuC/qRBv8XQAcXrPDafIiFVivulXRBe7sFDJtZxoF3dNt8bNqxfkWxjIW91uwMWjh7QhCHkxd4ts1FxDLgY+CNJaQ1+GuL4tF2PEC5UmCf9OGWJptaiCTI2HV0CHycsvr9EjBSRbQZaW3RWMbu0CxISpVp481AON2JddzpHnZYM+Yoe5NQ8sce9GRQEK2rdGE/xLnN5GSZ0iBgcy23ZNGynQxCvhDbjZWUfTuVvPI6dKb1kCj9RvEuD1iR9DHCbUMwnuB65XQOT3csKYlBW1cFYpG1kRYXiXqEIsv4bBkYSEw1e5xil7zGbIaqyc7IDiQ9Z/7rNKPCZihklmalYZyfhschFGhlawjPjETDYZhdW6n2tVKFTPIiWoW51CkYGeTovD5Sht82yNl/GgrUQGCQtxbecWFtVOWZwppX4pxiaO6q64NunLucg0XWgnw/Q4MwDuNvk0TLDpVnbR4R7qaub4bViqya433wg+KxxU8L545DfKZ5t68BMfS1dFGXYRYXaO7n6N3pU7TtGTNEiZ8obNy/O74T/zKTzr3MC/NnNan1rVqK0vxIvCFzxsqjF1L0t1T1L2LzzjBIowCs+SZIWX8Pw8T+HJhwq0Q4WxN0Cil/4ptOJa8Y83L6ws= X-OriginatorOrg: starfivetech.com X-MS-Exchange-CrossTenant-Network-Message-Id: f191cd38-1f12-4cd0-72d0-08dc593e1557 X-MS-Exchange-CrossTenant-AuthSource: SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2024 09:10:36.1602 (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: NTNhmcYuFvqPT/u6YYBH1sSvzkwkHrHzHSUlenlEeQEk53Fot/adLfnIKSxakDEwire1ELM0Ga9fwylKPiv+bsXYg/uxEAcTFGTT0XA96r0BS3UA3BEtMlOQ5SwGPU0A X-MS-Exchange-Transport-CrossTenantHeadersStamped: SHXPR01MB0896 Add bayer pad for ISP, it supported the output of the 12 bit per pixel bayer format. It actually convert the 10 bit per pixel input bayer format to the 12 bit per pixel format. Signed-off-by: Changhuang Liang --- drivers/staging/media/starfive/camss/stf-isp.c | 18 +++++++++++++++--- drivers/staging/media/starfive/camss/stf-isp.h | 1 + 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/drivers/staging/media/starfive/camss/stf-isp.c b/drivers/staging/media/starfive/camss/stf-isp.c index d961e06d9f7a..53b9cd2b49bd 100644 --- a/drivers/staging/media/starfive/camss/stf-isp.c +++ b/drivers/staging/media/starfive/camss/stf-isp.c @@ -29,6 +29,13 @@ 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_bayer[] = { + { 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 isp_formats_source_scd[] = { { MEDIA_BUS_FMT_METADATA_FIXED }, }; @@ -37,6 +44,7 @@ static const struct stf_isp_format_table isp_formats_st7110[] = { { isp_formats_sink, ARRAY_SIZE(isp_formats_sink) }, { isp_formats_sink_params, ARRAY_SIZE(isp_formats_sink_params) }, { isp_formats_source, ARRAY_SIZE(isp_formats_source) }, + { isp_formats_source_bayer, ARRAY_SIZE(isp_formats_source_bayer) }, { isp_formats_source_scd, ARRAY_SIZE(isp_formats_source_scd) }, }; @@ -311,8 +319,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_BAYER; + 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_BAYER)) { struct v4l2_subdev_format fmt = { 0 }; rect = v4l2_subdev_state_get_crop(state, sel->pad); @@ -324,7 +335,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); @@ -368,7 +379,7 @@ static int isp_init_formats(struct v4l2_subdev *sd, }; int ret; - /* Init for STF_ISP_PAD_SINK and STF_ISP_PAD_SRC pad */ + /* Init for STF_ISP_PAD_SINK, STF_ISP_PAD_SRC and STF_ISP_PAD_SRC_BAYER pad */ ret = isp_set_format(sd, sd_state, &format); if (ret < 0) return ret; @@ -422,6 +433,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_SINK_PARAMS].flags = MEDIA_PAD_FL_SINK; pads[STF_ISP_PAD_SRC].flags = MEDIA_PAD_FL_SOURCE; + pads[STF_ISP_PAD_SRC_BAYER].flags = MEDIA_PAD_FL_SOURCE; pads[STF_ISP_PAD_SRC_SCD].flags = MEDIA_PAD_FL_SOURCE; sd->entity.function = MEDIA_ENT_F_PROC_VIDEO_ISP; diff --git a/drivers/staging/media/starfive/camss/stf-isp.h b/drivers/staging/media/starfive/camss/stf-isp.h index 3eade22c669e..f63817b7a235 100644 --- a/drivers/staging/media/starfive/camss/stf-isp.h +++ b/drivers/staging/media/starfive/camss/stf-isp.h @@ -529,6 +529,7 @@ enum stf_isp_pad_id { STF_ISP_PAD_SINK = 0, STF_ISP_PAD_SINK_PARAMS, STF_ISP_PAD_SRC, + STF_ISP_PAD_SRC_BAYER, STF_ISP_PAD_SRC_SCD, STF_ISP_PAD_MAX }; From patchwork Wed Apr 10 09:10:21 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changhuang Liang X-Patchwork-Id: 13623917 Received: from CHN02-BJS-obe.outbound.protection.partner.outlook.cn (mail-bjschn02on2137.outbound.protection.partner.outlook.cn [139.219.17.137]) (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 91BD5158205; Wed, 10 Apr 2024 09:10:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=139.219.17.137 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712740255; cv=fail; b=qpG8Jm/0LaO2CB8/fcf42INJGUE7U6b0nrP+Fi9+j17jDeOG3fuCitCUPcYGwHkctx8Wo7wmpIdmUvOICRY7HFS/G5iI/wziSug96BPj/3CkJVKgYsYujbRy9z0iTTreVvaaSBF0pS5amnCt+4RZvxYubUOkaY4U61dbA7k4Nu0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712740255; c=relaxed/simple; bh=QwNIcie8y003rVK0M/6SDuLIb0MB2zsCcXh2HlyWAew=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=LANzq/G3zXjAZFahPCpRpsrBp/Hbh3Za0CTcJ1dPtxQh79hs/QZyNMmiUMQiWHR3ctlJua1KZHUkGzFjPRtHUgBr49iYpV0gX+rdYgDx9YhBMXC2XElZL6I8vwmFau+KHrnnaqkbjdbNPWHAcyPeKUrVKzyo8STezizg8I82eL0= 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.137 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=b+0RriMm4LYQ2wia/c0xTxt0IidUki4YkG1lvSS3DaPp4Jr/w8CXAs/AEaC7kQgVIigjmokAA+ZrzP0zNwDySCWcgmJqQSgeYGr3iS298p10ZvVduTO8Cw+6gf0QhFwNojku4Zgj5mv+hJHuslpOwjFrXZdiTB6qeDetdGDDOJQXXPOLil2q5uBN0k/Ixk30guQcxm3eKXZ/wdMGITCEJ1riDRvAd/Ij/QkYyt6cqbew1nvf2fha6PfI/fflzk36niJ5BpXIJi5peVIBUAvnUZyzfSqT3CKltpLduRZ31JhworijDPocpdsWAvcPCbFFb6ctjihX9FIDFnvFbBYyWg== 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=kg1wkwTfT5QLJc7rtQVc8/DD0xn3hxgC/rwSI7tETd8=; b=VTwoEGMXhRHGZHsgDCjM6zwOFlbTC9R78uIqzy4qiBuQbchCllucJhbYKLXEyx9iq6gdJ4Bzm0UK5lIpbSWsDV3hGNZDSaeG3uO9pOjZAnTpQ1iFs/HvrFLJQU1Qhk0l3QyUGZnC4Q41SYFTjwPOZxc7O14LzEyBz/KFWU1YHD006u3IYvzb2/flWwl7lnWOT03JiSLgdYlC9LONghcD7NBFbyZyhlk6QxB/c8AuWVYQCz69w9RgxGvLRfAFGv2gW1HUESEYV/VW2MBIHo+XyL81/ueUZwjNLjXxLJRy3i6u84UJeWEXIaxuKgpoHYKmva0Z+iCq3dTEKImz1SViEw== 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 SHXPR01MB0896.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:1d::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Wed, 10 Apr 2024 09:10:37 +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%7]) with mapi id 15.20.7409.053; Wed, 10 Apr 2024 09:10:37 +0000 From: Changhuang Liang To: Mauro Carvalho Chehab , Greg Kroah-Hartman Cc: Hans Verkuil , Bryan O'Donoghue , Laurent Pinchart , Jack Zhu , Changhuang Liang , Dan Carpenter , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev Subject: [PATCH v2 3/8] staging: media: starfive: Use PAD_SINK instead of PAD_SRC for crop Date: Wed, 10 Apr 2024 02:10:21 -0700 Message-Id: <20240410091026.50272-4-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240410091026.50272-1-changhuang.liang@starfivetech.com> References: <20240410091026.50272-1-changhuang.liang@starfivetech.com> X-ClientProxiedBy: BJSPR01CA0005.CHNPR01.prod.partner.outlook.cn (2406:e500:c211:c::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_|SHXPR01MB0896:EE_ X-MS-Office365-Filtering-Correlation-Id: 9d076f08-7f77-4ed4-6181-08dc593e1616 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: a1BDsJi+qgO2b9KstyAt0iV3J7DPANT1+vCjjo2MU4zlMKPuUkDQkmfG+a53j4U6vmKh/hdy82FmpYghCRcxgOLWqpoGFXERNr9HdPeetePAg+GlP8PZ/bsNgbDVp2ywAhXt/vFs1svGq9F60YTGYllozRfioMklUCHCbn2Q7dAxrtAeFWIbT2Xv8b2yhUX/6VeG385lc12RKi/n0hfT+LIK2wOWhyBushWIYdbWr4UCRIVDe6C+W0gnG3+Y/mhgmBAPF54/lRX9oSvd/TY1sFlEUxJK1GblnzJIjKFIbb30GlAdWJUbgKF7ljtxlDzjgVLSHOd3+etGzlxz9y6ZzppXE+OsU+tVQXijIpya4J2CtQM4b1FTlXGaYN+2EIvzdQA9YDhuvYSeCj+vMyU2edziG7iT4yqKa5vFLf7STnC6U0QgpJjOZMwKy4S/GXziHW+Btya0uRdvK7hC0OOd6gO03vb3DFAXBzugOqSLZS1Qd7KG1DYjkq7XQDGFa0VmiWl3H5XyX2kWNrpTvysWwNrkIl6JGgU4UJ14CAuuwgHzadOfSWjsFfDxqBOwjiQN2gcQWhIuejRGbihMAl7qt17IhpCNHuzcqlAcKgnmbiOfXo/e1T/dFKs05+9pti+v 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)(366007)(52116005)(1800799015)(38350700005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: oPlf4wg1n7x+gqXxDXv7TlZVemhc8dUUbMdUiuuCbT0RRnCk1Mxem1Ulx3/lQFwe2NNyVvt9vXX69SidF2w/JGeYHlqs9rOiIqDQN+dYdcNfS1/7ckOlDxPCXSgUiIPngp95qsH/h9P/7cRQ1cY4KxEksk/QB/qMOQecHtw2t2vPH568RYsjgOkryPvNTmABFC/5JTqMCjQQHNoEW89+SSDKh+mnak1Gh0ZqjZJIybUVnR4cI6tGjqkbFbxBsAmoGyzV02sTtOLcpID1E6xcI+i7UPVL3CpVzmpNYDqQVSl0OTUaXeO5k5a+LHtIQXBKxqI+tvqTCyOFvzTZOmYaWpNMwbUQBZFUXA65jwVme0H7GTAralySKGOn3luGbK++aNNNjNDA14B4USSzjL1Ha29yE959+rJq5vveEbwGiA1RJjoce2q5B4MvvTW/brofQgy0IMiYgwpRyL5LJa61HaEJRL+KrcLmWjr74ZCnMmYppZ4ZklNECHEaXLIMYs8t/xflXVMiFks8Dy5tZGk+GJiX4zBjd6lS+q6DouTs30oFMNhhSPIHxdMkndUYxcmZNTwXzDKGzNWMFGEyuzrpnq93bnWzysz4hq64i5ihEEHmbhtgj8p2Luly94ElHOHVoZnKCGFRcdoyvzeaAmsBJpKcXRvmSEhR9mnkXM0tBsVgEkNCplDwyldA0V7zYsz1OBGkG4qucpDITj91XwOQzc8bv8G7qt/EsLmaRCRUIleI8wtENrRDBN86DP1jW6tXpNcMj+qNHW62hKakgxUOCPVnMqXxH4LLvJh/2BnlC9mGcEYgI0xXQGBTOw15k/FzXPtr+02IMPhCS2OgANVSKexAc5j4BAJzCW7oisTES6/udK8ZbYSnIevrCDN/4Yn8Lnw3euQ0GvgvHjY09JO7i0WP9svCDHWnVAG60doxWTxjGAHqdIlh5LGgNWB/7akv20VFijO4671UxQ49BlpJdmXVHQDaJ0fwnIY8V2e3C+EFMy/hiu5OvBs83Minu/HGZ2l2xaH6PwVKkrxkLpQmGq5WgJ2As4x62TGsDX424Mi9MiToa2igvfhcaIQ2KlmXiFsL5P2TERWg9M37R6gfM+UHvBl2R2zzVuXgqpQWclilsoSdstX2eW6dBiCoHXcrNdwKGSns8ifsTLnd2sXQ+Gp0TFbqrW7Cc6joidUi617iM70AJs6SLhcJdJWZIzIH1U76D7LfcH+HyUU74YwpcW0PwBTI3upWSx0bkXQvtMtcztkb8gp+vRBrupLSu5f6ABrQj+3nOJFgnxIqwFMLZouW27khMInIVBhLeo/gbh+0yQynwyCPHztKShOY6/m4odok8/oFpbQfYywQUgCNJst742tXjSlUhUEQoM+DrAcK8dEL7lyTWc5UG2kdoaZ36m3xzBljbzxsgCJWbho/33QPSPGnBHwVFcUTAYupBPYC7NB4oBvCLLkJzCFDqjotcEXEjgV6knYT7GcSgDQyNHLd7sNbJcKjWNh5SS1sJtYbBNQR1YMSXtbcccdoFKooweY9MrB9+9ezb41P/+1prrMm4WefCKPfyeIDtlDMbW9Ppb7SwvpwmZa1el+RM852Rt4iCEL5CuP7TgX2vWAz0JzqCstJ9tJ5/0dq8xcYfWk= X-OriginatorOrg: starfivetech.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9d076f08-7f77-4ed4-6181-08dc593e1616 X-MS-Exchange-CrossTenant-AuthSource: SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2024 09:10:37.4601 (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: +irkoBohEaqZZfRpeq438kPh5SrZiH1HqkDNQ/D5eFhVNR+0SwuVw14A+TfUB7huIxeRYQUyW2o8NaXGCkdOrJMHdtOn5megLMNWV+10TBAmsocLnUvjCnAH5fu6hw48 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SHXPR01MB0896 PAD_SINK crop can be applied to all of the PAD_SRC crop. StarFive ISP supports multiple ouitput streams, this can avoid getting the crop for each PAD_SRC. 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 53b9cd2b49bd..fb48e7a29e8c 100644 --- a/drivers/staging/media/starfive/camss/stf-isp.c +++ b/drivers/staging/media/starfive/camss/stf-isp.c @@ -96,7 +96,7 @@ void stf_isp_stream_on(struct stf_isp_dev *isp_dev, 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); stf_isp_reset(isp_dev); From patchwork Wed Apr 10 09:10:22 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changhuang Liang X-Patchwork-Id: 13623912 Received: from CHN02-SH0-obe.outbound.protection.partner.outlook.cn (mail-sh0chn02on2130.outbound.protection.partner.outlook.cn [139.219.146.130]) (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 8980D15531C; Wed, 10 Apr 2024 09:10:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=139.219.146.130 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712740249; cv=fail; b=XOwcf+u9D1DOrlJv8fyeXDb9wwfpHmBy7HkumDeC4Gx14yeonv8Ogv26I33NTLoJnOwDXELDGML+4V5r8Bg/ACrhY9OHXgBZ7+z4k/RDJ+eCoPFBe+q+zb8lxvnh3kmtQbtn+NYTHN6OsSCfzj73Hf/yQc7Ev6i0nq2Hx8LdBVE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712740249; c=relaxed/simple; bh=OwdQ/LorckZcXWrjDDOl9kFQdK8dnOiSzf2Gi5uTgC0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=ufiYOBfBrLEXEmNNBQe9O7gpuyz/62xekYrw+IJ1jw/9mGogQuzT3W38T/cDyAcTB3hW4vZ1tp+P9lia3m+jSE2lTh98hmFEQYrcE0cCF6Nl0iyvJ2HwjyJzZKrMOHZwKQrScBwezZSQiXNyJ6SNiO43jFVeMA5oerfxfjU6WDI= 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.146.130 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=UJFSLhF4/Dcru+8D/Qisxhdh8QvVtbauXE+IE77D+8Qko5/LijKkSGTwQGAGORm5Myd/1cIAv7NZ9Mfb47YtM3EQGDraW3Fl4Y45ULtn/EDFLyqhV5+3K9D78XAI18cmueP0MhOGQpLzpkDQ9HJD7+8/KAmXI/DtXufC0zRMKRvaAr3rr/FoW3bv86b7N/yqanEAZDxBP4+U5PZ2fxWjICNObSEj7A5IjebyXbM2EPr32C/K04kM5q2xmnvTrBT5FKZQCriLN12z4VujNEBC9jjEcgtwIGLRNOOaoBQUZtOsw4FqvPTuj6ly1V2Komr1ft2crXrLeXqbxKuGSI+JyA== 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=dyxB5oFw3XUgR3h6xDMF8CC/wX6qkIn8P0CFG0mBuYw=; b=MhhvVoRNlkUmc7nOoX+hSLcpDHjl4U1nOSBFbr9dNrIiKQOrgotsFCA8i0avV16OV1DFFGVQGe3gT1nWB679qEF22ZdDSSY+/QJVRC7IcMQi2YwwFmdbwXXIRz4HOzuTaNdynXbBdTd/1nlxpRGccIEDGhl2NK45xrVDF8pJhmYKbQ0kVupI5DybRS/0gkBHdpTogtSCSpWFjYkChwPPmpO2oVkmpGzpIDWipvjNxw4bdRaSrhWvDefKHGSgFdDInbsM0uTuK4FJPbbnSV8k8kg5DStN7vc3wTAPJaxOqgv2hk7+vSyaAcB/CvpkDQlzMOBk+v3eYmF/ZSqvwK193g== 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 SHXPR01MB0461.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:1c::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Wed, 10 Apr 2024 09:10:38 +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%7]) with mapi id 15.20.7409.053; Wed, 10 Apr 2024 09:10:38 +0000 From: Changhuang Liang To: Mauro Carvalho Chehab , Greg Kroah-Hartman Cc: Hans Verkuil , Bryan O'Donoghue , Laurent Pinchart , Jack Zhu , Changhuang Liang , Dan Carpenter , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev Subject: [PATCH v2 4/8] staging: media: starfive: Introduce isp_stream Date: Wed, 10 Apr 2024 02:10:22 -0700 Message-Id: <20240410091026.50272-5-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240410091026.50272-1-changhuang.liang@starfivetech.com> References: <20240410091026.50272-1-changhuang.liang@starfivetech.com> X-ClientProxiedBy: BJSPR01CA0005.CHNPR01.prod.partner.outlook.cn (2406:e500:c211:c::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_|SHXPR01MB0461:EE_ X-MS-Office365-Filtering-Correlation-Id: ce8b0b6c-0e33-4b97-5119-08dc593e16c3 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WX/XYEzqzz2TUIjN3akmi1UYpoAIySgqNVO9/X3PzAtMXRUQ94zgmz8ZaYWU8j88uEAbjaIqd6mxXXSJFrmAhlF0NruicH55il+5nondLGTTpMrNeKOYwV0rKJ4mT/2nEA4ECZPOgXlZHnLT+1jefo74m1ZIj3zJ6Fsi3F7eRvw+BIhHaP7dOStljBow3X7rvTR5vPend88zK/OCdRhgGzmiuz4qq84A3hYbFkfXbI8YPLLi3thGXiK6A3PA6elZ6OrXqf+OKTQOHdFxkcvsimxEJDZV6pHNA155NheDTcF7ojtZWMTuujXhBi3K3bB9eZxGpkCltPMgAr31zwc0wB9LF4/65oLuR1BhY1fxpu44+XsYfv5o9nM2qE3+ZaG5VjeyV4yrwRj/l6pBMMAgpol80jYR1pYg9s+p64MyZrq53TbmzBga6ImgJA/DZ0flJbKXRL7xOE7NZTbynaPdIwo2IQCPrK/Ld97HcMteP5UAddr9Vy3Da2VlO+TMZJ1kuTH8shur1mMlpU1t4FrstAWmuc6kHlMNeGc01MPPltr+Rk6jpE31Is2BWwTaRzisGbsVgL0CyPIHxTU7xkR1+b6H/L+cynZlVhT7bEq+qCqH2YwAyowBE2E96yoOEDlH 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)(52116005)(1800799015)(366007)(38350700005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: SUU9J57OgfoR1qqQh1lNsB0K5FGgiPFcECsjQy5qx0JfGJYmo1Uuq/8IjiI69025iLn6jH9jFPxd/vghzYE/uP1PwX+7Vo0tXhsrspq3LOgjZHCJm7EhuzchTJZSbpq+ibkxnX6Y5yk4avC2xdzNLAwV/nNFOCFLrSCw5UMrlXnVSD5aGTfX8Js1mfG3YH/NT3OfRg06K/sE/2lV0CqEnbQ5q/5gGfu+AG1E9AKQzNKw2pcGR/sIzPuw6SRYcumhTWZU/jxjD6BYnA+PpVtxgZ3U5wqSwtx63FYpF/eIHxfMdUbAUkEbQRgwvKskZTlCQigXHEi4giZmYv2W25mS0u8jNP+FDnrkDD3SIJiYpH5VutyIoGny86jfbbXXQZWS/jpsOx9MiREdCpAigq1xRxZCoGn69lHjwa5jFM14A2RQqEHtW7+ilUDO6lRKxdapU3MqYZoMwTomG1W3ICICevwF3nMyhjbeoxC/vy4JqYpfxq2GcTBVV5lZeP29IvlTDzfngSiDZVXeSmR3AuCvwss3HkPEaScEjm3LDgt2dA8atnXHvpZcxAO8NBW0ngGA7qYMjBIxS4epCDa7XxUvnP+hfRUBB8coIHA17n6Ct0fExp3HU5LiFg/ewZdj1IcklD1iGgUNvutRxZKVeS51la7EjuaiFZ46+RXx12ht70SioS6aMt05p8kThgOFsRDsuX8r3sbf6WhMyLFWjqEa4kgXQ0fUJC6AMEn+T4ayjGr6c12Ck6ls8qEuSbfSBTtuBjspyYGmMpGkY/ESBFxdP+oJ4gFkSOrhGmznAJLzlJRmPvaJdFHoMVljkxT1zrIUGqOtdrlt4DSj0tQAJWwk300OrgHVnaZjKpld3/eJpQ8BuZNXKVEYWPygHh/OddLuPK+1E3vHkcgLRYpLuq54QWC/O2q3/ayyqwvStyRiJ0v+jypx0kxBDQI+SlYczR7jFTg1pd0QvrbPyw1r5ZcRt+GvgOh/+61hgMpmDo0ZsvwRIJGVA6HRcTzoCOw/FK5I/tBHiGlwbTnLCD/cEfDCaxFISPwnEexxRQL02ZToXKIHKg3d/35KxqwippqK6+ewgIrmoHK2XPC0lf6K3QRX6tDFRco2kfN5UmwytQaQjcbkyL+EabJ0GsyuQ3UDrnOMupZMjd2hGdUxilVDt1ZhLefKTFOKVC77csyf4BOP5pUwz2xUHyFq4v/cbVAMljO5/EO0YtgJVaBAmsd/fVBmjs2l7DqhImBXTuQLdTP4C1iNUzOpcpRDl+AdvYosiFSYB/2BakFRD+DGyX+WF9p6Ayn1OwRdXXonBNT9szmh/0+80cs1nFkO8x5Z/ThzP9mN8mK/IVJ/3JxjEb7Q/D0KQ7P67tY7b1p7/ehLl96bgya8ndRzaDA6O+HYSdylGcx8+zvcH2q/RF+pk6TMylTaRH7ZpK7oBk0+TOmycPPWP8DIw3afCoRrycaKHjuWuJQDGyddKsW7d6sRFRMnkbmS6EAFFzKzTn+OJIsEJwBh2s7RwH/BqwV0HzEhT3tVsjnotV8fJEIMYGgw287Jn32uZOcqrOfuG2huZvZJTnPkRnnALoxMLU3pn68Gjt5+8SGU23r30p6hxRAIAN0vXU8PSQ5vhYC2fKnt4bYV5icHUKM= X-OriginatorOrg: starfivetech.com X-MS-Exchange-CrossTenant-Network-Message-Id: ce8b0b6c-0e33-4b97-5119-08dc593e16c3 X-MS-Exchange-CrossTenant-AuthSource: SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2024 09:10:38.6084 (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: 4udbzkIUT4NxB3LjLDTbE6f/+g48+UgkNScMrtIC3dcOTyxNya7qffOmaZunU9Bd1B6AA52yt7lsr/flguIlg9J1eXKUYWDKZiSH2zPaNoT99B3sMd+Fdi/dPu2a/wk4 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SHXPR01MB0461 The ISP can support multiple output streams. Introduce isp_stream to store the number of streams. Signed-off-by: Changhuang Liang --- .../staging/media/starfive/camss/stf-camss.h | 1 + .../staging/media/starfive/camss/stf-video.c | 28 +++++++++++++++---- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/drivers/staging/media/starfive/camss/stf-camss.h b/drivers/staging/media/starfive/camss/stf-camss.h index 328318d61c6b..6b9215c92cfa 100644 --- a/drivers/staging/media/starfive/camss/stf-camss.h +++ b/drivers/staging/media/starfive/camss/stf-camss.h @@ -55,6 +55,7 @@ struct stfcamss { struct media_pipeline pipe; struct device *dev; struct stf_isp_dev isp_dev; + unsigned int isp_stream; struct stf_capture captures[STF_CAPTURE_NUM]; struct stf_output output; struct v4l2_async_notifier notifier; diff --git a/drivers/staging/media/starfive/camss/stf-video.c b/drivers/staging/media/starfive/camss/stf-video.c index 4ca889a7b757..69e3e4f9e56b 100644 --- a/drivers/staging/media/starfive/camss/stf-video.c +++ b/drivers/staging/media/starfive/camss/stf-video.c @@ -295,10 +295,22 @@ static int video_start_streaming(struct vb2_queue *q, unsigned int count) video->ops->start_streaming(video); - ret = v4l2_subdev_call(video->source_subdev, video, s_stream, true); - if (ret) { - dev_err(video->stfcamss->dev, "stream on failed\n"); - goto err_pm_put; + if (video->source_subdev != &video->stfcamss->isp_dev.subdev) { + ret = v4l2_subdev_call(video->source_subdev, video, s_stream, true); + if (ret) { + dev_err(video->stfcamss->dev, "stream on failed\n"); + goto err_pm_put; + } + } else { + if (!video->stfcamss->isp_stream) { + ret = v4l2_subdev_call(video->source_subdev, video, s_stream, true); + if (ret) { + dev_err(video->stfcamss->dev, "stream on failed\n"); + goto err_pm_put; + } + } + + video->stfcamss->isp_stream++; } return 0; @@ -319,7 +331,13 @@ static void video_stop_streaming(struct vb2_queue *q) video->ops->stop_streaming(video); - v4l2_subdev_call(video->source_subdev, video, s_stream, false); + if (video->source_subdev != &video->stfcamss->isp_dev.subdev) { + v4l2_subdev_call(video->source_subdev, video, s_stream, false); + } else { + video->stfcamss->isp_stream--; + if (!video->stfcamss->isp_stream) + v4l2_subdev_call(video->source_subdev, video, s_stream, false); + } pm_runtime_put(video->stfcamss->dev); From patchwork Wed Apr 10 09:10:23 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changhuang Liang X-Patchwork-Id: 13623914 Received: from CHN02-SH0-obe.outbound.protection.partner.outlook.cn (mail-sh0chn02on2130.outbound.protection.partner.outlook.cn [139.219.146.130]) (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 9DE541553B3; Wed, 10 Apr 2024 09:10:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=139.219.146.130 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712740251; cv=fail; b=GV+dWfPA/xIf+IVtd68/eKQTWzLaxV41GzEbRYkb79W/shOy2EinELUo3k+mWHeVNNCjsEvD6SE+ED8f1rSgYP/I+xO9TbS46b5wK37C+YfSdmEkuoGH2v5RIvgnpxyWnEg7f7emiwHaBQCpw71QExBIanrthaZHaK62/BXqrC4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712740251; c=relaxed/simple; bh=NqBbGW/gLbS9tCvNDnh1AswU17r18PeEK95VIz4eROk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=fEEAGZnJPT7Bet4VftTXpT9uoL6pRLyE6LXG/p6NJk7J6d4jrDgFEJHoFaozL8yeVpbs2y4Pha6zGkbQ0op0byRUHicP48uL3SDlDTrHtCpnjZmaUknrWFd/b30/sjXk76RKBox33y2ZLStEYbfEn71OVhJJT3IMLFAlpX43QNM= 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.146.130 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=knOPsDsZ2JkWBB9LZhHua721a8sjjFcwKk/FEJWx+BJUyAxuIvcz206wvo+nIzkPkwxwaSuRWAAVGJlrrxBRGjhjw8nFyzH5OVuIGkWEiqpng22YYMmKIp6kU2lY9fihfCk1SzHNSieVdbIZQBx2pda5+Gte0T4FZnw/BCYTehbqxVXqrv13i6rVfIDW9Z3SAOKklcQKgVkVjP3IjoBXUFytiUIYRNejirT06z2S4KIfF/KfgGYi/ijUpOaubS5TBAw+lZOsafvNPytTE/frAfa1ffUSWy8yauuABcVLHR9Zmy0NmAVp+WbWeeYVRS3zWwE1DC95LFyr2aiq1bMZjA== 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=0K3zM2ziE/HCUh0ogvNJJSvABDIyw/DTL7ZtmMK5kUc=; b=I7kNDX1pTGvCWJImcOqZFnDBVP2vwiAWw3vn4G3xb/35s2yVtyu8rRqHrf5X4IlrniS71jTxH2LlgbwB/kzTEzrQIx61HaeRJxY+Ttae3auTx2ml5V215ByNpL/adKci65XXAcgThFEM0vjOMPJb2YO4T+65c2UEwGkh5qjHPh2D+vTSndlSbzDpo67EV3fbvGUri0fQao85GOFdtTEXlgqd13Fg3c5pPInj70V/KaZ81efS0lSSpxTduqlQOL4K+Ah6a90jGkcVpgHWZym7/aSO4YBBGUEDLYe3VoaajtC43YGgcKI/D16SenJWIe16i6M/8hGHv8WiENUHzSpcLw== 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 SHXPR01MB0461.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:1c::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Wed, 10 Apr 2024 09:10:39 +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%7]) with mapi id 15.20.7409.053; Wed, 10 Apr 2024 09:10:39 +0000 From: Changhuang Liang To: Mauro Carvalho Chehab , Greg Kroah-Hartman Cc: Hans Verkuil , Bryan O'Donoghue , Laurent Pinchart , Jack Zhu , Changhuang Liang , Dan Carpenter , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev Subject: [PATCH v2 5/8] staging: media: starfive: Add ISP bayer video device Date: Wed, 10 Apr 2024 02:10:23 -0700 Message-Id: <20240410091026.50272-6-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240410091026.50272-1-changhuang.liang@starfivetech.com> References: <20240410091026.50272-1-changhuang.liang@starfivetech.com> X-ClientProxiedBy: BJSPR01CA0005.CHNPR01.prod.partner.outlook.cn (2406:e500:c211:c::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_|SHXPR01MB0461:EE_ X-MS-Office365-Filtering-Correlation-Id: cd2ce7d4-3e89-4ad4-9e0e-08dc593e1771 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: l2JRw7pyguxtKqTiYc/yIFl6IWy1owA3OvdsFiIGA2XVqlq6LnQobttRk1rXCoVerV+oGJi1ymSruws/ga/Rcv6I1tvMSEEL1vgxD4EeDVvNJBkwIiJ9enhSv5HGt6XswBtUZfBCYhYrzqDOBFz/MnRW/oY33FaUIqtgDec1h8ro+N8GJZikyi9rUPOD8M9VNq8lFV7FqcEb3Ln6iI0o3ioTPc4AH3uxBNUuhCY0fSbbN7NoIScsIo+EPxiBQUdKgOQaLKXo7G3PkmIPwkbb9gUgcAwfBy9fcqoHrq8/WLUugs1ot3iseOVjJ4Z8j/TIwMDlM+2EsN8ufDVvurY8dTlwOzBemxAC8Ng7I7XwC+s1+YuZnRe9hc6DHKzvrAH+rh3pT4GgPQRONYUCppXTlRU9VBNgIQXGpmplWvxg5eK91SroIJbZztdaq1VQYqegV5Sm9yF6V5Otvwg2zGKnPltDB3clkQrc5QE5N0qId4JL/9tsaFTtsusCzCn2pv8IhrW/ADZXKPU9iZ7+l3UPuKEiD/WlX0It2SGBhuPKqhEn0wh28U81qP1gOPzx33bCm8GXuEmSQ3i30w6I+4p1j2M61ETdSh6htgk+gOLSf8Nrwq6sBK8wbnJp5/C32jlu 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)(52116005)(1800799015)(366007)(38350700005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ZSPF2mIDhJGVgzKfZ87rzWFgMMjEMrGYVC7FLxAXw6d5VZdXLI8emtstxR3hEikVzIsr6xDyEcZN9NdvyIJQPrMFsDEgSds349SLthpyOwwHVV+2fI0SiGRpF0QRZ7TsA1ClHJKCRjKl+dZgz8B3lLZvbIlnc1ntMoD4imuUh9Bg1nFHqhbkOvr9zLGKVu3sCDk7C4mUQuGUNl+mJNL+WD+qjEK8gaCsbyI5bfaKQIcfFHcXAD62XDS/CYD2we3P2NQXHC6K1WoRuHmMerlBfXG7DMNA3fmCTCRbpY98aUD5uR1WtFVgP3Ki2V/K0jzj/gBWeqMwKoNM9h9FvwYAAecajwr8Xagr2ErtJpUdIvtxWc6g9jSUugx8t0JLfupfYJxH7QZDip60utkar33JgcnKCaeG86vn0S0G5wgOfiuSGkT9Y3+LKkmL0qx/iEU45ykVqKbEK7KsmQ9er7/bDP8Hd2YqFVjsd7pGI/GMJhpQDXhy+yaNOg6lr1P/kZi1p66vRsxprNujl2gU9JgBZVYjWPfN3COgw40qSLtvjmknKG4rUoCJoUTYHsveVB6ZMQ8+M86MIYZkZog2NxY8ALUNkUdMHumoQSnqS1PMxEviq5jpMXkSJONGXx3VMifTJPlnyeLtSj95TnpPS1IXyi/MXvbZ4m+d9H3ropqXlA+Ljp5qah0o3juHO6q1BhvlwvuBCMrNMUMViMDv6TCkhnVo/RMv4g/HGLaCWttTWM6MVd08C9vtWLvmx0BFINhQ+4MKb9ORXmHytPTXxEqtnzlUsxWOfaAx/2Op/SZum8RhO0SEEV3Sl+ZoayTS+1OX3BW9fngtw8J9publQ1DR2xKGz9fOe/ME7KPQOqMyBLkj4zzZlZK95oVKNi8q83/vQHrfRmivwhhhXCaivsuzBw+DYoejNdsiaNIAlxcFucQ08dqddn1ciuDDAQcvmDKlji7VDUGM89qMI5kVeTS7frBRBgZvj/HfopywSBR+kZrEias/Gsx3ksUSzE5XJUzxWs+pY9d0pM4hJ3pp3//OBk4hFaBOZDblD1fkhcwauCZPVBZ8Qlbt0dueC1p7s7ze4kZk72M8d8+juM30RHG5QVIx6G7CwFWkHKUVIfCOjusDCfxnkWSKPcGmPpZtPi8AT3icQVTlja609fS5OzSLFkl94rBQpKu2Vlmjek2OzBvYliyUOBjVS79yKFplMXsziMH+2feBEI+ZTrIXdVNfNeayz2d8H65tGt2fb/r8a8WRhzcw7sCchhE55VF2Rdmxf+FJ63OBopRXoe9E37iGABuLoD/OqAP3zWzMZLUT3VNweYpY15Yr7LGNxLqRr8cMwmdocwkUI/enrkLWHUag9hkeBDCHYJU3ih6pRZB4gU0ui5D09JHDFJjFnFJ8Xf7L1c0BFFjetDf4yPZ5mEVsFsUD6oxsmbOH9xVJxHoSaCpLQl4fAxReyr1H6EYEaODSYTZV8TllZtYzy/g3AIrckuMyOjxz5HuNBCyrFA4W4L/+TpxWDtrW7RW5H3ownSEJ1ltFIUARcT8Fyr5rSyiNuMv5mnuzcKhJkH2/kCWRQUzyW5TLccBXlPHfUGFl+saKHDCOBycbnWLzKRaMNBwtxtlMWb4tjxhMhvM/adsVkhM= X-OriginatorOrg: starfivetech.com X-MS-Exchange-CrossTenant-Network-Message-Id: cd2ce7d4-3e89-4ad4-9e0e-08dc593e1771 X-MS-Exchange-CrossTenant-AuthSource: SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2024 09:10:39.6868 (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: El9BSJDqTeP6+kzgO0wIQp1wZWjxe3D2P73ihtoET0E5mYA3RvYr8ZF6/+olMcg++tLXAE0nAnHwBrRnK6eotciW61GgOCbiliGEXqC/erJYWYH7yMBePkK2stbJsEii X-MS-Exchange-Transport-CrossTenantHeadersStamped: SHXPR01MB0461 Add bayer video device to capture bayer format data from ISP. Signed-off-by: Changhuang Liang --- .../staging/media/starfive/camss/stf-camss.c | 12 ++++++ .../media/starfive/camss/stf-capture.c | 41 +++++++++++++++++++ .../media/starfive/camss/stf-isp-hw-ops.c | 19 +++++++++ .../staging/media/starfive/camss/stf-isp.h | 1 + .../staging/media/starfive/camss/stf-video.h | 1 + 5 files changed, 74 insertions(+) diff --git a/drivers/staging/media/starfive/camss/stf-camss.c b/drivers/staging/media/starfive/camss/stf-camss.c index 62bf46a69a3e..b2f9892b7663 100644 --- a/drivers/staging/media/starfive/camss/stf-camss.c +++ b/drivers/staging/media/starfive/camss/stf-camss.c @@ -125,6 +125,7 @@ static int stfcamss_of_parse_ports(struct stfcamss *stfcamss) static int stfcamss_register_devs(struct stfcamss *stfcamss) { + struct stf_capture *cap_bayer = &stfcamss->captures[STF_CAPTURE_BAYER]; struct stf_capture *cap_yuv = &stfcamss->captures[STF_CAPTURE_YUV]; struct stf_capture *cap_scd = &stfcamss->captures[STF_CAPTURE_SCD]; struct stf_output *output = &stfcamss->output; @@ -172,8 +173,17 @@ static int stfcamss_register_devs(struct stfcamss *stfcamss) if (ret) goto err_rm_links1; + ret = media_create_pad_link(&isp_dev->subdev.entity, STF_ISP_PAD_SRC_BAYER, + &cap_bayer->video.vdev.entity, 0, 0); + if (ret) + goto err_rm_links2; + + cap_bayer->video.source_subdev = &isp_dev->subdev; + return ret; +err_rm_links2: + media_entity_remove_links(&output->video.vdev.entity); err_rm_links1: media_entity_remove_links(&cap_scd->video.vdev.entity); err_rm_links0: @@ -191,6 +201,7 @@ static int stfcamss_register_devs(struct stfcamss *stfcamss) static void stfcamss_unregister_devs(struct stfcamss *stfcamss) { + struct stf_capture *cap_bayer = &stfcamss->captures[STF_CAPTURE_BAYER]; struct stf_capture *cap_yuv = &stfcamss->captures[STF_CAPTURE_YUV]; struct stf_capture *cap_scd = &stfcamss->captures[STF_CAPTURE_SCD]; struct stf_output *output = &stfcamss->output; @@ -200,6 +211,7 @@ static void stfcamss_unregister_devs(struct stfcamss *stfcamss) media_entity_remove_links(&isp_dev->subdev.entity); media_entity_remove_links(&cap_yuv->video.vdev.entity); media_entity_remove_links(&cap_scd->video.vdev.entity); + media_entity_remove_links(&cap_bayer->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 328b8c6e351d..21a59259d7a0 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_raw", "capture_yuv", + "capture_bayer", "capture_scd", }; @@ -56,6 +57,37 @@ static const struct stfcamss_format_info stf_isp_fmts[] = { }, }; +static const struct stfcamss_format_info stf_isp_bayer_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, + }, +}; + /* 3A Statistics Collection Data */ static const struct stfcamss_format_info stf_isp_scd_fmts[] = { { @@ -93,6 +125,8 @@ static void stf_init_addrs(struct stfcamss_video *video) stf_set_raw_addr(video->stfcamss, addr0); else if (cap->type == STF_CAPTURE_YUV) stf_set_yuv_addr(video->stfcamss, addr0, addr1); + else if (cap->type == STF_CAPTURE_BAYER) + stf_set_bayer_addr(video->stfcamss, addr0); else stf_set_scd_addr(video->stfcamss, addr0, addr1, TYPE_AWB); } @@ -251,6 +285,11 @@ 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 if (cap->type == STF_CAPTURE_BAYER) { + cap->video.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + cap->video.formats = stf_isp_bayer_fmts; + cap->video.nformats = ARRAY_SIZE(stf_isp_bayer_fmts); + cap->video.bpl_alignment = 16 * 8; } else { cap->video.type = V4L2_BUF_TYPE_META_CAPTURE; cap->video.formats = stf_isp_scd_fmts; @@ -377,6 +416,7 @@ static void stf_capture_unregister_one(struct stf_capture *cap) void stf_capture_unregister(struct stfcamss *stfcamss) { + struct stf_capture *cap_bayer = &stfcamss->captures[STF_CAPTURE_BAYER]; struct stf_capture *cap_raw = &stfcamss->captures[STF_CAPTURE_RAW]; struct stf_capture *cap_yuv = &stfcamss->captures[STF_CAPTURE_YUV]; struct stf_capture *cap_scd = &stfcamss->captures[STF_CAPTURE_SCD]; @@ -384,6 +424,7 @@ void stf_capture_unregister(struct stfcamss *stfcamss) stf_capture_unregister_one(cap_raw); stf_capture_unregister_one(cap_yuv); stf_capture_unregister_one(cap_scd); + stf_capture_unregister_one(cap_bayer); } int stf_capture_register(struct stfcamss *stfcamss, 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 44ac472d9dc3..f170fab2bfb4 100644 --- a/drivers/staging/media/starfive/camss/stf-isp-hw-ops.c +++ b/drivers/staging/media/starfive/camss/stf-isp-hw-ops.c @@ -515,6 +515,11 @@ void stf_set_scd_addr(struct stfcamss *stfcamss, stf_isp_reg_write(stfcamss, ISP_REG_YHIST_CFG_4, yhist_addr); } +void stf_set_bayer_addr(struct stfcamss *stfcamss, dma_addr_t bayer_addr) +{ + stf_isp_reg_write(stfcamss, ISP_REG_DUMP_CFG_0, bayer_addr); +} + static void stf_isp_fill_yhist(struct stfcamss *stfcamss, void *vaddr) { struct jh7110_isp_sc_buffer *sc = (struct jh7110_isp_sc_buffer *)vaddr; @@ -596,6 +601,7 @@ static void stf_isp_set_params(struct stfcamss *stfcamss, void *vaddr) irqreturn_t stf_line_irq_handler(int irq, void *priv) { struct stfcamss *stfcamss = priv; + struct stf_capture *cap_bayer = &stfcamss->captures[STF_CAPTURE_BAYER]; struct stf_capture *cap = &stfcamss->captures[STF_CAPTURE_YUV]; struct stf_capture *cap_scd = &stfcamss->captures[STF_CAPTURE_SCD]; struct stfcamss_buffer *change_buf; @@ -623,6 +629,12 @@ irqreturn_t stf_line_irq_handler(int irq, void *priv) change_buf->addr[1], type_scd); } } + + if (value & CSI_DUMP_EN) { + change_buf = stf_change_buffer(&cap_bayer->buffers); + if (change_buf) + stf_set_bayer_addr(stfcamss, change_buf->addr[0]); + } } stf_isp_reg_set_bit(stfcamss, ISP_REG_CSIINTS, @@ -640,6 +652,7 @@ irqreturn_t stf_line_irq_handler(int irq, void *priv) irqreturn_t stf_isp_irq_handler(int irq, void *priv) { struct stfcamss *stfcamss = priv; + struct stf_capture *cap_bayer = &stfcamss->captures[STF_CAPTURE_BAYER]; struct stf_capture *cap = &stfcamss->captures[STF_CAPTURE_YUV]; struct stf_capture *cap_scd = &stfcamss->captures[STF_CAPTURE_SCD]; struct stf_output *output = &stfcamss->output; @@ -668,6 +681,12 @@ irqreturn_t stf_isp_irq_handler(int irq, void *priv) } } + if (status & ISPC_CSI) { + ready_buf = stf_buf_done(&cap_bayer->buffers); + if (ready_buf) + vb2_buffer_done(&ready_buf->vb.vb2_buf, VB2_BUF_STATE_DONE); + } + stf_isp_reg_write(stfcamss, ISP_REG_ISP_CTRL_0, (status & ~ISPC_INT_ALL_MASK) | ISPC_ISP | ISPC_CSI | ISPC_SC); diff --git a/drivers/staging/media/starfive/camss/stf-isp.h b/drivers/staging/media/starfive/camss/stf-isp.h index f63817b7a235..8505603bdbc5 100644 --- a/drivers/staging/media/starfive/camss/stf-isp.h +++ b/drivers/staging/media/starfive/camss/stf-isp.h @@ -592,6 +592,7 @@ int stf_isp_unregister(struct stf_isp_dev *isp_dev); void stf_set_yuv_addr(struct stfcamss *stfcamss, dma_addr_t y_addr, dma_addr_t uv_addr); +void stf_set_bayer_addr(struct stfcamss *stfcamss, dma_addr_t bayer_addr); void stf_set_scd_addr(struct stfcamss *stfcamss, dma_addr_t yhist_addr, dma_addr_t scd_addr, enum stf_isp_type_scd type_scd); diff --git a/drivers/staging/media/starfive/camss/stf-video.h b/drivers/staging/media/starfive/camss/stf-video.h index 53a1cf4e59b7..ea7ec92c3ff5 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_RAW = 0, STF_CAPTURE_YUV, + STF_CAPTURE_BAYER, STF_CAPTURE_SCD, STF_CAPTURE_NUM, }; From patchwork Wed Apr 10 09:10:24 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changhuang Liang X-Patchwork-Id: 13623916 Received: from CHN02-SH0-obe.outbound.protection.partner.outlook.cn (mail-sh0chn02on2130.outbound.protection.partner.outlook.cn [139.219.146.130]) (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 BD4D2156C78; Wed, 10 Apr 2024 09:10:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=139.219.146.130 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712740253; cv=fail; b=ADGWLZFCVPWdVSsGzlOtSHjPkH6i9aR1HiAY5Dc4EyTZYsvcOSmTAngIZ2PxsdJqh06ScVNX5KoL7QmpPMZNe2EMEnGRxVMmRHdSM97HfGMe6z2x2zUfdCzSBlS7MNMO3KjjulJOPKk8Cb0vxNyJXxDjL7PYG7l0ND7C8HaDGA4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712740253; c=relaxed/simple; bh=oWFKPBnibXbYMJQ17p/qCuiV0qxFSHAeic8KwJUShWo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=VhYMdcr7PYJfkK5ZsZMywfXUUZBqk8NW/elWcDojHqY+98/6tbW/NSYqP64XFLtxMn1qhpHv30aVAxkxgEgDDDowiifVDNi0YsFi7EcVmMZM5cKqyulol4CNHupICciFQGKYjRplT+Tqm0hCwv0lYc18Pd0/yIk/FTbySgP9krs= 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.146.130 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=kCH1g1+sjVa2QCIdiHzIfquy/8CmyT7N7/z8ax8pF9srmyyeg6Utrli3yGjesF157oRuR7bQr5Ur4micKe3fKdzfH2obqr1e3SyVliaZFXI6+K7bfnuYSglk+h7dwOCEE70gYyY+1oblPnmbJCYrjfgIBSZv1LADYsxwGb4rXbedechYPw8TRISH6bsy8TKGZ1PFROONiZoO81bjAajmWaCp6S5IwsyU+Er43HcEpOnjmpLLaUJz1djrk9jh0PCphsafYx5dYpXlamQLCVAZ0xFfGERQE391TINh5Wak1aB1j33choPnQvlNmwD69v7zLQfFPX4pewmRawyhYSwVhA== 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=UIX/xDnAOtDSR7YZlid5lJ6qFBNjV70uM6rm5EcVJws=; b=bIyAtTWtl9Oo9aTV7KC2cPzOAHO0b1noKQyGJJl04SzZN6eCN4JtV8LLPmUbx+2eYkCQ9zhsTMin04u1TNRUmfHcaojRqh7bVQvXhNGcitiFPOMCsCbR2J/+CtxlbuUbegJtbW2tA9Kz/X2bF7ieOBcPqPsW/vxB082YZNWc1qRc7vdgaq798p4Sb3WTImVO9tV4402z6VqBRSfFPx3zjOva9GHh2AePWFxPdzInBoPoAfFqox1oF8kRZCMV0t0FoWdqrA3lQnFbGR5s7Ex0WTLCGr+zn1s0m14Li99K6AOa28Jrrh84YpHn5stqsy46gpK2EpTjlpP5ogCiK96rnw== 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 SHXPR01MB0461.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:1c::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Wed, 10 Apr 2024 09:10:40 +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%7]) with mapi id 15.20.7409.053; Wed, 10 Apr 2024 09:10:40 +0000 From: Changhuang Liang To: Mauro Carvalho Chehab , Greg Kroah-Hartman Cc: Hans Verkuil , Bryan O'Donoghue , Laurent Pinchart , Jack Zhu , Changhuang Liang , Dan Carpenter , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev Subject: [PATCH v2 6/8] staging: media: starfive: Fix bayer output stride configuration Date: Wed, 10 Apr 2024 02:10:24 -0700 Message-Id: <20240410091026.50272-7-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240410091026.50272-1-changhuang.liang@starfivetech.com> References: <20240410091026.50272-1-changhuang.liang@starfivetech.com> X-ClientProxiedBy: BJSPR01CA0005.CHNPR01.prod.partner.outlook.cn (2406:e500:c211:c::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_|SHXPR01MB0461:EE_ X-MS-Office365-Filtering-Correlation-Id: 9e8731dc-4c72-4a9a-c1ca-08dc593e1817 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lFlAEkpHbf7D+7XLSH6uA7e1lfbJySfzuiJqiP8fkw4nBw8N+01aWPbzuv3fOE90JX0Bj62oL9yCi5XRl2lBbZ9SY6UwZjBCWWyeRCQZpayfZZcay5DDP0kOEHIVMq5KWpQy8hHKTLe2G1rNvIjURpexX/DbMfrAdOpk8IWrMIKr6mUMDCgk/bs4E99avau4xEQxMyHgF1QO3a+V6BpoFSpRRGo80ZFy70/ov4p7OPV42HU/bwNNZTX9rGO20DiSVnzSrRgwoHp+mSWgxA/otJYVSx+EV1aVH8ExO/icxBjxSgebGFWEFkqI1lXTuWkzg8GktQLXAmphqlCZx9GEe93qDYqQ87lblWZtU8V1qFcvFCpCd4w0fOSiA9dVu9XT/Ax6Y/zEI5NGFxVuOY3XORupIc+5X9wwRWGP3TWoYaQ23HzFhoKttIv4fnaqK+21QtEadKmG8jueAg3keFM7DY0/kocxg6vZv/TCzdYMpn/sMDEzWz+a7/+OVyKyUJ2fs5WRv+OcTjFAWMCHogbSlq6aPqsoim9w15SZpKy7lSyygBahLtgtko8Ovvx/hyxhPjq3d3ft8F+hHY7kovT8p4TR//gWLWy5Ei3+6ZVaQPhu7lmPxfJAfpsVLM9lsNQq 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)(52116005)(1800799015)(366007)(38350700005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: zBIajwX2WHC1sNl8AiRUPDKG/WThXg8HiaYGK7aHxxXv9RSUY4/ngTCHoOaFAFIbiRbQmd53+nnuYy9d7tHCYbfJthgg79iNn1esqT52vxYG3b6vqleHSACgT7/uNJZ16DeIFiLQGRlzhxKauhjGbIHpreaOEcXm+OsQvwBHDiFujb0YswyBT/hhiRhQ7A+lm1YtJ6bgLzoTWiPtoAF2fdEKJC6hflHok7XzxJ5hmOhgoIbQ0CHzweGhAmIkCrwYoVoJcPkyybt3P2dI3WZGP5IyF6SvITFdRmGQHH8NVeA5SDqdP4wp7GG9OEHFYjG3wyQpTJ371U5uH9Jo5zZrkvqCZ52gy7zrCuLHExPqyjxXVWkFS/SHxQJbqgsNV7eaYbB5wSmOX58TOonv10Zt6L8W2w4UGtr3I9qJTxw21W4NtIk5TJrNz0GuWCRrv2w8yr7l+W8JzvlDaXHQlhSUf/iOBPigulDx4hGjWb9ozq42lhEHbi3vAxlrbP+DVrV3D04PwWN8xSEPZ6e1Mx8+HOKEmdncQzRLMfcHcJ3CZaMzso/VDc7OLCLudEWtC/w/D1Rk+9tGgRkYvD7k4qGG7gYyGnWMopAGnvwGlpkKLiyJyRkLibWoiFpK9kCV78PngicYfTloNmFjSgDL8cn/+B1a0j9WIoXPwmIRvgpPCvj3DCw3kApDoQ0l4Lp10db115nrgk7q/sIL5UKxxwKY9ci+8Tx4efos7449dy9SJ3hpRZm6v001EaMSnxWZdJXrn6043r5et+d8I+QgJbZI026aalSXuoDO5SniaKfhqlBy4wlztnZNCWcdUslGhqTEBLAh9CzOOvyHuqL4qyDSHmXvI0SSU6IAzlFSLpRGHgCI/hv4m+7fXFKsojCm33nZIBJuMIsZ7I3Av72uOHr/GJLNNw7ACScCuaiI/Hj957eZS3ORKAe46xIX45sVZOeJL6inmqOAZUYc7vLtdHICzd/bFiNxno12r9+rD+imBqwSdthGDvmS9Igreq5hGvckUOpTG7oAEL2/e+DGBf7b4W//fB5uwmoigMfGldDK+g1E5LGdWa5n5hMQEb3Dnoy2w//BT1WneOT0sSKz6HnFKfslMhWd8nnWRzeTK56DIHXiNVnJvGk6WNw0uyx8Nwigj18n3tR+ZEIDYZ5IqwbihMMIoaK+1tpGPgdo6l/wKeMDz5kdhxPK+6bGhYcoucpHn9kPDjGY32wFgiJlsEdVvHNc1VbI2n/+Y0KQM//QR72A8SbTPnD19f6F4Jc9l4HqrdpUF5a05tnUtxI5J0i/94ZdVncYPJ5cf2pnGLCEsbNIa878TpfnzgeRtcmTCVXN4+8nfDFRVs/3v81yxkxojnCCq+L+oqlxfUkZABzc3mcXPmY1CLT4wBWbAuUOeDtEde84yN53QdpL6lkMlew86iw6vS0pBnlCMh8AAEC8YfDOgRQf9lc1cMiw4c65YXX/Dwnnf1lB4SFMMwzyww8ANU1pfYe8RYb5uG8oNZggRtNsuZxeJo1HvS89i/dHX1DnazWAsI2du/hwpfBf+4YoygHWe00kz8OnpgBacfVRdyzTxng0xbvYPglJTQ33GDNM3NGRpF4pQ0hfhyTXulA1wUbGH5Lir51V3C4DGrFHeYU= X-OriginatorOrg: starfivetech.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9e8731dc-4c72-4a9a-c1ca-08dc593e1817 X-MS-Exchange-CrossTenant-AuthSource: SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2024 09:10:40.7722 (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: Y9ZT4pZVnZhhWn8/9NyK8M96NIm7VgOY8AIUnK6OryDkZUzw3UxPn+CJckKvEYt73XGDwOqRAkCpMVf8/zeuN2GAmpiyZHBoVTvgXo9ra76+6GWUFK1iJc63WaaP6krI X-MS-Exchange-Transport-CrossTenantHeadersStamped: SHXPR01MB0461 Add the bayer output stride configuration. And convert set the stride be a helper function. Improve readability. Fixes: e57854628f58 ("media: staging: media: starfive: camss: Add ISP driver") Signed-off-by: Changhuang Liang --- .../staging/media/starfive/camss/stf-isp-hw-ops.c | 13 +++++++++---- drivers/staging/media/starfive/camss/stf-isp.c | 12 +++++++++--- drivers/staging/media/starfive/camss/stf-isp.h | 4 ++-- 3 files changed, 20 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 f170fab2bfb4..c990dc124f77 100644 --- a/drivers/staging/media/starfive/camss/stf-isp-hw-ops.c +++ b/drivers/staging/media/starfive/camss/stf-isp-hw-ops.c @@ -408,6 +408,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_bayer_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; @@ -459,10 +468,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 fb48e7a29e8c..ef07639bf4d1 100644 --- a/drivers/staging/media/starfive/camss/stf-isp.c +++ b/drivers/staging/media/starfive/camss/stf-isp.c @@ -88,22 +88,28 @@ int stf_isp_init(struct stfcamss *stfcamss) void stf_isp_stream_on(struct stf_isp_dev *isp_dev, struct v4l2_subdev_state *sd_state) { - 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_bayer; + struct v4l2_mbus_framefmt *fmt, *fmt_src, *fmt_bayer; struct v4l2_rect *crop; - int src; + int src, bayer; fmt_t_src = &isp_dev->formats[STF_ISP_PAD_SRC]; + fmt_t_bayer = &isp_dev->formats[STF_ISP_PAD_SRC_BAYER]; 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_bayer = v4l2_subdev_state_get_format(sd_state, STF_ISP_PAD_SRC_BAYER); 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); + bayer = stf_isp_g_index_by_mcode(fmt_t_bayer, fmt_bayer->code); 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_config_bayer_out_stride(isp_dev, crop->width, + fmt_t_bayer->fmts[bayer].bpp); + stf_isp_stream_set(isp_dev); } diff --git a/drivers/staging/media/starfive/camss/stf-isp.h b/drivers/staging/media/starfive/camss/stf-isp.h index 8505603bdbc5..546c79332e9a 100644 --- a/drivers/staging/media/starfive/camss/stf-isp.h +++ b/drivers/staging/media/starfive/camss/stf-isp.h @@ -77,8 +77,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) @@ -586,6 +584,8 @@ void stf_isp_stream_on(struct stf_isp_dev *isp_dev, struct v4l2_subdev_state *sd_state); void stf_isp_config_yuv_out_stride(struct stf_isp_dev *isp_dev, u32 width, u8 bpp); +void stf_isp_config_bayer_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 Apr 10 09:10:25 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changhuang Liang X-Patchwork-Id: 13623918 Received: from CHN02-SH0-obe.outbound.protection.partner.outlook.cn (mail-sh0chn02on2130.outbound.protection.partner.outlook.cn [139.219.146.130]) (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 DC8A0158D99; Wed, 10 Apr 2024 09:10:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=139.219.146.130 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712740255; cv=fail; b=k6eGxaqrmAOhSUEbnnpLeJgWt62CU9hKWKfBXBKQqorsl6v34wOqrRV5/oFUcS+O7ZChihFKpcr5XPz8kNV5JHT8uWWqHGF7t7xo7xIkLIHvz6Jm6xenXYQq677Vt9bsSaEqpPEZrBbM1TepBCEMaJEq1MMQpgKzKTfBMEW6s9A= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712740255; c=relaxed/simple; bh=z5RRqwGE7wNXht/3+kIt1k9RkZ4Q0l+HwFkJS5zp3Fk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=kUJisbx9ZsxjLAihFqUdWIdpcqczfSr3cTHJ6NodVtcKHdWQ9dOjLJLCqqxsG+MFXXBy5DbyQDaMXqupZPPoKgmoMJZSQVr0cEXbFX7dBvUySmcLnH3P540bO4oRqncJSbdiVRMEFxwp3v7vzv7RdBUL8wkF+W39DrdbtVkGT2g= 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.146.130 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=Jhe+DRYPn3Lr0tp62CRz71/19/oac0W03G9goCNXNTGQxUyhvP/kLlDNxs0dryoQ6KBojtfqMINKOPbmyZjnPJXgxBpR+kaipWTJ67+yIwJFWoZlREEC+Go2ZUW9F0XeaGAP9NORtk9mBv6LQP/2a57lgA7u6XiNqCYtWdEaT2ngH/T+9mb2koetTkBN8uvpHmC5F4i5bjh5GO0CQ+cODt0yCR6+VMoDR53ielf5dv5J1ylS1hrAznqs3FxnnkTsW3N4K6XNsF1xs+BA1JWcSFYks/HpTZXny131Xzm2nRPVRJxPVyq/laL+F/0mM2P5f+yZ0GeHviTKDuZFDnW+cw== 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=+Iw810YQNx2yaZsOTC0egPyAnLZ2QJ2YQuyayR/5eBs=; b=bx0L7BwEDdllC66FyQCU5+VeX3fhULpq/Yvm7iKqcC00LG5Wbxd7NdFW9DyBpd3KVl6ENzgONtd2/YarFbFGYbyWFbvbMOa2CQavS5rMDHXN/b46ZR/RDuUdSKVP+ujxUsCtAE3Ck7QY65JGumaWawbqh1+SA9+MkQkAYt5bJadL6ZFmfUjFanpoXVTxfwjoMXfoiCezKM4tdMofKKfNW7NZnJko8vXdlkGlLVF0Zs1mWmf6dqKCXG7g5rPYz6O6fqT9wEHc4wXYTs9BpQi9y1MibcI7HmHLSAtXuGbkA/rED5to8x8otygJV3TmcCu6VnwOyyt5ZdXz1AJZGgVWdg== 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 SHXPR01MB0461.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:1c::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Wed, 10 Apr 2024 09:10:41 +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%7]) with mapi id 15.20.7409.053; Wed, 10 Apr 2024 09:10:41 +0000 From: Changhuang Liang To: Mauro Carvalho Chehab , Greg Kroah-Hartman Cc: Hans Verkuil , Bryan O'Donoghue , Laurent Pinchart , Jack Zhu , Changhuang Liang , Dan Carpenter , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev Subject: [PATCH v2 7/8] staging: media: starfive: Move the struct media_pipeline position Date: Wed, 10 Apr 2024 02:10:25 -0700 Message-Id: <20240410091026.50272-8-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240410091026.50272-1-changhuang.liang@starfivetech.com> References: <20240410091026.50272-1-changhuang.liang@starfivetech.com> X-ClientProxiedBy: BJSPR01CA0005.CHNPR01.prod.partner.outlook.cn (2406:e500:c211:c::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_|SHXPR01MB0461:EE_ X-MS-Office365-Filtering-Correlation-Id: 674c8356-b30d-4ad2-3eb6-08dc593e18bc X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Dbb7xkIYzNe0FaHY8ZdwZ84/FJQ6jy10+8D1UewV2vuR9nzxOqzw8eqi5elof38cYTVtc+woPsLJN2d89k2W8dUerqJsu0q3h8EDVI9epqtL45d7oxLOoQnIb94aFn+D1Go5jgIneNLuQA1XKT8yUfq66kpeCCEvqVk8lDyct/PccZJ2CiX3j3M0r5wuDUkwNUYuGyYOEt/VoUavLmfMWErKTit3x2XIehgJZpWU5zdQcgIx5Hscou9hZntZgAmVotRw4juWX7TUZMcBL5gqBOr6ODJy138B3qBGxSSKpDXhjU2hwiqNahXrjOvJV3cLsgmqRaDREtXCxOBFQ8Pvb+/n6PikEccIeI2XWoIoc1K07RnG0oYrTU9M2KIoydXaYvOfM03v+y+LNY0im97m2h+QZrkamj0+DVV7adc8JxiS4D5O68RC5CtqzBmCfDuAdWVhXOwyMYJiblPjj51977lU2XtJ3+Oblo18Rg4FDsB0Y/UuKxAPD/XEU+XhL91d/ur2TD/jk3n+NHmAAebbWkFxvYZKIfNHaSffD/JL45AanzM4xtw7JX6BqKC6dwIdl+wZ0dL+Q2mHT3gOuFx09VccxCIMO/xlvncwxX9kzEfkO3LBNy5dk8gsST+rXdDA 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)(52116005)(1800799015)(366007)(38350700005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: /M72600xFXwg7rfnK837AYLinfK7gUso1FXYkPW3vPmqmcopARU+5BuKT8oGCdWQj0d92yJlj/oO8GWLN0RWuSEbSwQ2mVTrAlPbGNtFrbvQAk5bcdspEUmBr1cRkfYjYMkOXt29Uv3vLeb9AqxGJk52zN955UnyXRqpsb/g+RykSwv5XPq/d0MwfWXKPaLtW3wa0R0/fsUSbniDpGcm0u2KqrkqDfru6Tcb/2Q9Cj7pZaW7dxtOXp/4yArLxBDlTJDL/OeozTomHkpGxQlzl8owTu1HwgveJpofH9JQazqGquEJMQkms7T4O56tSRAlri90eiy2xq0ka7IX7V7UQ8DdGyXtzazpInND0/UwxnliK1Y5F5ljfUCwEJfQGdj6KDrrPxhjPQbJpK4RlD48dfGgJj5c8dNKjgMzhb4KXoYChngJeV/i0ntoGElGy1wLyyezam4ZfrVfDqsCN70V8kzFbA/Tba/hJ2OpAKKTvTabvnSJ9UguLrA56vQ+KqrWPaBd2bPyNyYNk3qyZWjXSosztHoDd8B0PuJvAFSZWt48lwDXe6gAf3yhfRlhVzSq7JcepzqzthMAPd3Fu3D3d7QuLAmJeD6EC4fj393o1ngJn60mlq1rO0qw6DwTKhI9weFQT92UfWKPOOzLHmw/JNqXaBmht9ROEeoCdCk/i6Vd0J2aAcvU+/GsVEF4YJf+Ia3arnsQC5qlX2NYpxKwzR3DivBlFnY62XFiWtTmgru9xdAfdqPWGPZ1jN1ZcgDs+EvnocH+g2hseyUAMoGuXkYtJcCMJZqdhUpiBSWEiwEtynI7JWupMaYy57YmCzQYYXDKt6LDfC6LwPHMNxQdU7Rz86ZAXaounApYQ3ZRDCbTfWxFl/RCnmrtTIrXcrUYkUZ34KHTxI9XWlhxERBb5U234f1ArX7ZdZT+8UKx0NIG5VzA/mglkOwkHNL36sPijencf93DS9hBbSAszm4/7iE6zvMfmwPKKmEny5OzSVYudJ+gLdhaEn2m2av6gKeo/MhJRkYpmuMfzYVir9YwfnODHvaO2dEl0uj6ieFeC4WMwV4QeDfYCql3TXb5HkxplnEEewUOLWGKvwPAFlcddT15N+8a/+vF3V1iDF9UtgdSL/NdsWJwfbFz4gUmz9FyMx1WiyekotX6vukBIVoCc45PBMIWhNQ2KvV5yzFLVsDywb90hBEzq8sJf0ZkK1sEF3HlfMuKluEAuJDGQORRQEODA54Stu/W3kzdp2qGOjAUOHARSGruxDSUj/g5eARIfu7Po7+D3Jnio4y1YR71sMabERdYJ+mlQ4eU122wAtdzv/y4KvgVBvyMgTDTPwAtuGxL86yJAfAYAf/+0imTeWmu0datt23FUW1yWOPeRCzhPT3yJoCAq7qScXu5sSe0plY3MQGdLyAP7X7CUOobB1yihpPQYcZEiK+OwXPEp0uEf6Uu/ZXBhlz8B9Pzfx/bhdmCgR47l5zBStJ0FO2J8Uo/Hn6J/4gYils7yOuOsgXhbmINbyv3Fu3+V6ACYA/syikwtgHcraPNXYUT8xijjf6SE7W1MYWtHRuRhPk/STp57NdgJ7Emu5wPYEr0Dv4lFNIiWA+AfnD87+kDRzkqbLOfeyl5j/LRJ/Wip1aREAg= X-OriginatorOrg: starfivetech.com X-MS-Exchange-CrossTenant-Network-Message-Id: 674c8356-b30d-4ad2-3eb6-08dc593e18bc X-MS-Exchange-CrossTenant-AuthSource: SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2024 09:10:41.8747 (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: /yKFE53dFhThHLbyww0isgW6EX04zlUv1hBNyzFedwah3g4lp4O8aTdXbzvC/JC7AUptHB5Mf3hjv5ya4SUV06oA2XtrWkFmPc9qr6R2PKLcY0VFtahPfXWM3Ca/j8m/ X-MS-Exchange-Transport-CrossTenantHeadersStamped: SHXPR01MB0461 Different video capture devices have different media pipeline. The media pipeline cannot be shared between the "struct stfcamss". Move it into "struct stfcamss_video" so that each video capture device has its own independent media pipeline. Fixes: bba185d141b1 ("media: staging: media: starfive: camss: Add core driver") Signed-off-by: Changhuang Liang --- drivers/staging/media/starfive/camss/stf-camss.h | 1 - drivers/staging/media/starfive/camss/stf-video.c | 2 +- drivers/staging/media/starfive/camss/stf-video.h | 1 + 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/media/starfive/camss/stf-camss.h b/drivers/staging/media/starfive/camss/stf-camss.h index 6b9215c92cfa..5fbac7e97eaf 100644 --- a/drivers/staging/media/starfive/camss/stf-camss.h +++ b/drivers/staging/media/starfive/camss/stf-camss.h @@ -52,7 +52,6 @@ struct stf_isr_data { struct stfcamss { struct v4l2_device v4l2_dev; struct media_device media_dev; - struct media_pipeline pipe; struct device *dev; struct stf_isp_dev isp_dev; unsigned int isp_stream; diff --git a/drivers/staging/media/starfive/camss/stf-video.c b/drivers/staging/media/starfive/camss/stf-video.c index 69e3e4f9e56b..61d9d42fc5a0 100644 --- a/drivers/staging/media/starfive/camss/stf-video.c +++ b/drivers/staging/media/starfive/camss/stf-video.c @@ -280,7 +280,7 @@ static int video_start_streaming(struct vb2_queue *q, unsigned int count) struct video_device *vdev = &video->vdev; int ret; - ret = video_device_pipeline_start(vdev, &video->stfcamss->pipe); + ret = video_device_pipeline_start(vdev, &video->pipe); if (ret < 0) { dev_err(video->stfcamss->dev, "Failed to media_pipeline_start: %d\n", ret); diff --git a/drivers/staging/media/starfive/camss/stf-video.h b/drivers/staging/media/starfive/camss/stf-video.h index ea7ec92c3ff5..0699c1716c2f 100644 --- a/drivers/staging/media/starfive/camss/stf-video.h +++ b/drivers/staging/media/starfive/camss/stf-video.h @@ -68,6 +68,7 @@ struct stfcamss_video { struct vb2_queue vb2_q; struct video_device vdev; struct media_pad pad; + struct media_pipeline pipe; struct v4l2_format active_fmt; enum v4l2_buf_type type; const struct stfcamss_video_ops *ops; From patchwork Wed Apr 10 09:10:26 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Changhuang Liang X-Patchwork-Id: 13623919 Received: from CHN02-SH0-obe.outbound.protection.partner.outlook.cn (mail-sh0chn02on2134.outbound.protection.partner.outlook.cn [139.219.146.134]) (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 5C55A15F406; Wed, 10 Apr 2024 09:11:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=139.219.146.134 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712740289; cv=fail; b=fRIzuuOeulFrcngZqmqxwZzF0LtsMUMtSSvuiGRjyDbR9Lpnq8o7PPpbsFXA0BnaxpXvdzbV/Sqg+02d1VpWjL0XcAzcw467DIDoGsmhiFANfSnNEoron9eVtNOFxvFw1oUTA1ndk3Vk0787QobX8qovERraoromHfl65w2wNhs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712740289; c=relaxed/simple; bh=+w51sV7lrP9fLbWXLGg2Qhohea6Fb8xkONdEwHk/YOA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=S4bz/an4Xc1ZzWddkHAGmohDk6JLO9GKdZxhY8O+E22JMIjsaz/TUk6hdFctHNudK83689Js+bM1Z6I4ANPcjxF8RGU8U8UTfjGdHMu4Eo4hX01RM0sn+yeg1g8KPNdRSTkf8v9uud3HVwzMh7fGVxJzNpULamVdGW8C9oW6KFo= 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.146.134 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=AYKTJiDEu1+tsQ8c4PK1Q8B2MqtIaGWrM/JRi3PwFWZhqYsFzouLxbE4fj0fibG/GocGpBC5z1rthRNJ6aXbcQWTKLlLOTlx2YndmCABptW3GeBfpVUh2B+/OGqi6MyltmMeH+hJP/q982P4F6QqJioqgSm2dPlCGETgoNmw0iOC3XJ47JJw5WV3IFXRMG9hvwfSUSyGBwUHzptzpmWNrV0zxaa4dSvcKD81voyCrY+X/fwplVGWqhHdUTW2fg80mh3I+myrwI9R3chCHqV66Z9n1ETTVQEm26/mHsSCpYaT1CA1lvSdcCZ3sWGjEk7iY+JmEPn5RikfVo1/CtlFyA== 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=4b6TmhdEjZ2mWOnEUjc9RcnutwDWddNv1Xs0WbChx/I=; b=eZZCj/1eBH0yPKUrMve6928/8WrGEoERHQAt/tAvclul37giYOjn6n222QhRRKwL67UCDNBYGX/SCMbNTNM+MN4YhhBJK2aOAXQ5bms+sO5PIk3SGFkPBZLPLxQ1nNu04zSy+feJEktTJdKya4CCzGRJPDewWFTMOMhMsnRWf6RsvowYIIKyItm/D5Ov2tpv+xjvVM3MmJm9wo5+uXlcFTTepnRH63kpXbPwp8mwmYwfIaoHkamGzdG+a9gKZXFs4/NMQxPVg5QtOxQTZO8RKGvT736mTzpgcU7riUBTRko93lgluplUdR/grbrqtPr/KVKI2VxYZFIhyLpgpirNvw== 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 SHXPR01MB0461.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:1c::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Wed, 10 Apr 2024 09:10: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%7]) with mapi id 15.20.7409.053; Wed, 10 Apr 2024 09:10:43 +0000 From: Changhuang Liang To: Mauro Carvalho Chehab , Greg Kroah-Hartman Cc: Hans Verkuil , Bryan O'Donoghue , Laurent Pinchart , Jack Zhu , Changhuang Liang , Dan Carpenter , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev Subject: [PATCH v2 8/8] admin-guide: media: Update documents for StarFive Camera Subsystem Date: Wed, 10 Apr 2024 02:10:26 -0700 Message-Id: <20240410091026.50272-9-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240410091026.50272-1-changhuang.liang@starfivetech.com> References: <20240410091026.50272-1-changhuang.liang@starfivetech.com> X-ClientProxiedBy: BJSPR01CA0005.CHNPR01.prod.partner.outlook.cn (2406:e500:c211:c::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_|SHXPR01MB0461:EE_ X-MS-Office365-Filtering-Correlation-Id: 88c8803c-dba8-437f-287b-08dc593e1966 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: BIeNPlsVNmru/zeMTjJ9HSXM+AWkjSUYD7qWA7PQ41jUO7JsgPOqa/gV+pD8GMhvv4OW/xbNSY5dqvNJPQmUOYFM0d3VOATzTg+Sqd/616B3o2/Bm+dy5W2rHZh4rzl+otK0zVSL3o3EhTgRFQL/4sZXafb7adD6zCnyfmjCk/ug2M+uiVFVCnKesEP6NuCclKGlCUq/gfOb128OVvq2VzSw+w0bCCFrIO/AW6AnoWd5f4hoOgqwiralUYpaArRTW8LyqjbvVAKCMWSCxRFaeH+4wk+pu0fHWNHDbRr+Wn18mOVD5ui59JRU6rBhH2RGXHn0TGS0rTYHtsWUzGr/ApxQ+71t8vNGC3/MwDLbG7u84uyEuiMP6AXOFGuj11du+vv5GJp/HHDrtIo4zbn2aEWi2WG2psqUGIjG8njzCUuykJlngdsIuAD/gOlJWR7oNKyFhgHaUcqWO9MR0wCbKIQk3ZPDd5Fi8FN6durSjZePiiwoHu1apbKtMvL2epX8IoFH805Myt8vvp2o/c4UFIRj5wdDF1FcavlXZNwsp+SSdYDziA7dSvJizyLooYoLD9vi/3uyCT4DHOtpcVUl6xkMON4vgpNIrIAbJ/1T2pXNoMmdo8WdvKGHQiXl6tGG 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)(52116005)(1800799015)(366007)(38350700005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: b020cqyxBOizk6Fjvu+c8bpY5GuTFwLZwQZguEjAk/TMOnovVZ05maEiLVOkjvTk3UfuMUhezIIVDsYV5LgxPHNubHDZ/V4VL8brqcIg8tiHQLsp3PeBOiu9ntWJgv/mqjZRN+YiVcsTseqbfDi8rhFWS162CpGcYu4hiLdW7it3VkuT8XwzKntdYl3jgmX2dyMDAHFiqtKDstGaM6xm9gJxL+gWCOAofUFdVx9656yg7PCESZM1RGeX8Uhh/4arZTW9+9J4Xytp894Q7/Fydrx3P6jc50hKLmZRkKQgHp94ve2VRGfZ+qLReGL2jWxxfndyWtpp6nwdbxPmJgWnSm6Avo3JOr49ZmbwTJBN58idiUUwog/mpBovRK21UmoM+GqsMj6szNgtnUIxa9hXRehbW3wYYhb+5X7Lp27w5L/CpHgnEuAMVp41Vtqo6kTBuSvHJgS3KnJhozK2fq6VPrhFvUDPEAgUT84KbNM12PY5MMHEXhkQ3FegPnRqznuQTD9gGPdhMnAa3V5h98ViZTj5MKaE6KXQBikhMALBn6sFQ6ywvieN1cd3WHqfQe3nKG9Wt1Z1vyAw4Rp5ac2A4uhCHXYVpZ5W6vRuUhmd3g94RDLUpY3Bnagxg8OeOGj8KsjH5XS0FUddSKZhia4uCSqTseEucVszjjT24E2dvx5VU7Dd5m4o1GQazWtcF4GXGOGmrFuBXTLl5uOyjsMVlQ07tPubL3fwMNXE6XMn7TcLalaEv9/gYG7TA64g5QL5cAmzSi6KBADMRXr/VXo29AFrBUOQ8tQoQpF+C8666TRDWbF7sZWRYQLhsYwWInST7X+EG4+wcqGPRDvhRdr3holQv64ixEfw0nEtz1WGlwL4IgoT7G93f6F3ZjWWdGeb8Lr4ZaDmpypAz2pAMmTtmNCMBA39RF1LQ/GxKKgeippre+BjMn7cGNIAy4rkoMgxrHyc6D0pZ4GbL3CsUWSgGVabyh0QZNm3a42JPyMNL/JDHO49wTQA9IMrJtOYKZIJ3GykCFyt2Z1rGwJHuQKlUzogUCf7G5SXfZJEis+1kxja+wjHV44U+nVQVCyqA0AkUDT60E7TQhFldIwLbxFEN79nbBZ+Oh5YAhsLT1jJFchki5XkD0fBQQHVo7LuHuwacXZ+EJh25G3uXNe6rMJNvVAbS/aC7qHuz9V4hO6n1MfXSSXahJ92CvoV2lPoOrlRM1UtOYuGjCJ+Bfe9CJFSFf2TOJ0WgGWlJjeCurm4WXIecj8yQFhP6uFgwj5PXmSFCWJhPO/DOxnrVBar8J04r5IKEekpY2DBN1nuhqKr8hzrP3slczEfDDdyzr4VT9UUxnZDDf0ZxMNnZuegVsj6Q45mcdPvHoSOBwdQfVaP5v6m0wDzyCUXdoGbX+M9icNwlzI0/GmXkkrMEpDXDu0wO7zbH7tSf3s6rIZWq/OBri+2EL3BA6ybjbsapPT05i3ZJt6LZmuSO1EafCAg2YqLzQE/4EpH2kEP4GIaTE9F8s8A/V9i1DeszCrewyS679vZZm1K6qd5KT74FhyHR/OchekmdfPEsejulmQB4XHlU1lohKxCyTlBZzdB7T/sxYhIG7lkxy/ZDSd8dYMGrs6qsu3x5QctLd2o4rB/vaVAZAM= X-OriginatorOrg: starfivetech.com X-MS-Exchange-CrossTenant-Network-Message-Id: 88c8803c-dba8-437f-287b-08dc593e1966 X-MS-Exchange-CrossTenant-AuthSource: SHXPR01MB0671.CHNPR01.prod.partner.outlook.cn X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2024 09:10:42.9754 (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: cgV6ptcFes/QMTKFjbimVGvaOFfgroNKLS9BFS6j5Q7jSCVRZHS/P1yMvC7AYKB7X5VqoUAycPLUIv7x7xpQ+n9ZpymdFIsyZR4GNYSaOJikUgnUvF8MBAaSHJLoZh+k X-MS-Exchange-Transport-CrossTenantHeadersStamped: SHXPR01MB0461 Add ISP capture_bayer video device in documents. It support output bayer frames by ISP module. Signed-off-by: Changhuang Liang --- .../admin-guide/media/starfive_camss.rst | 8 ++++-- .../media/starfive_camss_graph.dot | 28 ++++++++++--------- 2 files changed, 20 insertions(+), 16 deletions(-) -- 2.25.1 diff --git a/Documentation/admin-guide/media/starfive_camss.rst b/Documentation/admin-guide/media/starfive_camss.rst index 020f1969e67f..ed7fbe08f4a2 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 12bit per pixel Bayer format frames. Topology @@ -58,20 +58,22 @@ The media controller pipeline graph is as follows: :alt: starfive_camss_graph.dot :align: center -The driver has 4 video devices: +The driver has 5 video devices: - output_params: The meta output device, transmitting the parameters to ISP module. - capture_raw: The capture device, capturing image data directly from a sensor. - capture_yuv: The capture device, capturing YUV frame data processed by the ISP module. +- capture_bayer: The capture device, capturing 12bit per pixel Bayer frame data + processed by the ISP module. - capture_scd: The meta capture device, capturing 3A statistics collection data processed by the ISP module. The driver has 3 subdevices: - stf_isp: is responsible for all the isp operations, outputs YUV frames - and 3A statistics collection data. + , 3A statistics collection data and Bayer 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 7961255d3ad6..5255c12c2b15 100644 --- a/Documentation/admin-guide/media/starfive_camss_graph.dot +++ b/Documentation/admin-guide/media/starfive_camss_graph.dot @@ -1,16 +1,18 @@ digraph board { rankdir=TB - n00000001 [label="{{ 0 | 1} | stf_isp\n/dev/v4l-subdev0 | { 2 | 3}}", shape=Mrecord, style=filled, fillcolor=green] - n00000001:port2 -> n0000000e - n00000001:port3 -> n00000012 [style=dashed] - n00000006 [label="output_params\n/dev/video0", shape=box, style=filled, fillcolor=yellow] - n00000006 -> n00000001:port1 [style=dashed] - n0000000a [label="capture_raw\n/dev/video1", shape=box, style=filled, fillcolor=yellow] - n0000000e [label="capture_yuv\n/dev/video2", shape=box, style=filled, fillcolor=yellow] - n00000012 [label="capture_scd\n/dev/video3", shape=box, style=filled, fillcolor=yellow] - n0000001c [label="{{ 0} | cdns_csi2rx.19800000.csi-bridge\n/dev/v4l-subdev1 | { 1 | 2 | 3 | 4}}", shape=Mrecord, style=filled, fillcolor=green] - n0000001c:port1 -> n00000001:port0 [style=dashed] - n0000001c:port1 -> n0000000a [style=dashed] - n00000026 [label="{{} | imx219 6-0010\n/dev/v4l-subdev2 | { 0}}", shape=Mrecord, style=filled, fillcolor=green] - n00000026:port0 -> n0000001c:port0 [style=bold] + n00000001 [label="{{ 0 | 1} | stf_isp\n/dev/v4l-subdev0 | { 2 | 3 | 4}}", shape=Mrecord, style=filled, fillcolor=green] + n00000001:port2 -> n0000000f [style=dashed] + n00000001:port4 -> n00000017 [style=dashed] + n00000001:port3 -> n00000013 [style=dashed] + n00000007 [label="output_params\n/dev/video0", shape=box, style=filled, fillcolor=yellow] + n00000007 -> n00000001:port1 [style=dashed] + n0000000b [label="capture_raw\n/dev/video1", shape=box, style=filled, fillcolor=yellow] + n0000000f [label="capture_yuv\n/dev/video2", shape=box, style=filled, fillcolor=yellow] + n00000013 [label="capture_bayer\n/dev/video3", shape=box, style=filled, fillcolor=yellow] + n00000017 [label="capture_scd\n/dev/video4", shape=box, style=filled, fillcolor=yellow] + n00000023 [label="{{ 0} | cdns_csi2rx.19800000.csi\n/dev/v4l-subdev1 | { 1 | 2 | 3 | 4}}", shape=Mrecord, style=filled, fillcolor=green] + n00000023:port1 -> n00000001:port0 [style=dashed] + n00000023:port1 -> n0000000b [style=dashed] + n0000002d [label="{{} | imx219 6-0010\n/dev/v4l-subdev2 | { 0}}", shape=Mrecord, style=filled, fillcolor=green] + n0000002d:port0 -> n00000023:port0 [style=bold] }