Message ID | 13276375.uLZWGnKmhe@kreacher |
---|---|
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2789922vqo; Wed, 24 May 2023 05:02:32 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5g9QoE1QP998e97SjMue194aNrLDINqcdjqj4OP3agQV6BdN+q50pDvUBzG+heTPE4XRvn X-Received: by 2002:a05:6a20:7f93:b0:10b:6265:6ddc with SMTP id d19-20020a056a207f9300b0010b62656ddcmr11677132pzj.22.1684929752165; Wed, 24 May 2023 05:02:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684929752; cv=none; d=google.com; s=arc-20160816; b=lO2+189qFdu7PRtg/ejgsD3ecB/7itzww4QPJ0j9K+oaTHUZCFSIl7MbdGIYnuoaxs Q4e4qCkOdk1u9D/3IU3GYc4mP9eoOp13mdhBUMleZJeWexBUVKvZAcvblF+JNLZh4+3b PkyVA3YkdZWF4dL4zDh+uPFBGktgV1RC4G5lwsjQm49HuDglaCWv1sgIwOTcCOnCI+R2 92h5ZbU9rvLBReE4wTSmCvm5Hw+nChcpQQG/jxMSj5XBzGBsXZfTIx35Dge+AmUON070 IFL0RWyaNlBLpWFGug8Wvf/+jXUt1Y3jHYKdPRcfiHmE8uctaf9MgIXsdrggDe62cmOa 5qTQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=/9B6OarI0j6gpy541hhbuxJJNssq/CjYZaOSC+oOYgE=; b=ntxBCl5L94VrCH+vNB507t5Cjq1t2fkob5ujsJvqQ7Sak2Rd/25r5LfqhHcVmzqoib 7sNGBq/ZRZEgrpG6MvyMZjg1yhZxA81QcMOFQ+L7pOPRB8fv3DULXptGokfy7pcYBInw 9qXOhZrsz0+/fD3wgICiOi6qCvSGJdggKYM1FJ6jDXEo1AkWbM55FNjifeqAICET/+JB Su1LROqwEE7Q285gfqAlvF+70mG/eUwMLUCOaStgm4gf93iHJ3Jhx028y26fIaJq5mka UYuRK57M+G7txC1Ts/UHsic0EtB8yxUIKyLvVBp7pHdnHiudJQAp3WOya4tBmLTKe+ni Mzhw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b10-20020a17090a6e0a00b002473e331f90si1188790pjk.46.2023.05.24.05.02.16; Wed, 24 May 2023 05:02:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229739AbjEXLtJ (ORCPT <rfc822;ahmedalshaiji.dev@gmail.com> + 99 others); Wed, 24 May 2023 07:49:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33004 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231602AbjEXLsp (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Wed, 24 May 2023 07:48:45 -0400 Received: from cloudserver094114.home.pl (cloudserver094114.home.pl [79.96.170.134]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7820D18E; Wed, 24 May 2023 04:48:35 -0700 (PDT) Received: from localhost (127.0.0.1) (HELO v370.home.net.pl) by /usr/run/smtp (/usr/run/postfix/private/idea_relay_lmtp) via UNIX with SMTP (IdeaSmtpServer 5.2.0) id 81bca2cbad912bad; Wed, 24 May 2023 13:48:33 +0200 Received: from kreacher.localnet (unknown [195.136.19.94]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by v370.home.net.pl (Postfix) with ESMTPSA id 7321A69D7E2; Wed, 24 May 2023 13:48:33 +0200 (CEST) From: "Rafael J. Wysocki" <rjw@rjwysocki.net> To: Linux ACPI <linux-acpi@vger.kernel.org>, Sakari Ailus <sakari.ailus@linux.intel.com> Cc: LKML <linux-kernel@vger.kernel.org>, Hans de Goede <hdegoede@redhat.com>, Andy Shevchenko <andriy.shevchenko@linux.intel.com> Subject: [PATCH v1 0/6] ACPI: scan: MIPI DiSco for Imaging support Date: Wed, 24 May 2023 13:38:32 +0200 Message-ID: <13276375.uLZWGnKmhe@kreacher> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="UTF-8" X-CLIENT-IP: 195.136.19.94 X-CLIENT-HOSTNAME: 195.136.19.94 X-VADE-SPAMSTATE: clean X-VADE-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedvhedrfeejhedggeefucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecujffqoffgrffnpdggtffipffknecuuegrihhlohhuthemucduhedtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhvfevufffkfgggfgtsehtufertddttdejnecuhfhrohhmpedftfgrfhgrvghlucflrdcuhgihshhotghkihdfuceorhhjfiesrhhjfiihshhotghkihdrnhgvtheqnecuggftrfgrthhtvghrnhepffeiuedtieekveekleeiieeghefhveegteeghfffvdduueefudegkeeukeffffdvnecuffhomhgrihhnpehkvghrnhgvlhdrohhrghdpuhgvfhhirdhorhhgpdhmihhpihdrohhrghenucfkphepudelhedrudefiedrudelrdelgeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduleehrddufeeirdduledrleegpdhhvghlohepkhhrvggrtghhvghrrdhlohgtrghlnhgvthdpmhgrihhlfhhrohhmpedftfgrfhgrvghlucflrdcuhgihshhotghkihdfuceorhhjfiesrhhjfiihshhotghkihdrnhgvtheqpdhnsggprhgtphhtthhopeehpdhrtghpthhtoheplhhinhhugidqrggtphhisehvghgvrhdrkhgvrhhnvghlrdhorhhgpdhrtghpthhtohepshgrkhgrrhhirdgrihhluhhssehlihhnuhigrdhinhhtvghlrdgtohhmpdhrtghpthhtoheplhhinhhugidqkhgvrhhnvghlsehvghgvrhdrkhgvrhhnvghlrdho rhhgpdhrtghpthhtohephhguvghgohgvuggvsehrvgguhhgrthdrtghomhdprhgtphhtthhopegrnhgurhhihidrshhhvghvtghhvghnkhhosehlihhnuhigrdhinhhtvghlrdgtohhm X-DCC--Metrics: v370.home.net.pl 1024; Body=5 Fuz1=5 Fuz2=5 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766776899742892955?= X-GMAIL-MSGID: =?utf-8?q?1766776899742892955?= |
Series |
ACPI: scan: MIPI DiSco for Imaging support
|
|
Message
Rafael J. Wysocki
May 24, 2023, 11:38 a.m. UTC
Hi Folks, This basically is a re-write of a recent patch series from Sakari: https://lore.kernel.org/linux-acpi/20230329100951.1522322-1-sakari.ailus@linux.intel.com The general idea is the same - CSI-2 resource descriptors, introduced in ACPI 6.4 and defined by https://uefi.org/specs/ACPI/6.5/06_Device_Configuration.html#camera-serial-interface-csi-2-connection-resource-descriptor are found and used for creating a set of software nodes that represent the CSI-2 connection graph. These software nodes need to be available before any scan handlers or ACPI drivers are bound to any struct acpi_device objects, so all of that is done at the early stage of ACPI device enumeration, but unnecessary ACPI namespace walks are avoided. The CSI-2 software nodes are populated with data extracted from the CSI-2 resource descriptors themselves and from device properties defined by the MIPI DiSco for Imaging specification (see https://www.mipi.org/specifications/mipi-disco-imaging). Patches [4,6/6] come from the original series directly, but the other patches have been changes substantially, so I've decided to re-start patch series versioning from scratch. This series is based on the patch at https://patchwork.kernel.org/project/linux-acpi/patch/12223415.O9o76ZdvQC@kreacher/ applied on top of 6.4-rc3. Later on, I'll put all of this material into a special git branch for easier access. Thanks!
Comments
On Wed, May 24, 2023 at 1:48 PM Rafael J. Wysocki <rjw@rjwysocki.net> wrote: > > Hi Folks, > > This basically is a re-write of a recent patch series from Sakari: > > https://lore.kernel.org/linux-acpi/20230329100951.1522322-1-sakari.ailus@linux.intel.com > > The general idea is the same - CSI-2 resource descriptors, introduced in > ACPI 6.4 and defined by > > https://uefi.org/specs/ACPI/6.5/06_Device_Configuration.html#camera-serial-interface-csi-2-connection-resource-descriptor > > are found and used for creating a set of software nodes that represent the CSI-2 > connection graph. > > These software nodes need to be available before any scan handlers or ACPI drivers > are bound to any struct acpi_device objects, so all of that is done at the early > stage of ACPI device enumeration, but unnecessary ACPI namespace walks are avoided. > > The CSI-2 software nodes are populated with data extracted from the CSI-2 resource > descriptors themselves and from device properties defined by the MIPI DiSco for > Imaging specification (see https://www.mipi.org/specifications/mipi-disco-imaging). > > Patches [4,6/6] come from the original series directly, but the other patches have > been changes substantially, so I've decided to re-start patch series versioning from > scratch. I should have mentioned that the following two patches are not included: https://patchwork.kernel.org/project/linux-acpi/patch/20230329100951.1522322-9-sakari.ailus@linux.intel.com/ https://patchwork.kernel.org/project/linux-acpi/patch/20230329100951.1522322-10-sakari.ailus@linux.intel.com/ because I don't agree with the idea of renaming device properties in place. Also not included is the documentation patch, because comments are added by the individual patches making changes in the code. Thanks!
On Wed, May 24, 2023 at 1:48 PM Rafael J. Wysocki <rjw@rjwysocki.net> wrote: > > Hi Folks, > > This basically is a re-write of a recent patch series from Sakari: > > https://lore.kernel.org/linux-acpi/20230329100951.1522322-1-sakari.ailus@linux.intel.com > > The general idea is the same - CSI-2 resource descriptors, introduced in > ACPI 6.4 and defined by > > https://uefi.org/specs/ACPI/6.5/06_Device_Configuration.html#camera-serial-interface-csi-2-connection-resource-descriptor > > are found and used for creating a set of software nodes that represent the CSI-2 > connection graph. > > These software nodes need to be available before any scan handlers or ACPI drivers > are bound to any struct acpi_device objects, so all of that is done at the early > stage of ACPI device enumeration, but unnecessary ACPI namespace walks are avoided. > > The CSI-2 software nodes are populated with data extracted from the CSI-2 resource > descriptors themselves and from device properties defined by the MIPI DiSco for > Imaging specification (see https://www.mipi.org/specifications/mipi-disco-imaging). > > Patches [4,6/6] come from the original series directly, but the other patches have > been changes substantially, so I've decided to re-start patch series versioning from > scratch. > > This series is based on the patch at > > https://patchwork.kernel.org/project/linux-acpi/patch/12223415.O9o76ZdvQC@kreacher/ > > applied on top of 6.4-rc3. > > Later on, I'll put all of this material into a special git branch for easier > access. The patches are now available from the acpi-mipi-disco-imaging branch in the linux-pm.git tree at kernel.org. Thanks!
Hi Rafael, On Wed, May 24, 2023 at 08:06:09PM +0200, Rafael J. Wysocki wrote: > On Wed, May 24, 2023 at 1:48 PM Rafael J. Wysocki <rjw@rjwysocki.net> wrote: > > > > Hi Folks, > > > > This basically is a re-write of a recent patch series from Sakari: > > > > https://lore.kernel.org/linux-acpi/20230329100951.1522322-1-sakari.ailus@linux.intel.com > > > > The general idea is the same - CSI-2 resource descriptors, introduced in > > ACPI 6.4 and defined by > > > > https://uefi.org/specs/ACPI/6.5/06_Device_Configuration.html#camera-serial-interface-csi-2-connection-resource-descriptor > > > > are found and used for creating a set of software nodes that represent the CSI-2 > > connection graph. > > > > These software nodes need to be available before any scan handlers or ACPI drivers > > are bound to any struct acpi_device objects, so all of that is done at the early > > stage of ACPI device enumeration, but unnecessary ACPI namespace walks are avoided. > > > > The CSI-2 software nodes are populated with data extracted from the CSI-2 resource > > descriptors themselves and from device properties defined by the MIPI DiSco for > > Imaging specification (see https://www.mipi.org/specifications/mipi-disco-imaging). > > > > Patches [4,6/6] come from the original series directly, but the other patches have > > been changes substantially, so I've decided to re-start patch series versioning from > > scratch. > > > > This series is based on the patch at > > > > https://patchwork.kernel.org/project/linux-acpi/patch/12223415.O9o76ZdvQC@kreacher/ > > > > applied on top of 6.4-rc3. > > > > Later on, I'll put all of this material into a special git branch for easier > > access. > > The patches are now available from the acpi-mipi-disco-imaging branch > in the linux-pm.git tree at kernel.org. I've been doing some testing on this version. It oopses and that's relatively easy to fix by removing the kfree() that releases memory of the software nodes and properties. It doesn't work with that change either, it would seem like that the _CRS CSI2 data is (most of the time) released before it gets used for creating the software nodes, leading node registration to fail. This appears to be taking place in different processes --- there's a work queue. Moving the release of the _CRS CSI-2 resources to where they are no longer needed makes the system crash early at boot. I've yet to debug this further.
Hi Sakari, On Fri, Jun 9, 2023 at 11:51 AM Sakari Ailus <sakari.ailus@linux.intel.com> wrote: > > Hi Rafael, > > On Wed, May 24, 2023 at 08:06:09PM +0200, Rafael J. Wysocki wrote: > > On Wed, May 24, 2023 at 1:48 PM Rafael J. Wysocki <rjw@rjwysocki.net> wrote: > > > > > > Hi Folks, > > > > > > This basically is a re-write of a recent patch series from Sakari: > > > > > > https://lore.kernel.org/linux-acpi/20230329100951.1522322-1-sakari.ailus@linux.intel.com > > > > > > The general idea is the same - CSI-2 resource descriptors, introduced in > > > ACPI 6.4 and defined by > > > > > > https://uefi.org/specs/ACPI/6.5/06_Device_Configuration.html#camera-serial-interface-csi-2-connection-resource-descriptor > > > > > > are found and used for creating a set of software nodes that represent the CSI-2 > > > connection graph. > > > > > > These software nodes need to be available before any scan handlers or ACPI drivers > > > are bound to any struct acpi_device objects, so all of that is done at the early > > > stage of ACPI device enumeration, but unnecessary ACPI namespace walks are avoided. > > > > > > The CSI-2 software nodes are populated with data extracted from the CSI-2 resource > > > descriptors themselves and from device properties defined by the MIPI DiSco for > > > Imaging specification (see https://www.mipi.org/specifications/mipi-disco-imaging). > > > > > > Patches [4,6/6] come from the original series directly, but the other patches have > > > been changes substantially, so I've decided to re-start patch series versioning from > > > scratch. > > > > > > This series is based on the patch at > > > > > > https://patchwork.kernel.org/project/linux-acpi/patch/12223415.O9o76ZdvQC@kreacher/ > > > > > > applied on top of 6.4-rc3. > > > > > > Later on, I'll put all of this material into a special git branch for easier > > > access. > > > > The patches are now available from the acpi-mipi-disco-imaging branch > > in the linux-pm.git tree at kernel.org. > > I've been doing some testing on this version. Thanks for testing! > It oopses and that's relatively easy to fix by removing the kfree() that > releases memory of the software nodes and properties. It would be good to check which of the patches introduces the crash. > It doesn't work with that change either, it would seem like that the _CRS > CSI2 data is (most of the time) released before it gets used for creating > the software nodes, leading node registration to fail. This appears to be > taking place in different processes --- there's a work queue. > > Moving the release of the _CRS CSI-2 resources to where they are no longer > needed makes the system crash early at boot. I've yet to debug this > further. OK, thanks! I think that the way to go would be to check if the results of the first patch are as expected and if so, move to the next one etc.