From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.7]) (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 3C45032BF44 for ; Sun, 7 Jun 2026 21:54:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.7 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780869265; cv=none; b=Z7jkE0t/Yruu85QtFUD8olPrOORpWF0DP6JRd4bzmgUXbuz6yHE1KU2EB7RgA1nXcSjcPYHRwHNLVT2QcCYO5XHsXUf5GMlWD2NXgf9YQLTqh/xtQE9tchm1mXYlGlKRlhWMmckhEHQijMXTj7Tnlpbf+VXaoUXjD5SWZprWxns= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780869265; c=relaxed/simple; bh=l35rgWTVH/O2LRAKOPCqweqX6lSuPsv2soE2YCZc6D0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=krn2BVLaN9ra9o0FV8t90vAL5jVFLfrICS3usF++zR4Ktvkw6PJxTphxVwYisqTJvwyGIobb03y9aZWj4rmRKYuhNPjk3qipMeSSajWQt5W5CMM8qLFaURsgCd9yVybVgf4Vsz9823m7OixaHJ6Ty1yVTNgRjMNH3Kq9DPBFV9M= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=pass smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=CLGB58K2; arc=none smtp.client-ip=192.198.163.7 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="CLGB58K2" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1780869264; x=1812405264; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=l35rgWTVH/O2LRAKOPCqweqX6lSuPsv2soE2YCZc6D0=; b=CLGB58K2RcVqrSp8viGhmC05GcNsX/PCpg6F5gYpsMSXDZF/MfWrO4pu qTVrG1u3SlkthwpwRtpvsu0XMY5vezshrsELtTbe4wjwyN0Xtl9h03MGq LK+k1heiK5k6lgmieJLKYmXEIzESUx1AWWmn8yp9xKSuWLKl+/HEEh7ZL JAzjUmWTODtRRA7XM6MVcYZSAGkKqS9zi07YOVVovKk26QqrTCkqK71NA wuFwFgxNAFK1O/S6Rv6bOcRyI4WJKSDMiQBxZfepxaLWQPgUjVJXJ+ffA 21HTw1fTOEcLMCf8pWaVIsC1lAg2AkddghRaHGmcVfxXeDgqqXkjSrA74 w==; X-CSE-ConnectionGUID: OnAwI9CaT/yejESKU1ZMGA== X-CSE-MsgGUID: aeps0vklQfSxgpaXqjs7Sw== X-IronPort-AV: E=McAfee;i="6800,10657,11810"; a="107048308" X-IronPort-AV: E=Sophos;i="6.24,193,1774335600"; d="scan'208";a="107048308" Received: from orviesa007.jf.intel.com ([10.64.159.147]) by fmvoesa101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Jun 2026 14:54:24 -0700 X-CSE-ConnectionGUID: L1NKXExBQ4yJQmUSgIyZOg== X-CSE-MsgGUID: W4CeXKQ/SLGulO3nOTmh/g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.24,193,1774335600"; d="scan'208";a="245490503" Received: from amilburn-desk.amilburn-desk (HELO kekkonen.fi.intel.com) ([10.245.244.101]) by orviesa007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Jun 2026 14:54:18 -0700 Received: from punajuuri.localdomain (unknown [192.168.240.130]) by kekkonen.fi.intel.com (Postfix) with ESMTP id C1B5F121CDC; Mon, 08 Jun 2026 00:54:07 +0300 (EEST) Received: from sailus by punajuuri.localdomain with local (Exim 4.98.2) (envelope-from ) id 1wWLRM-00000003XIl-1A9w; Mon, 08 Jun 2026 00:53:56 +0300 Organization: Intel Finland Oy - BIC 0357606-4 - c/o Alberga Business Park, 6 krs, Bertel Jungin Aukio 5, 02600 Espoo From: Sakari Ailus To: linux-media@vger.kernel.org Cc: hans@jjverkuil.nl, laurent.pinchart@ideasonboard.com, Prabhakar , Kate Hsuan , Dave Stevenson , Tommaso Merciai , Benjamin Mugnier , Sylvain Petinot , Christophe JAILLET , Julien Massot , Naushir Patuck , "Yan, Dongcheng" , Stefan Klug , Mirela Rabulea , =?UTF-8?q?Andr=C3=A9=20Apitzsch?= , Heimir Thor Sverrisson , Kieran Bingham , Mehdi Djait , Ricardo Ribalda Delgado , Hans de Goede , Jacopo Mondi , Tomi Valkeinen , David Plowman , "Yu, Ong Hock" , "Ng, Khai Wen" , Jai Luthra , Rishikesh Donadkar Subject: [PATCH v5 09/10] media: v4l2-subdev: Add v4l2_subdev_get_fmt_ci() Date: Mon, 8 Jun 2026 00:53:55 +0300 Message-ID: <20260607215356.842932-10-sakari.ailus@linux.intel.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260607215356.842932-1-sakari.ailus@linux.intel.com> References: <20260607215356.842932-1-sakari.ailus@linux.intel.com> Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit v4l2_subdev_get_fmt_ci() is just as v4l2_subdev_get_fmt(), but it also takes const struct v4l2_subdev_client_info * as its second argument. It can be used as set_fmt() pad op callback that simply returns the format from sub-device state. To be squashed to the previous patch. Signed-off-by: Sakari Ailus --- drivers/media/v4l2-core/v4l2-subdev.c | 9 +++++++++ include/media/v4l2-subdev.h | 18 ++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/drivers/media/v4l2-core/v4l2-subdev.c b/drivers/media/v4l2-core/v4l2-subdev.c index e4ac6981e950..c1e1fb9d6773 100644 --- a/drivers/media/v4l2-core/v4l2-subdev.c +++ b/drivers/media/v4l2-core/v4l2-subdev.c @@ -1953,6 +1953,15 @@ int v4l2_subdev_get_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_state *state, } EXPORT_SYMBOL_GPL(v4l2_subdev_get_fmt); +int v4l2_subdev_get_fmt_ci(struct v4l2_subdev *sd, + const struct v4l2_subdev_client_info *ci, + struct v4l2_subdev_state *state, + struct v4l2_subdev_format *format) +{ + return v4l2_subdev_call(sd, pad, get_fmt, state, format); +} +EXPORT_SYMBOL_GPL(v4l2_subdev_get_fmt_ci); + int v4l2_subdev_get_frame_interval(struct v4l2_subdev *sd, struct v4l2_subdev_state *state, struct v4l2_subdev_frame_interval *fi) diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h index e83ef88fe12c..e29defed6409 100644 --- a/include/media/v4l2-subdev.h +++ b/include/media/v4l2-subdev.h @@ -1488,6 +1488,24 @@ __v4l2_subdev_state_get_interval(struct v4l2_subdev_state *state, int v4l2_subdev_get_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_state *state, struct v4l2_subdev_format *format); +/** + * v4l2_subdev_get_fmt_ci() - Get pad format using get_fmt pad op + * @sd: subdevice + * @ci: client info + * @state: subdevice state + * @format: pointer to &struct v4l2_subdev_format + * + * Obtain the sub-device format by calling the sub-device get_fmt pad op. This + * is intended to be used as the set_fmt callback when the callback just needs + * to return the format. + * + * Returns 0 on success, error value otherwise. + */ +int v4l2_subdev_get_fmt_ci(struct v4l2_subdev *sd, + const struct v4l2_subdev_client_info *ci, + struct v4l2_subdev_state *state, + struct v4l2_subdev_format *format); + /** * v4l2_subdev_get_frame_interval() - Fill frame interval based on state * @sd: subdevice -- 2.47.3