From patchwork Sat Apr 24 11:14:58 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bob Veringa X-Patchwork-Id: 73591 X-Patchwork-Delegate: sakari.ailus@iki.fi Received: from vger.kernel.org ([23.128.96.18]) by www.linuxtv.org with esmtp (Exim 4.92) (envelope-from ) id 1laGGA-005PUv-R9; Sat, 24 Apr 2021 11:15:42 +0000 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231387AbhDXLQO (ORCPT + 1 other); Sat, 24 Apr 2021 07:16:14 -0400 Received: from mail-vi1eur05on2042.outbound.protection.outlook.com ([40.107.21.42]:36512 "EHLO EUR05-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S231203AbhDXLQM (ORCPT ); Sat, 24 Apr 2021 07:16:12 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=topicbv.onmicrosoft.com; s=selector2-topicbv-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=J7yV+BTrZc25RM9K6sQQPB+JxkDXFXDaftH4MifuxRg=; b=VaZtzrJsx7TtNaqT+yt4ZmU22EZWIv8+Nvpa03tTCoNagV2Lu2tKUbs4TF4dzUcQe1Zd7jK50YbmOHbHT6lhO3BEeNu7d6bpQt6Af9EbkUOaHowXx8fwEOeB+th/z+jk0K5Z4GGo+zaBE00xHVK+UcRNdBkXeaPLYeDnCMNC/6A= Received: from AM6P191CA0080.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:8a::21) by AM0PR04MB6001.eurprd04.prod.outlook.com (2603:10a6:208:11b::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21; Sat, 24 Apr 2021 11:15:30 +0000 Received: from HE1EUR01FT061.eop-EUR01.prod.protection.outlook.com (2603:10a6:209:8a:cafe::f9) by AM6P191CA0080.outlook.office365.com (2603:10a6:209:8a::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.20 via Frontend Transport; Sat, 24 Apr 2021 11:15:30 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 13.81.10.179) smtp.mailfrom=topic.nl; leopardimaging.com; dkim=none (message not signed) header.d=none;leopardimaging.com; dmarc=bestguesspass action=none header.from=topic.nl; Received-SPF: Pass (protection.outlook.com: domain of topic.nl designates 13.81.10.179 as permitted sender) receiver=protection.outlook.com; client-ip=13.81.10.179; helo=westeu13-emailsignatures-cloud.codetwo.com; Received: from westeu13-emailsignatures-cloud.codetwo.com (13.81.10.179) by HE1EUR01FT061.mail.protection.outlook.com (10.152.1.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21 via Frontend Transport; Sat, 24 Apr 2021 11:15:30 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (104.47.17.107) by westeu13-emailsignatures-cloud.codetwo.com with CodeTwo SMTP Server (TLS12) via SMTP; Sat, 24 Apr 2021 11:15:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=P3AqY6OXuAs1jETEIsupYA0aHeQo70amMlJqjWfbiareZgPkEP4y+ELzt8mRtH3ZA0TlM3quu2Ek/XgA4jLqqQIrjQtW9nwLgYSk/T/f1LrTD/d5h1U73B7XkUqOc/ATHPEuBFDE+DhHPklIrbuh6RV6/R0TAHKicsuvwwn61GZ3eALd/f1AuzkWD9tkBC2amu5E/OnaDhlO1S+3pqgTYHh5SBMWxNYihUOuPTa2XLiKW+PlInTRoPdB+1AiM8NxY0Ai8ebAl8R4BQYaQjlMhauv7075HYe3w5hHvfLbLeMcBKHspTWkriVqVxtJtgyYUPAdl+jIPQSKiBTqBa+vkg== 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-SenderADCheck; bh=PCIPvZTtF3ZYhQaTdKp5HVWznxn/3/SfdrtvkRTcnDE=; b=cw3OotLeTkJ3E01nm3Cqw3orrhzTUKUWtjd4KFVFpmpQL35tIjc6zU23V7GsClHXw/kofWzWrmtpCyqOj0mnyiJOoIQ3fQ5W9G7/XLN3QPbZlT90orNMOnQFL036WFAKeN+KF1X6so1LJFHOUdnsc52/WyYfmQOUIBnLn8GTgxRVZc9k+1TP6ggYFEKefMvZBXfK6Hzxey7HSiISmT/U2IgnDh8t3LBWDawMO+1T0dCbiTysFpixjgu3gNmqJL5KKYv7Vd5mE8JyxBFGbm5L4lADVV/7jDgSmfligkPWhSaEz4OHoCPMUjKc4QHZU43fZ1mfL5D5h1rGXvYAreIGsw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=topic.nl; dmarc=pass action=none header.from=topic.nl; dkim=pass header.d=topic.nl; arc=none Authentication-Results-Original: leopardimaging.com; dkim=none (message not signed) header.d=none;leopardimaging.com; dmarc=none action=none header.from=topic.nl; Received: from AM0PR0402MB3444.eurprd04.prod.outlook.com (2603:10a6:208:20::16) by AM9PR04MB7505.eurprd04.prod.outlook.com (2603:10a6:20b:285::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.23; Sat, 24 Apr 2021 11:15:28 +0000 Received: from AM0PR0402MB3444.eurprd04.prod.outlook.com ([fe80::8175:49ba:9d62:1d33]) by AM0PR0402MB3444.eurprd04.prod.outlook.com ([fe80::8175:49ba:9d62:1d33%4]) with mapi id 15.20.4065.025; Sat, 24 Apr 2021 11:15:28 +0000 From: Bob Veringa To: leonl@leopardimaging.com CC: mchehab@kernel.org, linux-media@vger.kernel.org, bob.veringa@topic.nl, mike.looijmans@topic.nl Subject: [PATCH 1/2] media: imx274: improve v4l2-compliance Date: Sat, 24 Apr 2021 13:14:58 +0200 Message-ID: <20210424111459.20730-1-bob.veringa@topic.nl> X-Mailer: git-send-email 2.17.1 X-Originating-IP: [81.173.50.109] X-ClientProxiedBy: AM0PR01CA0132.eurprd01.prod.exchangelabs.com (2603:10a6:208:168::37) To AM0PR0402MB3444.eurprd04.prod.outlook.com (2603:10a6:208:20::16) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from bob-OptiPlex-7020.TOPIC.LOCAL (81.173.50.109) by AM0PR01CA0132.eurprd01.prod.exchangelabs.com (2603:10a6:208:168::37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21 via Frontend Transport; Sat, 24 Apr 2021 11:15:28 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8f02899d-0172-4e68-5581-08d907124580 X-MS-TrafficTypeDiagnostic: AM9PR04MB7505:|AM0PR04MB6001: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6790;OLM:6790; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: ZMI+WTxjpFoinXY2b2U0O3EVTz/oEHzSruZ+9Zv+KtiD4MWSpnvOqaIR+oSqYH3+9QjcU9TzpBl9hIvgAINFtfFVogokuX908AT3z/jmtKDd/ERwgYga9x+nGJROmeIGikCdG/txhM1PEQsEylDATnp6aNoauSLnvMuI7LYSkJNYLwxNayiSBVBZqPM7AOVOzKxmHbQp6lV1Uowsr01fA3ovIYp5zLn5arTOYwZ0UVPeoklA6uPjZD7TMrdP1Ch5/z8Q58V3bV2BUoodTfq/QU2kN/LpyESmB70DiRBC8HLQAZaGzSh0r5WXIa3w4RxwT8dupSJKZ8CoBiIo/0Mwmi0se9HBoZcbgwAbqjb6PVGrWRJi6S+Pfo3tdxXNDrZml0dIKNtRkEtJusCY6FpABG/BG9ExAyP0hy4kUG+3F64qoteXEDfd7CfMbM/+8qLchEZ6FqCiiYVXqk6yrmL++BDsjyhy274y9P8bWBfbGapPJteKFZ+Q1VTVF1YBA6z969xWyGZpklK3A9LfCRBeNLiB8Kj/+aHs3pPUlwex/ZvLa2KzXEITRe1bTI2pmR/oG+EEES+2MpAYe/QXWLsYfNPGEV29UVdRBNNePlkFZchLlRCnRvt0vXbmF33anwpCRiIfCDvd7fUxgUEiU9wcvw== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR0402MB3444.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(346002)(39830400003)(136003)(366004)(396003)(376002)(66946007)(8676002)(86362001)(4326008)(8936002)(6506007)(26005)(83380400001)(316002)(478600001)(186003)(38350700002)(6666004)(66556008)(66476007)(16526019)(107886003)(38100700002)(44832011)(5660300002)(36756003)(2616005)(6512007)(1076003)(956004)(2906002)(6916009)(6486002)(52116002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: DLSmVFVez1IuvA/H8GiIidub6rMcHQpcUV8mh2TiF7eJqeIz0Raz8rJGzgK6yH6o0F/IKMDyxsN0cnCdX4YJtWC4iZ7k4URfuPGATrxLm/MzSpsmtBFEKCewRtyAGYbeVH4KXLPI6iKJnbyoZbgAZdv4OZ9eNcvkAvj5+LkqOHhBf7jq6XvFUplXY0q4ve3ct58+3UwuLHRpXBmvB0Ubi3L4SBD8f/h+e3QicUYxgjH2z7Wjc3ZaSm5tF7C1rFwS4bwRoXjSUFEx8J6dMz1tCzMS/XOOP2kKNImV6zZh8u8nnAlsdXNLXo89HAdjeHmw1MZE8cVllHZIeaNbzfNF+5XIDeLd1PicqA+NpD48HDIXIBFy3jNhBLtqbsZPI9iHPclyHjwxsdxYTFHjrz+bxOvRgj65nU7irlOYQG7k96amDuzdDceNe4sPnM0CjDCM0zlBsC1T2eNegIod3KCNSS7IvZzzBJlrUf0LErrEap4Yj5lzih45TY0r5ZWXE3+C5EdUT7mo9XeTeWSlpi7Jm9cxW2us1fZejjpXt1Q/mMJAY6yzC665hkGmTRWBBfcFAtlQXrOxmquSJEnBsEjNVu6X/wharGailwx0iLRQI3g2UA0aolfpLv0ZsyKmuTHBV9aIIVUZTHQuOXjDCEwbtfYqqKgL1BG3QpaluO1QYO0HsN2CAwpFVtI2dtOqDhNe8ZJccKQvHyJ+v0oDsAcXXj5UHYfly0MhGM+wPcHZxQM2jHY+Y6En21RSb9E7qZrJ6WOUIGEoWof4ayyiNlBZ78swm/SCdEnGO56uX0pjlrTMEvBaAZJzsA1nbyhPkwHg53m56eyfPif6T8MmVTyJGCt7f7kc9NA3L6RCnKmudm/WdG6NAZfqNi0KAh6Ygip/2s40S2Sh44rO5ZVcRfSgw+xqTm2/7m78T3nNBiAM2KIrJQeYiS2xIKXMwA8SRMs5ejUAblx+rFkfFrzDXpnOuNwZ2o7aoeL+bhaE7UpiCVoXHQj9Scoyy3YVMWmNK8Kkej2O5wYaInnIKFxaQetSm3Ggp7a/fjXEoSNcuHn4MajfJIA/BPJBxafWpPZqfQ2LtaXhizH9Md9lrvUFqPSCjnpxIJ1Th/1nfntDS3gwnb6Qv5viLMgkpKZbPU/6lI55vWpWisGsO19EMV2/h/ArN5hlN8Wrl9AaQp6fHoW90xdnA9l14bNLIm5JgoIyGr1VvHMAO/p6pC01aSS3TaobDo1+EX4lZP5SIV41FsB/3bDxH2kj+M79Q67rkrWGZsYRycyjFf2jBi969/h/yXzCBiR9iErf9KtJdV3vo6F3e9OOmrj+hsWPAGukAXgBYmd6 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB7505 X-CodeTwo-MessageID: 09e5607e-87c2-4275-8c5f-0b87814298ec.20210424111529@westeu13-emailsignatures-cloud.codetwo.com X-CodeTwoProcessed: true References: X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: HE1EUR01FT061.eop-EUR01.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: e9182ce7-609d-4ed6-c28b-08d907124411 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: l1mpsnHSbjldJVAoJlEKLds9dSg9103erMQN7+/rhYL8BX/zK5jiC70oqL9BZn9PpGJAo2fyOs+O9/uWsX8EppN+d/V5EXqmLbUJseHyfgb2JTDdT+oStGQ7uY7xPqB6mHP4c21bUnCClTUqBlDgaTiTV32jw1v2d32V02TNVWJ4Uqm9zBOYSF2Nudj1i8yJzpF/kMYXNiKkI1aaNZLTMlpg3wCnQnd05Nr5ObbpmoKeMTJd/RRY0EIpKuFT6jgA0BIU629NFwFTGE8qzHVBAob/QZW+XJFLWURD2gmYSHX6xlAf+O9R3vKFJPlP5x7kwcSM4GpmINKXhzf1JA84F0eNelAVtxIkA0P74JE4C0oFS9pqbLDyqhRwoBGcmaElWzNiQQzjzSk8w3hs7sMWzDylJrm3DhD/dTq+HkZhDFudhGdAdbxwwOIEltjURbpuGyz0q7RZzIhxl21yv/LdnI5hFQr0O2GXucNBHJC4PfSoymyhIrKI0Yq/0JJgZBEKtMh3gxRMoetlU8q1/K5H0GuC2PNniS0/XKEn97m3CVv0wovNUmFELGR9G4FKsAI0N7GaqBeURuK3UqqiJrijJ4bRMaTGvCQxdxHr9eUkrCGezVa4R+lkcpoziJtHBn0UT4y294TtcWfOJlazwuSSC+TD0upeYi7xy3ptbndoy5KG1InNUcGf1/sIWyS4GqUVf5VWu5GlPXRlSGQ1CJt5ZhHNLKFf3+bGy832HgP8sQI= X-Forefront-Antispam-Report: CIP:13.81.10.179;CTRY:NL;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:westeu13-emailsignatures-cloud.codetwo.com;PTR:westeu13-emailsignatures-cloud.codetwo.com;CAT:NONE;SFS:(376002)(136003)(39830400003)(396003)(346002)(36840700001)(46966006)(5660300002)(1076003)(82310400003)(36860700001)(86362001)(6666004)(4326008)(6486002)(478600001)(15974865002)(47076005)(83380400001)(70586007)(70206006)(36756003)(336012)(16526019)(186003)(7636003)(8676002)(107886003)(356005)(8936002)(956004)(26005)(7596003)(6512007)(2616005)(316002)(6506007)(44832011)(6916009)(2906002);DIR:OUT;SFP:1101; X-OriginatorOrg: topic.nl X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2021 11:15:30.5490 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8f02899d-0172-4e68-5581-08d907124580 X-MS-Exchange-CrossTenant-Id: 449607a5-3517-482d-8d16-41dd868cbda3 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=449607a5-3517-482d-8d16-41dd868cbda3;Ip=[13.81.10.179];Helo=[westeu13-emailsignatures-cloud.codetwo.com] X-MS-Exchange-CrossTenant-AuthSource: HE1EUR01FT061.eop-EUR01.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB6001 Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-LSpam-Score: -2.4 (--) X-LSpam-Report: No, score=-2.4 required=5.0 tests=BAYES_00=-1.9,DKIMWL_WL_MED=0.001,DKIM_SIGNED=0.1,DKIM_VALID=-0.1,HEADER_FROM_DIFFERENT_DOMAINS=0.5,MAILING_LIST_MULTI=-1,MSGID_FROM_MTA_HEADER=0.001 autolearn=ham autolearn_force=no 1) Fix incorrect return of get_fmt when fmt->which is set to V4L2_SUBDEV_FORMAT_TRY. get_fmt always returns the active format, but should return the pad configuration when V4L2_SUBDEV_FORMAT_TRY is requested. 2) Fix set_fmt not functioning correctly when fmt->which is set to V4L2_SUBDEV_FORMAT_TRY. When a trying a format the driver assumes that try_crop is already set. If this is not the case it causes unexpected behavior. Add a default value if crop value is not set. 3) Add support for enumerating media bus formats via VIDIOC_SUBDEV_ENUM_MBUS_CODE. 4) Add support for enumerating frame sizes via VIDIOC_SUBDEV_ENUM_FRAME_SIZE. 5) Fix v4l2-compliance error 'VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: FAIL' by implementing v4l2_subdev_core_ops struct with default functions. Signed-off-by: Bob Veringa Acked-by: Mike Looijmans --- drivers/media/i2c/imx274.c | 72 +++++++++++++++++++++++++++++++++++--- 1 file changed, 68 insertions(+), 4 deletions(-) diff --git a/drivers/media/i2c/imx274.c b/drivers/media/i2c/imx274.c index d9849d34f39f..942407ed931b 100644 --- a/drivers/media/i2c/imx274.c +++ b/drivers/media/i2c/imx274.c @@ -28,6 +28,7 @@ #include #include #include +#include /* * See "SHR, SVR Setting" in datasheet @@ -72,6 +73,7 @@ #define IMX274_MAX_FRAME_RATE (120) #define IMX274_MIN_FRAME_RATE (5) #define IMX274_DEF_FRAME_RATE (60) +#define IMX274_DEFAULT_MEDIA_FORMAT MEDIA_BUS_FMT_SRGGB10_1X10 /* * register SHR is limited to (SVR value + 1) x VMAX value - 4 @@ -1011,7 +1013,7 @@ static int __imx274_change_compose(struct stimx274 *imx274, u32 flags) { struct device *dev = &imx274->client->dev; - const struct v4l2_rect *cur_crop; + struct v4l2_rect *cur_crop; struct v4l2_mbus_framefmt *tgt_fmt; unsigned int i; const struct imx274_mode *best_mode = &imx274_modes[0]; @@ -1025,6 +1027,11 @@ static int __imx274_change_compose(struct stimx274 *imx274, tgt_fmt = &imx274->format; } + if (cur_crop->height == 0 || cur_crop->width == 0) { + cur_crop->height = IMX274_MAX_HEIGHT; + cur_crop->width = IMX274_MAX_WIDTH; + } + for (i = 0; i < ARRAY_SIZE(imx274_modes); i++) { u8 wratio = imx274_modes[i].wbin_ratio; u8 hratio = imx274_modes[i].hbin_ratio; @@ -1072,11 +1079,24 @@ static int imx274_get_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_format *fmt) { struct stimx274 *imx274 = to_imx274(sd); + int ret = 0; mutex_lock(&imx274->lock); - fmt->format = imx274->format; + + switch (fmt->which) { + case V4L2_SUBDEV_FORMAT_TRY: + fmt->format = *v4l2_subdev_get_try_format(sd, cfg, fmt->pad); + break; + case V4L2_SUBDEV_FORMAT_ACTIVE: + fmt->format = imx274->format; + break; + default: + ret = -EINVAL; + break; + } + mutex_unlock(&imx274->lock); - return 0; + return ret; } /** @@ -1274,6 +1294,41 @@ static int imx274_set_selection(struct v4l2_subdev *sd, return -EINVAL; } +static int imx274_enum_frame_size(struct v4l2_subdev *sd, + struct v4l2_subdev_pad_config *cfg, + struct v4l2_subdev_frame_size_enum *fse) +{ + __u32 width, height; + + if (fse->index >= ARRAY_SIZE(imx274_modes)) + return -EINVAL; + + width = IMX274_MAX_WIDTH / imx274_modes[fse->index].wbin_ratio; + height = IMX274_MAX_HEIGHT / imx274_modes[fse->index].hbin_ratio; + + fse->code = IMX274_DEFAULT_MEDIA_FORMAT; + fse->min_width = width; + fse->max_width = width; + fse->min_height = height; + fse->max_height = height; + return 0; +} + +static int imx274_enum_mbus_code(struct v4l2_subdev *sd, + struct v4l2_subdev_pad_config *cfg, + struct v4l2_subdev_mbus_code_enum *code) +{ + if (code->index > 0) + return -EINVAL; + + if (code->pad != 0) + return -EINVAL; + + code->code = IMX274_DEFAULT_MEDIA_FORMAT; + + return 0; +} + static int imx274_apply_trimming(struct stimx274 *imx274) { u32 h_start; @@ -1903,11 +1958,19 @@ static int imx274_set_frame_interval(struct stimx274 *priv, return err; } +static const struct v4l2_subdev_core_ops imx274_core_ops = { + .log_status = v4l2_ctrl_subdev_log_status, + .subscribe_event = v4l2_ctrl_subdev_subscribe_event, + .unsubscribe_event = v4l2_event_subdev_unsubscribe, +}; + static const struct v4l2_subdev_pad_ops imx274_pad_ops = { .get_fmt = imx274_get_fmt, .set_fmt = imx274_set_fmt, .get_selection = imx274_get_selection, .set_selection = imx274_set_selection, + .enum_mbus_code = imx274_enum_mbus_code, + .enum_frame_size = imx274_enum_frame_size, }; static const struct v4l2_subdev_video_ops imx274_video_ops = { @@ -1917,6 +1980,7 @@ static const struct v4l2_subdev_video_ops imx274_video_ops = { }; static const struct v4l2_subdev_ops imx274_subdev_ops = { + .core = &imx274_core_ops, .pad = &imx274_pad_ops, .video = &imx274_video_ops, }; @@ -1968,7 +2032,7 @@ static int imx274_probe(struct i2c_client *client) imx274->format.width = imx274->crop.width / imx274->mode->wbin_ratio; imx274->format.height = imx274->crop.height / imx274->mode->hbin_ratio; imx274->format.field = V4L2_FIELD_NONE; - imx274->format.code = MEDIA_BUS_FMT_SRGGB10_1X10; + imx274->format.code = IMX274_DEFAULT_MEDIA_FORMAT; imx274->format.colorspace = V4L2_COLORSPACE_SRGB; imx274->frame_interval.numerator = 1; imx274->frame_interval.denominator = IMX274_DEF_FRAME_RATE; From patchwork Sat Apr 24 11:14:59 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bob Veringa X-Patchwork-Id: 73592 X-Patchwork-Delegate: sakari.ailus@iki.fi Received: from vger.kernel.org ([23.128.96.18]) by www.linuxtv.org with esmtp (Exim 4.92) (envelope-from ) id 1laGGF-005PUv-A0; Sat, 24 Apr 2021 11:15:43 +0000 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232556AbhDXLQS (ORCPT + 1 other); Sat, 24 Apr 2021 07:16:18 -0400 Received: from mail-db8eur05on2066.outbound.protection.outlook.com ([40.107.20.66]:21985 "EHLO EUR05-DB8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S231203AbhDXLQR (ORCPT ); Sat, 24 Apr 2021 07:16:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=topicbv.onmicrosoft.com; s=selector2-topicbv-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=23ApRiuHam9Lnk4qN/QnPKQQF2cQ9L+eBlGBTdXZqXw=; b=cVpj7RoEC+OQr8pkrYarQ1dR+w5/6dOmkm3ErVpcIiC8w6RqV1G0BfZ4S5wB531F8VKZNJuaCKxVSh2V0pKcWqstMQJhaXq19MxqRH6s2fE0Ecwte37BJnZp4xxFCqADIRjSNKDnH509ilm4ENApxRr60S2Pk9615G+rV5O975M= Received: from AM7PR04CA0007.eurprd04.prod.outlook.com (2603:10a6:20b:110::17) by DBBPR04MB6171.eurprd04.prod.outlook.com (2603:10a6:10:c4::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.20; Sat, 24 Apr 2021 11:15:38 +0000 Received: from HE1EUR01FT015.eop-EUR01.prod.protection.outlook.com (2603:10a6:20b:110:cafe::16) by AM7PR04CA0007.outlook.office365.com (2603:10a6:20b:110::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.20 via Frontend Transport; Sat, 24 Apr 2021 11:15:38 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 13.81.10.179) smtp.mailfrom=topic.nl; leopardimaging.com; dkim=none (message not signed) header.d=none;leopardimaging.com; dmarc=bestguesspass action=none header.from=topic.nl; Received-SPF: Pass (protection.outlook.com: domain of topic.nl designates 13.81.10.179 as permitted sender) receiver=protection.outlook.com; client-ip=13.81.10.179; helo=westeu13-emailsignatures-cloud.codetwo.com; Received: from westeu13-emailsignatures-cloud.codetwo.com (13.81.10.179) by HE1EUR01FT015.mail.protection.outlook.com (10.152.0.154) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21 via Frontend Transport; Sat, 24 Apr 2021 11:15:37 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (104.47.17.105) by westeu13-emailsignatures-cloud.codetwo.com with CodeTwo SMTP Server (TLS12) via SMTP; Sat, 24 Apr 2021 11:15:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RJdoCa+ytJJYqeqn8y658H+jVtx+Ew3R/FzQgdoZfugxn/ZjZhM3aAJatkf5LDTsGpprZPwZLD9inKz/rk1rq0Pu9uGKP2gLnScB939K66t6MiW6ReAaqSXeBg/tljEtln6vwhO8lvvMiGSdYnP+Yl+ihBSC19Wi83AjQi26cl2BxGvYp4gC/ByVeFn3cpAsYVBITbVnm/WidRgc4KZ2EMs41jlnzKY5OggiNrmxnUEyTyi7G2gJRLK2z4hnfFH5OZ68JrIMtmTR01oBVNMvjCqD+0M+K4PoNsjSivjY4h2YPkcbwILu3k36cpw9BaKCP2+jVXLL2TVHkUEJ3xsugA== 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-SenderADCheck; bh=duGJvtf4uzUXeoDaP5IdsnbN75C42XiXidtplgs8On0=; b=A4dNAU8NqVE6ro4AMK4iFV96bgWbE9uX4cqxTiywE+iUseY11YD4ahl53HGw5ZqOtVy7vDlgLE5xIKW1hcb4ohNLzGkciUlIquehcflR+4rviQmjR2lBu9BkSeTMCQs9rxph3Oh/A/V+YmRMTQm9020b/GtLU78VtJVkaF983kAzfKh1LIbRHWgkwGv1T6UsuO4hBundLu9OtnZiLzHDjbhQMvwUhprr1OZCmpDCH1STGnMMJGv84kv0bzlWZj6NzjOgaEb7LKIyvQuZpX7w/OSJbLJhJH5/wis4BZmwKsiBQU3LJiLBaMEXGN8t/rTa3HqECRXeDmh1htthgasMqg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=topic.nl; dmarc=pass action=none header.from=topic.nl; dkim=pass header.d=topic.nl; arc=none Authentication-Results-Original: leopardimaging.com; dkim=none (message not signed) header.d=none;leopardimaging.com; dmarc=none action=none header.from=topic.nl; Received: from AM0PR0402MB3444.eurprd04.prod.outlook.com (2603:10a6:208:20::16) by AM9PR04MB7505.eurprd04.prod.outlook.com (2603:10a6:20b:285::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.23; Sat, 24 Apr 2021 11:15:36 +0000 Received: from AM0PR0402MB3444.eurprd04.prod.outlook.com ([fe80::8175:49ba:9d62:1d33]) by AM0PR0402MB3444.eurprd04.prod.outlook.com ([fe80::8175:49ba:9d62:1d33%4]) with mapi id 15.20.4065.025; Sat, 24 Apr 2021 11:15:36 +0000 From: Bob Veringa To: leonl@leopardimaging.com CC: mchehab@kernel.org, linux-media@vger.kernel.org, bob.veringa@topic.nl, mike.looijmans@topic.nl Subject: [PATCH 2/2] media: imx274: remove imx274_load_default Date: Sat, 24 Apr 2021 13:14:59 +0200 Message-ID: <20210424111459.20730-2-bob.veringa@topic.nl> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210424111459.20730-1-bob.veringa@topic.nl> References: <20210424111459.20730-1-bob.veringa@topic.nl> X-Originating-IP: [81.173.50.109] X-ClientProxiedBy: AM0PR01CA0132.eurprd01.prod.exchangelabs.com (2603:10a6:208:168::37) To AM0PR0402MB3444.eurprd04.prod.outlook.com (2603:10a6:208:20::16) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from bob-OptiPlex-7020.TOPIC.LOCAL (81.173.50.109) by AM0PR01CA0132.eurprd01.prod.exchangelabs.com (2603:10a6:208:168::37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21 via Frontend Transport; Sat, 24 Apr 2021 11:15:36 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b763a48c-2327-434e-b8f2-08d9071249f3 X-MS-TrafficTypeDiagnostic: AM9PR04MB7505:|DBBPR04MB6171: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:147;OLM:147; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: jA4yOUUIj0scei2yIKfELFD1r/9ip3ZK9M3R+rx+eI4dRzerr35SQeQQe1hOZf83vH6WIRWjWdhclzSwVV17iUeTqtvuq1lMaAPHZIXqvrezCvC9l0CB/3Ye4GlWrPTVZ/xKQ+qKLrdLXLq8ON46k0qxUdoVAII8nFOWmLCXQV9O1D6zcT2ropwCqZqWoRbwoFZsGWpKJcjXvd7rPNITGQY3SF1z4DP5JnpipcpIhP7T+nUpgbO4J1aqekdogx/2D41ksOq6vH44vxWLRBxJoTsskdtN5O8CbjPvJXhCe8mky4jeDkzRfbRmyotrmHlkkI0nsYqd+FFiVHyvjP4bJ9+V3J54cV1dk4BCiJPC8GmanmgU+0zLFqTOPFGRa81GIF7CW0VrC+qBJHZ7xhtrTO+3OPiu+9bNUCkqLQbvYqRq1fRzKF0bOgBU7QSPPPfv5EDyuI5gmiXjHMX+bS0rpq5NabN4RSkVbn84mQCMyUImBbOrjEJqEQP41bB5VWAJW0K49rxT+Ttc/pSD9zvKe9K/6hACKBQEKym4T3X/1c25VB624T+2Ty4e+5ZonT3LiYhRTz4UDi/BvtNGuqkzFDXInJs2OWcdyk0e/t62i5K97rOvFLgKGsbufjBpWMg7OtXO+ePEoZAvJzwxtvEc/+LfudxVRta3A4qq4LPrRbw= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR0402MB3444.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(346002)(39830400003)(136003)(366004)(396003)(376002)(66946007)(8676002)(86362001)(4326008)(8936002)(6506007)(26005)(83380400001)(316002)(478600001)(186003)(38350700002)(6666004)(66556008)(66476007)(16526019)(107886003)(38100700002)(44832011)(5660300002)(36756003)(2616005)(6512007)(1076003)(956004)(2906002)(6916009)(6486002)(52116002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: F+kke3JN66emAPr2DBMliWo+cKd/YnO3mTgjSTyoadxzNtLfl0bn44kWCXMkEPt07JbtzbqqJAO5NH/NoegtVkfm0ihTsy3FrJ0YlB/y9S8WV60gTMl6HLsewYIansJvjGgq36uEGhscm1U/3yidLyLMXNK8PHhhAyfZN0LV1SLdIXuidaOM56lw+E9iT/veQicSLgZ8FYahIk4brwtSoaYpkSI5r6L2XstwDmQ+EOaDsva/z6P8HoyTUYv/6yiNSxPY5IriNZGbyatxwyOmY7+avRbFazH+QAm9Q4HCkCDjyDGjB6fx13P9VWXNpf/gBVY1OM/obO56dXGoSmgSoiLXEhoKQ/RE0QymCMVTaqJWRVjfLBlw0JPlu/TH9lZLHMw3AiUEzsyd8kOXiCDUqA3ZJQuvKN3gO69avqcjqvr7nwzchto9/xqxuaelzEL+QBE3+yJ8rlZG10wyCf46Jykw1fLaOnfX8NzR/c3DRmWRspX61jERe9zQbHrjuIvJbFycho+SpyH1HsPlGNngTXlbAlE6WLnhjkqEIvotY8S8hR8Mg/FdNBT+SFaEIjUJehXTLSOlKpnci9Mo3NyvfPd23HGSas0BquaZzWjYHoxNExWZulOqtdQZFp+6KosL+dr65ejH9x4pNVZKVDR8UtwsSRjVQEIEmXbbwGRlY6xF3eWDhdwkU779aq7mGbPI8+4tH1F4rtSgtiFbFJK8u1uDLEVUnjeD0Ile+D1Kbpcgd2YnXQbzABjAtdZtvd3f1ofI8RLZ0TUx6BnemYZOaH3r5W4acFYIDL1LYeiLJFxDTiDwwJL4GjyTf5TaSYqOVNlIQZA+M3qUNvgFw7pLDB4jDEepkkyyJpip3pLhbpPwViYAKhI+LYDfW3jb5bSjQnTa++IzZUHfDRihxxRaK0iTCnJI/qOTsXX5+rXE06761RnfeuE3QnMyXzQxLcrYj6DC3B8tjKNX3bSnsow+emurrzM06Im1H57uxKfIkq6u/hgK+aegPxFpr4KAHQSOGl8gs6FZ57IyckcQUWqKp8YKJsbrqQv6e8uXHMOiQVPkT7M0wk0a9X7w9/NzWvmsK8Gz32F9o2LYP88+DopVkamcKfyWNn5WxcY6VvhuNN7uXsbprTo7FPbzVOvn8lGkpJmw1hRkdFeoffum3uxq1PcIdgFOvFGsPSZ3qvDAWKHhAroiycXM7AE35D1oiOeSGtq0iRdn4OpSpLZVWuki/UXAS2zgkcFk1Z9M5i3pPxNHEhX/fgz7hdnHx3NB9MRe3hx29DJxzP1+Fxy5PBFVItnPAV4GE0naYyzz3FSYug1MVq3H31/4zQ1VQypfaCYN X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB7505 X-CodeTwo-MessageID: a513db6f-c898-4841-9322-6a5b51431ecc.20210424111537@westeu13-emailsignatures-cloud.codetwo.com X-CodeTwoProcessed: true X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: HE1EUR01FT015.eop-EUR01.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 8dea6886-774c-458e-97b3-08d9071248be X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EWD7bvpcrefA/AGCq+Ikn0V+K+MCRvxVTV2AaE+S3vqSEooWfNCKfnxYiA+CkrphXicC26sV8dNDLOucANTMsF2ejAdHD2dQO2fwvxRdDJdWl+3Xcd0o+NDrzyFRmJuhYk6or4I17NIafmnWy7VzYjbCZGQqBYKGpdwaV1kfpOu44PqvYXt18eFph2xMGtu2siyW6SKaH7j/qXE72rdRjfS769ClSqPqh1qHYxM2CMjvOSOnMZlmbPoqV18jMb8uVq++UkYPxMxIwf7XxjbX7YlylbrWSshEPwhpQrjA68QGZVDZ40BI+D43I+pjwI5ynmbUacpF9GQCsrqco8/PPI9rqVc0iiS+9OUGKd8ub2QUF+2NxrYj2npGtsd526dn2G949lYko2YISF/NZ/3lcXS9kyFvlK/m4PY4nPQKuogzAVRaaWu8a3vm0V2nzb8PCMVHlhD/xTQlaoMjIBUYRR5CUy/humtGZNXRsw6Qr0F4OKR4cCWich2U0LOJGuPLgQNmx4zri3LpTYbTXbI3A1ex6Nm+qFCqcDGTdFdtlb3tqkWBdTvNdZQLaQFHNYFgXca++iX1jUiUF4KvfCSBHYcPStGb0X8RUYq5I8dBKvJsMfXX9hHmpPpblMECTK7/icWd6D05dIHs5ZhrRfBQxssgsjyBdm1pDGBysoeSPnJw57RHE/ypR66SGa1YhBHvtwJQrUcUD1nPkVUqI9X8dnFtYsxi8ZSkVsRqS64bJ5M= X-Forefront-Antispam-Report: CIP:13.81.10.179;CTRY:NL;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:westeu13-emailsignatures-cloud.codetwo.com;PTR:westeu13-emailsignatures-cloud.codetwo.com;CAT:NONE;SFS:(396003)(376002)(136003)(346002)(39830400003)(36840700001)(46966006)(86362001)(4326008)(82310400003)(16526019)(956004)(15974865002)(8676002)(186003)(2616005)(1076003)(336012)(316002)(26005)(6666004)(36860700001)(6506007)(5660300002)(6486002)(83380400001)(7596003)(7636003)(478600001)(36756003)(70586007)(44832011)(356005)(6512007)(2906002)(47076005)(107886003)(8936002)(6916009)(70206006);DIR:OUT;SFP:1101; X-OriginatorOrg: topic.nl X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2021 11:15:37.9801 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b763a48c-2327-434e-b8f2-08d9071249f3 X-MS-Exchange-CrossTenant-Id: 449607a5-3517-482d-8d16-41dd868cbda3 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=449607a5-3517-482d-8d16-41dd868cbda3;Ip=[13.81.10.179];Helo=[westeu13-emailsignatures-cloud.codetwo.com] X-MS-Exchange-CrossTenant-AuthSource: HE1EUR01FT015.eop-EUR01.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB6171 Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-LSpam-Score: -2.4 (--) X-LSpam-Report: No, score=-2.4 required=5.0 tests=BAYES_00=-1.9,DKIMWL_WL_MED=0.001,DKIM_SIGNED=0.1,DKIM_VALID=-0.1,HEADER_FROM_DIFFERENT_DOMAINS=0.5,MAILING_LIST_MULTI=-1,MSGID_FROM_MTA_HEADER=0.001 autolearn=ham autolearn_force=no The function imx274_load_default no longer serves a purpose as it does not configure the values since commit ad97bc37426c1eec1464 ("media: i2c: imx274: Add IMX274 power on and off sequence') All the values set in this function match the default value set when registering the controls, except for exposure. The default value of this is set to the minimal value for this field. The result of this  is that the output video is black when exposure is not explicitly  set by the user. By setting the default value when registering  the control to the same value originally used in the function,  this issue is avoided. Signed-off-by: Bob Veringa Acked-by: Mike Looijmans --- drivers/media/i2c/imx274.c | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/drivers/media/i2c/imx274.c b/drivers/media/i2c/imx274.c index 942407ed931b..9dc0bcb1e0df 100644 --- a/drivers/media/i2c/imx274.c +++ b/drivers/media/i2c/imx274.c @@ -1455,23 +1455,6 @@ static int imx274_s_frame_interval(struct v4l2_subdev *sd, return ret; } -/** - * imx274_load_default - load default control values - * @priv: Pointer to device structure - * - * Return: 0 on success, errors otherwise - */ -static void imx274_load_default(struct stimx274 *priv) -{ - /* load default control values */ - priv->frame_interval.numerator = 1; - priv->frame_interval.denominator = IMX274_DEF_FRAME_RATE; - priv->ctrls.exposure->val = 1000000 / IMX274_DEF_FRAME_RATE; - priv->ctrls.gain->val = IMX274_DEF_GAIN; - priv->ctrls.vflip->val = 0; - priv->ctrls.test_pattern->val = TEST_PATTERN_DISABLED; -} - /** * imx274_s_stream - It is used to start/stop the streaming. * @sd: V4L2 Sub device @@ -2094,7 +2077,7 @@ static int imx274_probe(struct i2c_client *client) imx274->ctrls.test_pattern = v4l2_ctrl_new_std_menu_items( &imx274->ctrls.handler, &imx274_ctrl_ops, V4L2_CID_TEST_PATTERN, - ARRAY_SIZE(tp_qmenu) - 1, 0, 0, tp_qmenu); + ARRAY_SIZE(tp_qmenu) - 1, 0, TEST_PATTERN_DISABLED, tp_qmenu); imx274->ctrls.gain = v4l2_ctrl_new_std( &imx274->ctrls.handler, @@ -2108,7 +2091,7 @@ static int imx274_probe(struct i2c_client *client) &imx274_ctrl_ops, V4L2_CID_EXPOSURE, IMX274_MIN_EXPOSURE_TIME, 1000000 / IMX274_DEF_FRAME_RATE, 1, - IMX274_MIN_EXPOSURE_TIME); + 1000000 / IMX274_DEF_FRAME_RATE); imx274->ctrls.vflip = v4l2_ctrl_new_std( &imx274->ctrls.handler, @@ -2121,9 +2104,6 @@ static int imx274_probe(struct i2c_client *client) goto err_ctrls; } - /* load default control values */ - imx274_load_default(imx274); - /* register subdevice */ ret = v4l2_async_register_subdev(sd); if (ret < 0) {