From patchwork Fri Mar 17 03:04:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anshuman Khandual X-Patchwork-Id: 6787 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp117802wrt; Thu, 16 Mar 2023 20:11:24 -0700 (PDT) X-Google-Smtp-Source: AK7set8AHC47QTFpIP5eSkQnc6npIiiIqa9pkKh6VkmkimFXxdHJmtiYiV9Fl/Aoo/jPxQ+bgp8H X-Received: by 2002:a17:90b:4ac9:b0:23d:10f2:bda2 with SMTP id mh9-20020a17090b4ac900b0023d10f2bda2mr6392908pjb.30.1679022683866; Thu, 16 Mar 2023 20:11:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679022683; cv=none; d=google.com; s=arc-20160816; b=W25zspvBYuI8Y7eBGhvmXRBBpQs5utDY84FUDPY+KaNJPL8OczPOIe5zHyOnG/m6HI Fqw1Jj9rtg1mIY0KIRo09L+qi76Y13YyCGi6IRBWtqNDAcCb3u1rkyJ6M0xgDAcT5JdY IMUafML32iyzn0NnccRn6vt5DwYCxPBVTrZU6NVVClqvatfMqc2x+EJ+vxbba27PhZr/ 6a//T+8dpyMOCADNNFfHilxICfyRR2u3OpQF8IyZUSqvb3aFYyTbOkYBxXIhUeoXw2Hq WfuQ7hWtmadGk5/rmy4TRcP46tB3K4cBrzCSntuaboqy4TZ0ZrLUzQO8W6PLab4EjDC9 SY6g== 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=Kbj6etjhebwpbw60wPjmc/MqAWkeAM6Zq7MSEo8xwHs=; b=LY1ZeL71BiG73G+f+yygvyTRu6wCggdar/0M6uzR+PJDKcHQM15lkLeZt7lekCl1OR dPRGtqXkAbO/N7X5l30+iEHK0sRm8YymKE0bEoJJtiUP6/Jsix64c7gIJSorH+s40ms/ Xwd1h3aTPMhrSDeK2tnTkTwbDKzU5Jk/e+sjCFPFWvpkWE1CWUOz3/i7nqjLzuDUQjln OdZNfFVFfz3R+gOlPr0J6GS6ZdsYVtRd2PB6pmM21+JvFfO52SwrlvoQG1IeSLW/uZgT fRx7/W+SmRsmSpYMH71iRcXvSFboNTsbwUXvQo1Cy/OVjSP3AHK/azUzBk626Tvj9E67 vqEg== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c13-20020a17090ab28d00b0023f254b442asi931532pjr.78.2023.03.16.20.11.11; Thu, 16 Mar 2023 20:11:23 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229720AbjCQDF0 (ORCPT + 99 others); Thu, 16 Mar 2023 23:05:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55620 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229542AbjCQDFY (ORCPT ); Thu, 16 Mar 2023 23:05:24 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 1D8D426B1; Thu, 16 Mar 2023 20:05:21 -0700 (PDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 1582A4B3; Thu, 16 Mar 2023 20:06:05 -0700 (PDT) Received: from a077893.blr.arm.com (unknown [10.162.40.17]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id DC2623F64C; Thu, 16 Mar 2023 20:05:15 -0700 (PDT) From: Anshuman Khandual To: linux-arm-kernel@lists.infradead.org, coresight@lists.linaro.org, suzuki.poulose@arm.com Cc: scclevenger@os.amperecomputing.com, Anshuman Khandual , Rob Herring , Frank Rowand , Russell King , Greg Kroah-Hartman , "Rafael J. Wysocki" , Len Brown , Sudeep Holla , Lorenzo Pieralisi , Mathieu Poirier , Mike Leach , Leo Yan , devicetree@vger.kernel.org, linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 0/7] coresight: etm4x: Migrate AMBA devices to platform driver Date: Fri, 17 Mar 2023 08:34:54 +0530 Message-Id: <20230317030501.1811905-1-anshuman.khandual@arm.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_NONE 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: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760582890042379118?= X-GMAIL-MSGID: =?utf-8?q?1760582890042379118?= CoreSight ETM4x devices could be accessed either via MMIO (handled via amba_driver) or CPU system instructions (handled via platform driver). But this has the following issues : - Each new CPU comes up with its own PID and thus we need to keep on adding the "known" PIDs to get it working with AMBA driver. While the ETM4 architecture (and CoreSight architecture) defines way to identify a device as ETM4. Thus older kernels won't be able to "discover" a newer CPU, unless we add the PIDs. - With ACPI, the ETM4x devices have the same HID to identify the device irrespective of the mode of access. This creates a problem where two different drivers (both AMBA based driver and platform driver) would hook into the "HID" and could conflict. e.g., if AMBA driver gets hold of a non-MMIO device, the probe fails. If we have single driver hooked into the given "HID", we could handle them seamlessly, irrespective of the mode of access. - CoreSight is heavily dependent on the runtime power management. With ACPI, amba_driver doesn't get us anywhere with handling the power and thus one need to always turn the power ON to use them. Moving to platform driver gives us the power management for free. Due to all of the above, we are moving the MMIO based etm4x devices to be supported via platform driver. The series makes the existing platform driver generic to handle both type of the access modes. With that we can also remove the etm4x amba driver. Finally, we need a way to make sure the new driver gets control of the ETM4x device on a DT based system. CoreSight devices have always had the "arm,primecell" in the compatible list. But the way this is handled currently in OF code is a bit messy. The ETM4x devices are identified by "arm,coresight-etm4x". The platform driver can never get a chance to probe these devices, since the "arm,primecell" takes priority and is hard-coded in the OF code. We have two options here : 1) Remove the arm,primecell from all DTS. This is fine for "new" kernels with this change. But, for existing boards, using an older kernel will break. Thus, is not preferred. 2) Add a white list of "compatibles" where the "priority" of the "arm,primecell" can be ignored. The series implements (2) above and applies on 6.3-rc2. Cc: Steve Clevenger Cc: Rob Herring Cc: Frank Rowand Cc: Russell King (Oracle) Cc: Greg Kroah-Hartman Cc: "Rafael J. Wysocki" Cc: Len Brown Cc: Sudeep Holla Cc: Lorenzo Pieralisi Cc: Mathieu Poirier Cc: Suzuki K Poulose Cc: Mike Leach Cc: Leo Yan Cc: devicetree@vger.kernel.org Cc: linux-acpi@vger.kernel.org Cc: coresight@lists.linaro.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Anshuman Khandual (6): coresight: etm4x: Allocate and device assign 'struct etmv4_drvdata' earlier coresight: etm4x: Drop iomem 'base' argument from etm4_probe() coresight: etm4x: Drop pid argument from etm4_probe() coresight: etm4x: Change etm4_platform_driver driver for MMIO devices of/platform: Skip coresight etm4x devices from AMBA bus coresight: etm4x: Drop the AMBA driver Suzuki Poulose (1): coresight: etm4x: Add ACPI support in platform driver drivers/acpi/acpi_amba.c | 1 - .../coresight/coresight-etm4x-core.c | 171 ++++++++---------- drivers/hwtracing/coresight/coresight-etm4x.h | 3 + drivers/of/platform.c | 10 +- include/linux/coresight.h | 56 ++++++ 5 files changed, 143 insertions(+), 98 deletions(-)