From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-lf1-f49.google.com (mail-lf1-f49.google.com [209.85.167.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 22C9924A049 for ; Fri, 26 Sep 2025 13:11:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.49 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758892295; cv=none; b=L2GYRq9r5l85388lRXyR/U3gmWuoe12aVs/BuN87yPcs+i9fEtMeRJOcThHrBjogXWAC4nErN69JK8K85hwaR35RdzE7sP6P/lkqVbQKv5W87ZatdYW6L3AitvpKF1DYsUuj8F+uul5ueCQRR282Yf/+iDW1xr6kONsXJeG9aMU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758892295; c=relaxed/simple; bh=kTIx/gbW5FMHGZwkamAX2U1Vd88ShDnf2ZfAQ8RTCAM=; h=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc; b=Wba/WhaXDIzDaVmKdV6X/ASWfwHv24Dft17lgKraQ55HSJTEOHienAmMIJVSj1TeIOmVt/fv2OENnHSUfhwBeD7f9y0H9S2tji+CMpHSVvy91AzUy+8KR8CWlfCV3PrE1SBKAsL6cUjTO0IbFjV/W6wveGeQocf2dOgN79TLI2g= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=E+MAVfef; arc=none smtp.client-ip=209.85.167.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="E+MAVfef" Received: by mail-lf1-f49.google.com with SMTP id 2adb3069b0e04-57b8fc6097fso2744384e87.1 for ; Fri, 26 Sep 2025 06:11:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1758892290; x=1759497090; darn=vger.kernel.org; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:from:to:cc:subject:date:message-id:reply-to; bh=ZDmNVhJHkWPdowxg4squkpPV1N/rsJjSEr9LXYJ99w0=; b=E+MAVfefudY7/qxHnbxhDO+KX3qvhh1WTGF6ko5dEZjljYzb2UEGn4YGO1SKeYgwmS voXZONIQftp+duXOgrhEID9XNOiiKM9mDq4Ymso1T4oj6MajO6i29sBs0XRH72aeW+SK AHYcs1q6J+wj7vntFU86T+ZHyr7BjvGRVmi0M= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758892290; x=1759497090; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ZDmNVhJHkWPdowxg4squkpPV1N/rsJjSEr9LXYJ99w0=; b=vDNAjlTLQQA0muR0NDGEw94mLG/RwzRwNCBAWfOlc1Ww8w3eHGGAcg/j6FQ6oSfJYx afmkVxLF+VfGCWZXi/i3jxcbHm6w5Noh9rYo7r9K1je0biXJXj7NjaAnmydtwLfXC4rb A3RGG0ARgW3nhkr6FG+HE8lUiBDagwYrNPdZKz6/2FmHq7XxRF7JgU3o3L4YsW0unpnX GIPz1jZL8Yh3RGm4GlMhll/ii/8zrBgArUqtl1+akCYSWLwrfWRZ1GA9Frgedzqklo1M uJH0S+7CrfYNg4ABbqGowCLiwpSHD13D85vwStIHgFsE0JS8BJXqK3imwRqk/6f5ero5 S0zg== X-Forwarded-Encrypted: i=1; AJvYcCUF+0ICGXIlQg+gP8uM7oNntrwgMLamNYtnpeisGyBMJ8/fFCGX129ulkanLr8Ah2UAK1hugX/XMvyG@vger.kernel.org X-Gm-Message-State: AOJu0YyN1Rz+Eh1z7rOAexjU2O8KZZ/maviQ3eNUQqdvlmV0nU5nEHBA Fk9Ud2BxjyXM9mCP5DgrO94YGpg2v2V8ErR5iSm/9TAL0KWdI4VMh61iedBnuCC+RQ== X-Gm-Gg: ASbGnctSHxYjIo/i5ofcOg3aY6hFw9mhzlSr3O+J2ZmJYKzaF57GD/k0LW6NXbUohpL 8LHlxyCiG6mbI2MHWCe71tBgSmn36nCKlvShurvUJEOdqxTnmy47W706NOEG0xloaqmmCzBkO9Y 9OQXn+P009Ylcej151H7sAcNzPSF/Qrway+52MbbuZb6L+qa5Mgv+x1AhkRp6bnTxQL8Lrgi2+M TkQvMUt9EuuxbaE/aPbjm74xK6qeofYwnElgkxbUCKaco+N+ukFktqzx9rdarMfACvXlxndwEs7 QTlMp/wLMU5PKTqLVjvI60pXMSIXswqkb6bAfaN8VgdryzX/5+Po7kc0twqBl16XD2ep1vB4wzm xclWuMe+SgJlV1HhLGh0aDMFzZ3ag/ngFjKTgN+6Bwi79qQTitwLLb/R0Z0YpVv/lPnIKT0VJWF UYBw== X-Google-Smtp-Source: AGHT+IFre7rGlPJYVo4GSUWdzdcqW6jFgSmqfsnv6P/WyQ1IpYAO/8aDPCOXsn/mCcLjhUPmvTsyZQ== X-Received: by 2002:a05:6512:159b:b0:579:f4b3:bc3c with SMTP id 2adb3069b0e04-582d37cacaamr2234865e87.55.1758892289663; Fri, 26 Sep 2025 06:11:29 -0700 (PDT) Received: from ribalda.c.googlers.com (64.153.228.35.bc.googleusercontent.com. [35.228.153.64]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-58527c6b014sm123872e87.43.2025.09.26.06.11.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 26 Sep 2025 06:11:29 -0700 (PDT) From: Ricardo Ribalda Subject: [PATCH v3 00/12] media: uvcvideo: Add support for orientation and rotation. Date: Fri, 26 Sep 2025 13:11:24 +0000 Message-Id: <20250926-uvc-orientation-v3-0-6dc2fa5b4220@chromium.org> Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIAPyQ1mgC/3XNTQ6CMBAF4KuQrq2ZFgvBlfcwLsb+wCygpi2Nh nB3CxsTjcv3Mu+bhUUbyEZ2rhYWbKZIfiqhPlRMDzj1lpMpmUmQCk5Q8zlr7stkSpjKLVeudaI zqNDcWVk9gnX03MXrreSBYvLhtT/IYmv/W1lw4AJBa9UpbKS56CH4kebx6EPPNi7LD9GA+iVkI VQrwHUGakD8ItZ1fQP1BMLt9AAAAA== X-Change-ID: 20250403-uvc-orientation-5f7f19da5adb To: Hans de Goede , Laurent Pinchart , Mauro Carvalho Chehab , Sakari Ailus , Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Linus Walleij , Bartosz Golaszewski , "Rafael J. Wysocki" , Len Brown , Robert Moore , Hans Verkuil Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-gpio@vger.kernel.org, linux-acpi@vger.kernel.org, acpica-devel@lists.linux.dev, Ricardo Ribalda , stable@vger.kernel.org X-Mailer: b4 0.14.2 The ACPI has ways to annotate the location of a USB device. Wire that annotation to a v4l2 control. To support all possible devices, add a way to annotate USB devices on DT as well. The original binding discussion happened here: https://lore.kernel.org/linux-devicetree/20241212-usb-orientation-v1-1-0b69adf05f37@chromium.org/ The following patches are needed regardless if we finally add support for orientation and rotation or not: - media: uvcvideo: Always set default_value - media: uvcvideo: Set a function for UVC_EXT_GPIO_UNIT Signed-off-by: Ricardo Ribalda --- Changes in v3: - refactor dt bindings - add media: uvcvideo: Use current_value for read-only controls - get_(max|cur|def) = swentity_get_cur - virtual_entity add codestyle - Codestyle - Fix xu get_info and get_len - Drop ACPI_DEVICE_SWNODE_DEV_ROTATION - Add missing select V4L2_FWNODE - Link to v2: https://lore.kernel.org/r/20250605-uvc-orientation-v2-0-5710f9d030aa@chromium.org Changes in v2: - Add support for rotation - Rename fwnode to swentity - Remove the patch to move the gpio file - Remove patches already in media-committers - Change priority of data origins - Patch mipi-disco - Link to v1: https://lore.kernel.org/r/20250403-uvc-orientation-v1-0-1a0cc595a62d@chromium.org --- Ricardo Ribalda (12): media: uvcvideo: Always set default_value media: uvcvideo: Set a function for UVC_EXT_GPIO_UNIT media: v4l: fwnode: Support ACPI's _PLD for v4l2_fwnode_device_parse ACPI: mipi-disco-img: Do not duplicate rotation info into swnodes media: ipu-bridge: Use v4l2_fwnode_device_parse helper media: ipu-bridge: Use v4l2_fwnode for unknown rotations dt-bindings: media: Add usb-camera-module media: uvcvideo: Add support for V4L2_CID_CAMERA_ORIENTATION media: uvcvideo: Fill ctrl->info.selector earlier media: uvcvideo: Add uvc_ctrl_query_entity helper media: uvcvideo: Use current_value for read-only controls media: uvcvideo: Add support for V4L2_CID_CAMERA_ROTATION .../bindings/media/usb-camera-module.yaml | 46 +++++ MAINTAINERS | 1 + drivers/acpi/mipi-disco-img.c | 15 -- drivers/media/pci/intel/Kconfig | 1 + drivers/media/pci/intel/ipu-bridge.c | 58 +++--- drivers/media/usb/uvc/Kconfig | 1 + drivers/media/usb/uvc/Makefile | 3 +- drivers/media/usb/uvc/uvc_ctrl.c | 201 +++++++++++++++------ drivers/media/usb/uvc/uvc_driver.c | 22 ++- drivers/media/usb/uvc/uvc_entity.c | 3 +- drivers/media/usb/uvc/uvc_swentity.c | 107 +++++++++++ drivers/media/usb/uvc/uvcvideo.h | 22 +++ drivers/media/v4l2-core/v4l2-fwnode.c | 84 ++++++++- include/acpi/acpi_bus.h | 1 - include/linux/usb/uvc.h | 3 + 15 files changed, 441 insertions(+), 127 deletions(-) --- base-commit: afb100a5ea7a13d7e6937dcd3b36b19dc6cc9328 change-id: 20250403-uvc-orientation-5f7f19da5adb Best regards, -- Ricardo Ribalda