linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Anshuman Khandual <anshuman.khandual@arm.com>
To: linux-arm-kernel@lists.infradead.org, coresight@lists.linaro.org,
	suzuki.poulose@arm.com
Cc: scclevenger@os.amperecomputing.com,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Rob Herring <robh+dt@kernel.org>,
	Frank Rowand <frowand.list@gmail.com>,
	Russell King <linux@armlinux.org.uk>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>, Sudeep Holla <sudeep.holla@arm.com>,
	Lorenzo Pieralisi <lpieralisi@kernel.org>,
	Mathieu Poirier <mathieu.poirier@linaro.org>,
	Mike Leach <mike.leach@linaro.org>, Leo Yan <leo.yan@linaro.org>,
	devicetree@vger.kernel.org, linux-acpi@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH 6/7] of/platform: Skip coresight etm4x devices from AMBA bus
Date: Fri, 17 Mar 2023 08:35:00 +0530	[thread overview]
Message-ID: <20230317030501.1811905-7-anshuman.khandual@arm.com> (raw)
In-Reply-To: <20230317030501.1811905-1-anshuman.khandual@arm.com>

Allow other drivers to claim a device, disregarding the "priority" of
"arm,primecell". e.g., CoreSight ETM4x devices could be accessed via MMIO
(AMBA Bus) or via CPU system instructions. The CoreSight ETM4x platform
driver can now handle both types of devices. In order to make sure the
driver gets to handle the "MMIO based" devices, which always had the
"arm,primecell" compatible, we have two options :

1) Remove the "arm,primecell" from the DTS. But this may be problematic
 for an older kernel without the support.

2) The other option is to allow OF code to "ignore" the arm,primecell
priority for a selected list of compatibles. This would make sure that
both older kernels and the new kernels work fine without breaking
the functionality. The new DTS could always have the "arm,primecell"
removed.

This patch implements Option (2).

Cc: Rob Herring <robh+dt@kernel.org>
Cc: Frank Rowand <frowand.list@gmail.com>
Cc: Russell King (Oracle) <linux@armlinux.org.uk>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Co-developed-by: Suzuki Poulose <suzuki.poulose@arm.com>
Signed-off-by: Suzuki Poulose <suzuki.poulose@arm.com>
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
 drivers/of/platform.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/of/platform.c b/drivers/of/platform.c
index b2bd2e783445..59ff1a38ccaa 100644
--- a/drivers/of/platform.c
+++ b/drivers/of/platform.c
@@ -325,6 +325,13 @@ static const struct of_dev_auxdata *of_dev_lookup(const struct of_dev_auxdata *l
 	return NULL;
 }
 
+static const struct of_device_id of_ignore_amba_table[] = {
+#ifdef CONFIG_CORESIGHT_SOURCE_ETM4X
+	{ .compatible = "arm,coresight-etm4x" },
+#endif
+	{}    /* NULL terminated */
+};
+
 /**
  * of_platform_bus_create() - Create a device for a node and its children.
  * @bus: device node of the bus to instantiate
@@ -373,7 +380,8 @@ static int of_platform_bus_create(struct device_node *bus,
 		platform_data = auxdata->platform_data;
 	}
 
-	if (of_device_is_compatible(bus, "arm,primecell")) {
+	if (of_device_is_compatible(bus, "arm,primecell") &&
+	    unlikely(!of_match_node(of_ignore_amba_table, bus))) {
 		/*
 		 * Don't return an error here to keep compatibility with older
 		 * device tree files.
-- 
2.25.1


  parent reply	other threads:[~2023-03-17  3:07 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-17  3:04 [PATCH 0/7] coresight: etm4x: Migrate AMBA devices to platform driver Anshuman Khandual
2023-03-17  3:04 ` [PATCH 1/7] coresight: etm4x: Allocate and device assign 'struct etmv4_drvdata' earlier Anshuman Khandual
2023-03-17  3:04 ` [PATCH 2/7] coresight: etm4x: Drop iomem 'base' argument from etm4_probe() Anshuman Khandual
2023-03-17  3:04 ` [PATCH 3/7] coresight: etm4x: Drop pid " Anshuman Khandual
2023-03-18  8:21   ` kernel test robot
2023-03-20  2:54     ` Anshuman Khandual
2023-03-17  3:04 ` [PATCH 4/7] coresight: etm4x: Change etm4_platform_driver driver for MMIO devices Anshuman Khandual
2023-03-17  9:32   ` Suzuki K Poulose
2023-03-20  4:28     ` Anshuman Khandual
2023-03-18 10:24   ` kernel test robot
2023-03-20  3:05     ` Anshuman Khandual
2023-03-17  3:04 ` [PATCH 5/7] coresight: etm4x: Add ACPI support in platform driver Anshuman Khandual
2023-03-17  9:36   ` Suzuki K Poulose
2023-03-17  3:05 ` Anshuman Khandual [this message]
2023-03-17 14:52   ` [PATCH 6/7] of/platform: Skip coresight etm4x devices from AMBA bus Rob Herring
2023-03-17 16:03     ` Suzuki K Poulose
2023-03-17 20:06       ` Rob Herring
2023-03-20 10:37         ` Suzuki K Poulose
2023-03-20 14:05           ` Rob Herring
2023-03-20  5:37       ` Anshuman Khandual
2023-03-17  3:05 ` [PATCH 7/7] coresight: etm4x: Drop the AMBA driver Anshuman Khandual
2023-03-20 14:17 ` [PATCH 0/7] coresight: etm4x: Migrate AMBA devices to platform driver Rob Herring
2023-03-21 12:01   ` Suzuki K Poulose
2023-03-21 14:33   ` Sudeep Holla
2023-03-21 16:02     ` Rob Herring

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230317030501.1811905-7-anshuman.khandual@arm.com \
    --to=anshuman.khandual@arm.com \
    --cc=coresight@lists.linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=frowand.list@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=lenb@kernel.org \
    --cc=leo.yan@linaro.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=lpieralisi@kernel.org \
    --cc=mathieu.poirier@linaro.org \
    --cc=mike.leach@linaro.org \
    --cc=rafael@kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=scclevenger@os.amperecomputing.com \
    --cc=sudeep.holla@arm.com \
    --cc=suzuki.poulose@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).