Re: [PATCH 4/7] coresight: tpiu: Move ACPI support from AMBA driver to platform driver

From: Sudeep Holla
Date: Wed Nov 22 2023 - 07:10:28 EST


On Wed, Nov 22, 2023 at 11:21:58AM +0000, Sudeep Holla wrote:
> On Wed, Nov 22, 2023 at 12:32:33PM +0530, Anshuman Khandual wrote:
[..]

> > Although, AFAICT, have not seen these before - even on the defconfig.
> > Just to work around this problem, there can be a common module_init()
> > /module_exit() to register/unregister both AMBA and platform drivers,
> > similar to etm4x_init()/etm4x_exit() setup in coresight-etm4x-core.c.
>
> Could this be the reason why I am seeing the below error why booting with
> ACPI ? I wanted to check the tables before I comment but this discussion
> made me think it could be the reason, hence posting this before I got time
> to analyse it.
>
> | coresight-tmc-platform ARMHC97C:00: can't request region for resource [mem 0x20010000-0x20010fff]
> | coresight-tmc-platform: probe of ARMHC97C:00 failed with error -16
> | coresight-tmc-platform ARMHC501:00: can't request region for resource [mem 0x20070000-0x20070fff]
> | coresight-tmc-platform: probe of ARMHC501:00 failed with error -16
>

Scratch that, it didn't help. This error I am seeing is not related to
the issue reported here. I tried a hack below, it didn't help.

Regards,
Sudeep

-->8
diff --git i/drivers/hwtracing/coresight/coresight-tpiu.c w/drivers/hwtracing/coresight/coresight-tpiu.c
index ea8827d289ca..f6ba350b3777 100644
--- i/drivers/hwtracing/coresight/coresight-tpiu.c
+++ w/drivers/hwtracing/coresight/coresight-tpiu.c
@@ -254,8 +254,6 @@ static struct amba_driver tpiu_driver = {
.id_table = tpiu_ids,
};

-module_amba_driver(tpiu_driver);
-
static int tpiu_platform_probe(struct platform_device *pdev)
{
struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
@@ -297,7 +295,21 @@ static struct platform_driver tpiu_platform_driver = {
.pm = &tpiu_dev_pm_ops,
},
};
-module_platform_driver(tpiu_platform_driver);
+
+static int __init tpiu_init(void)
+{
+ amba_driver_register(&tpiu_driver);
+ platform_driver_register(&tpiu_platform_driver);
+ return 0;
+}
+
+static void __exit tpiu_exit(void)
+{
+ amba_driver_unregister(&tpiu_driver);
+ platform_driver_unregister(&tpiu_platform_driver);
+}
+module_init(tpiu_init);
+module_exit(tpiu_exit);

MODULE_AUTHOR("Pratik Patel <pratikp@xxxxxxxxxxxxxx>");
MODULE_AUTHOR("Mathieu Poirier <mathieu.poirier@xxxxxxxxxx>");