diff mbox series

[V6,6/6] coresight: etm4x: Add ACPI support in platform driver

Message ID 20230710062500.45147-7-anshuman.khandual@arm.com
State New
Headers show
Series [V6,1/6] coresight: etm4x: Allocate and device assign 'struct etmv4_drvdata' earlier | expand

Commit Message

Anshuman Khandual July 10, 2023, 6:25 a.m. UTC
From: Suzuki K Poulose <suzuki.poulose@arm.com>

Drop ETM4X ACPI ID from the AMBA ACPI device list, and instead just move it
inside the new ACPI devices list detected and used via platform driver.

Cc: "Rafael J. Wysocki" <rafael@kernel.org>
Cc: Len Brown <lenb@kernel.org>
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: Mike Leach <mike.leach@linaro.org>
Cc: Leo Yan <leo.yan@linaro.org>
Cc: Sudeep Holla <sudeep.holla@arm.com>
Cc: Lorenzo Pieralisi <lpieralisi@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
Reviewed-by: Sudeep Holla <sudeep.holla@arm.com> (for ACPI specific changes)
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
---
 drivers/acpi/acpi_amba.c                           |  1 -
 drivers/hwtracing/coresight/coresight-etm4x-core.c | 10 ++++++++++
 2 files changed, 10 insertions(+), 1 deletion(-)

Comments

Suzuki K Poulose July 19, 2023, 10:11 a.m. UTC | #1
Rafael, Len

Ping (packets 6, lost 100%).


On 10/07/2023 17:40, Suzuki K Poulose wrote:
> Rafael, Len
> 
> On 10/07/2023 07:25, Anshuman Khandual wrote:
>> From: Suzuki K Poulose <suzuki.poulose@arm.com>
>>
>> Drop ETM4X ACPI ID from the AMBA ACPI device list, and instead just 
>> move it
>> inside the new ACPI devices list detected and used via platform driver.
>>
>> Cc: "Rafael J. Wysocki" <rafael@kernel.org>
>> Cc: Len Brown <lenb@kernel.org>
>> Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
>> Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
>> Cc: Mike Leach <mike.leach@linaro.org>
>> Cc: Leo Yan <leo.yan@linaro.org>
>> Cc: Sudeep Holla <sudeep.holla@arm.com>
>> Cc: Lorenzo Pieralisi <lpieralisi@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
>> Reviewed-by: Sudeep Holla <sudeep.holla@arm.com> (for ACPI specific 
>> changes)
>> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
>> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
> 
> We would like to queue this via coresight tree. The acpi_amba bits have
> been reviewed by Sudeep. Please could you give us an Ack, if you are
> happy with the proposal ?
> 

Kind regards
Suzuki

> Kind regards
> Suzuki
> 
> 
>> ---
>>   drivers/acpi/acpi_amba.c                           |  1 -
>>   drivers/hwtracing/coresight/coresight-etm4x-core.c | 10 ++++++++++
>>   2 files changed, 10 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/acpi/acpi_amba.c b/drivers/acpi/acpi_amba.c
>> index f5b443ab01c2..099966cbac5a 100644
>> --- a/drivers/acpi/acpi_amba.c
>> +++ b/drivers/acpi/acpi_amba.c
>> @@ -22,7 +22,6 @@
>>   static const struct acpi_device_id amba_id_list[] = {
>>       {"ARMH0061", 0}, /* PL061 GPIO Device */
>>       {"ARMH0330", 0}, /* ARM DMA Controller DMA-330 */
>> -    {"ARMHC500", 0}, /* ARM CoreSight ETM4x */
>>       {"ARMHC501", 0}, /* ARM CoreSight ETR */
>>       {"ARMHC502", 0}, /* ARM CoreSight STM */
>>       {"ARMHC503", 0}, /* ARM CoreSight Debug */
>> diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c 
>> b/drivers/hwtracing/coresight/coresight-etm4x-core.c
>> index 43f583987250..703b6fcbb6a5 100644
>> --- a/drivers/hwtracing/coresight/coresight-etm4x-core.c
>> +++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c
>> @@ -3,6 +3,7 @@
>>    * Copyright (c) 2014, The Linux Foundation. All rights reserved.
>>    */
>> +#include <linux/acpi.h>
>>   #include <linux/bitops.h>
>>   #include <linux/kernel.h>
>>   #include <linux/moduleparam.h>
>> @@ -2347,12 +2348,21 @@ static const struct of_device_id 
>> etm4_sysreg_match[] = {
>>       {}
>>   };
>> +#ifdef CONFIG_ACPI
>> +static const struct acpi_device_id etm4x_acpi_ids[] = {
>> +    {"ARMHC500", 0}, /* ARM CoreSight ETM4x */
>> +    {}
>> +};
>> +MODULE_DEVICE_TABLE(acpi, etm4x_acpi_ids);
>> +#endif
>> +
>>   static struct platform_driver etm4_platform_driver = {
>>       .probe        = etm4_probe_platform_dev,
>>       .remove        = etm4_remove_platform_dev,
>>       .driver            = {
>>           .name            = "coresight-etm4x",
>>           .of_match_table        = etm4_sysreg_match,
>> +        .acpi_match_table    = ACPI_PTR(etm4x_acpi_ids),
>>           .suppress_bind_attrs    = true,
>>           .pm            = &etm4_dev_pm_ops,
>>       },
>
Suzuki K Poulose July 24, 2023, 4:25 p.m. UTC | #2
Hi Rafael/Len

On 19/07/2023 11:11, Suzuki K Poulose wrote:
> Rafael, Len
> 
> Ping (packets 6, lost 100%).
> 
> 
> On 10/07/2023 17:40, Suzuki K Poulose wrote:
>> Rafael, Len
>>
>> On 10/07/2023 07:25, Anshuman Khandual wrote:
>>> From: Suzuki K Poulose <suzuki.poulose@arm.com>
>>>
>>> Drop ETM4X ACPI ID from the AMBA ACPI device list, and instead just 
>>> move it
>>> inside the new ACPI devices list detected and used via platform driver.
>>>
>>> Cc: "Rafael J. Wysocki" <rafael@kernel.org>
>>> Cc: Len Brown <lenb@kernel.org>
>>> Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
>>> Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
>>> Cc: Mike Leach <mike.leach@linaro.org>
>>> Cc: Leo Yan <leo.yan@linaro.org>
>>> Cc: Sudeep Holla <sudeep.holla@arm.com>
>>> Cc: Lorenzo Pieralisi <lpieralisi@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
>>> Reviewed-by: Sudeep Holla <sudeep.holla@arm.com> (for ACPI specific 
>>> changes)
>>> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
>>> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
>>
>> We would like to queue this via coresight tree. The acpi_amba bits have
>> been reviewed by Sudeep. Please could you give us an Ack, if you are
>> happy with the proposal ?
>>

Please could one of you respond to this patch ? We are blocked on your 
Ack for queuing this. There are machines out there, which rely on this
patch to use Arm self-hosted tracing based on CoreSight.

Kind regards
Suzuki

> 
> Kind regards
> Suzuki
> 
>> Kind regards
>> Suzuki
>>
>>
>>> ---
>>>   drivers/acpi/acpi_amba.c                           |  1 -
>>>   drivers/hwtracing/coresight/coresight-etm4x-core.c | 10 ++++++++++
>>>   2 files changed, 10 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/acpi/acpi_amba.c b/drivers/acpi/acpi_amba.c
>>> index f5b443ab01c2..099966cbac5a 100644
>>> --- a/drivers/acpi/acpi_amba.c
>>> +++ b/drivers/acpi/acpi_amba.c
>>> @@ -22,7 +22,6 @@
>>>   static const struct acpi_device_id amba_id_list[] = {
>>>       {"ARMH0061", 0}, /* PL061 GPIO Device */
>>>       {"ARMH0330", 0}, /* ARM DMA Controller DMA-330 */
>>> -    {"ARMHC500", 0}, /* ARM CoreSight ETM4x */
>>>       {"ARMHC501", 0}, /* ARM CoreSight ETR */
>>>       {"ARMHC502", 0}, /* ARM CoreSight STM */
>>>       {"ARMHC503", 0}, /* ARM CoreSight Debug */
>>> diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c 
>>> b/drivers/hwtracing/coresight/coresight-etm4x-core.c
>>> index 43f583987250..703b6fcbb6a5 100644
>>> --- a/drivers/hwtracing/coresight/coresight-etm4x-core.c
>>> +++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c
>>> @@ -3,6 +3,7 @@
>>>    * Copyright (c) 2014, The Linux Foundation. All rights reserved.
>>>    */
>>> +#include <linux/acpi.h>
>>>   #include <linux/bitops.h>
>>>   #include <linux/kernel.h>
>>>   #include <linux/moduleparam.h>
>>> @@ -2347,12 +2348,21 @@ static const struct of_device_id 
>>> etm4_sysreg_match[] = {
>>>       {}
>>>   };
>>> +#ifdef CONFIG_ACPI
>>> +static const struct acpi_device_id etm4x_acpi_ids[] = {
>>> +    {"ARMHC500", 0}, /* ARM CoreSight ETM4x */
>>> +    {}
>>> +};
>>> +MODULE_DEVICE_TABLE(acpi, etm4x_acpi_ids);
>>> +#endif
>>> +
>>>   static struct platform_driver etm4_platform_driver = {
>>>       .probe        = etm4_probe_platform_dev,
>>>       .remove        = etm4_remove_platform_dev,
>>>       .driver            = {
>>>           .name            = "coresight-etm4x",
>>>           .of_match_table        = etm4_sysreg_match,
>>> +        .acpi_match_table    = ACPI_PTR(etm4x_acpi_ids),
>>>           .suppress_bind_attrs    = true,
>>>           .pm            = &etm4_dev_pm_ops,
>>>       },
>>
>
Steve Clevenger OS July 25, 2023, 8:18 p.m. UTC | #3
Hi Rafael, Len,

On 7/24/2023 9:25 AM, Suzuki K Poulose wrote:
> Hi Rafael/Len
> 
> On 19/07/2023 11:11, Suzuki K Poulose wrote:
>> Rafael, Len
>>
>> Ping (packets 6, lost 100%).
>>
>>
>> On 10/07/2023 17:40, Suzuki K Poulose wrote:
>>> Rafael, Len
>>>
>>> On 10/07/2023 07:25, Anshuman Khandual wrote:
>>>> From: Suzuki K Poulose <suzuki.poulose@arm.com>
>>>>
>>>> Drop ETM4X ACPI ID from the AMBA ACPI device list, and instead just
>>>> move it
>>>> inside the new ACPI devices list detected and used via platform driver.
>>>>
>>>> Cc: "Rafael J. Wysocki" <rafael@kernel.org>
>>>> Cc: Len Brown <lenb@kernel.org>
>>>> Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
>>>> Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
>>>> Cc: Mike Leach <mike.leach@linaro.org>
>>>> Cc: Leo Yan <leo.yan@linaro.org>
>>>> Cc: Sudeep Holla <sudeep.holla@arm.com>
>>>> Cc: Lorenzo Pieralisi <lpieralisi@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
>>>> Reviewed-by: Sudeep Holla <sudeep.holla@arm.com> (for ACPI specific
>>>> changes)
>>>> Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
>>>> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
>>>
>>> We would like to queue this via coresight tree. The acpi_amba bits have
>>> been reviewed by Sudeep. Please could you give us an Ack, if you are
>>> happy with the proposal ?
>>>
> 
> Please could one of you respond to this patch ? We are blocked on your
> Ack for queuing this. There are machines out there, which rely on this
> patch to use Arm self-hosted tracing based on CoreSight.
> 
> Kind regards
> Suzuki

Ampere Computing AmpereOne machines rely on this patch series to enable
System Register Access to the ETMv4. Ampere removed the ETM MMIO
descriptions from our CoreSight ACPI to use this.

Suzuki's e-mail requests for review/Ack of this patch thread date back
to May 30.

Thanks in advance,
Steve C.

> 
>>
>> Kind regards
>> Suzuki
>>
>>> Kind regards
>>> Suzuki
>>>
>>>
>>>> ---
>>>>   drivers/acpi/acpi_amba.c                           |  1 -
>>>>   drivers/hwtracing/coresight/coresight-etm4x-core.c | 10 ++++++++++
>>>>   2 files changed, 10 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/acpi/acpi_amba.c b/drivers/acpi/acpi_amba.c
>>>> index f5b443ab01c2..099966cbac5a 100644
>>>> --- a/drivers/acpi/acpi_amba.c
>>>> +++ b/drivers/acpi/acpi_amba.c
>>>> @@ -22,7 +22,6 @@
>>>>   static const struct acpi_device_id amba_id_list[] = {
>>>>       {"ARMH0061", 0}, /* PL061 GPIO Device */
>>>>       {"ARMH0330", 0}, /* ARM DMA Controller DMA-330 */
>>>> -    {"ARMHC500", 0}, /* ARM CoreSight ETM4x */
>>>>       {"ARMHC501", 0}, /* ARM CoreSight ETR */
>>>>       {"ARMHC502", 0}, /* ARM CoreSight STM */
>>>>       {"ARMHC503", 0}, /* ARM CoreSight Debug */
>>>> diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c
>>>> b/drivers/hwtracing/coresight/coresight-etm4x-core.c
>>>> index 43f583987250..703b6fcbb6a5 100644
>>>> --- a/drivers/hwtracing/coresight/coresight-etm4x-core.c
>>>> +++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c
>>>> @@ -3,6 +3,7 @@
>>>>    * Copyright (c) 2014, The Linux Foundation. All rights reserved.
>>>>    */
>>>> +#include <linux/acpi.h>
>>>>   #include <linux/bitops.h>
>>>>   #include <linux/kernel.h>
>>>>   #include <linux/moduleparam.h>
>>>> @@ -2347,12 +2348,21 @@ static const struct of_device_id
>>>> etm4_sysreg_match[] = {
>>>>       {}
>>>>   };
>>>> +#ifdef CONFIG_ACPI
>>>> +static const struct acpi_device_id etm4x_acpi_ids[] = {
>>>> +    {"ARMHC500", 0}, /* ARM CoreSight ETM4x */
>>>> +    {}
>>>> +};
>>>> +MODULE_DEVICE_TABLE(acpi, etm4x_acpi_ids);
>>>> +#endif
>>>> +
>>>>   static struct platform_driver etm4_platform_driver = {
>>>>       .probe        = etm4_probe_platform_dev,
>>>>       .remove        = etm4_remove_platform_dev,
>>>>       .driver            = {
>>>>           .name            = "coresight-etm4x",
>>>>           .of_match_table        = etm4_sysreg_match,
>>>> +        .acpi_match_table    = ACPI_PTR(etm4x_acpi_ids),
>>>>           .suppress_bind_attrs    = true,
>>>>           .pm            = &etm4_dev_pm_ops,
>>>>       },
>>>
>>
>
diff mbox series

Patch

diff --git a/drivers/acpi/acpi_amba.c b/drivers/acpi/acpi_amba.c
index f5b443ab01c2..099966cbac5a 100644
--- a/drivers/acpi/acpi_amba.c
+++ b/drivers/acpi/acpi_amba.c
@@ -22,7 +22,6 @@ 
 static const struct acpi_device_id amba_id_list[] = {
 	{"ARMH0061", 0}, /* PL061 GPIO Device */
 	{"ARMH0330", 0}, /* ARM DMA Controller DMA-330 */
-	{"ARMHC500", 0}, /* ARM CoreSight ETM4x */
 	{"ARMHC501", 0}, /* ARM CoreSight ETR */
 	{"ARMHC502", 0}, /* ARM CoreSight STM */
 	{"ARMHC503", 0}, /* ARM CoreSight Debug */
diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c b/drivers/hwtracing/coresight/coresight-etm4x-core.c
index 43f583987250..703b6fcbb6a5 100644
--- a/drivers/hwtracing/coresight/coresight-etm4x-core.c
+++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c
@@ -3,6 +3,7 @@ 
  * Copyright (c) 2014, The Linux Foundation. All rights reserved.
  */
 
+#include <linux/acpi.h>
 #include <linux/bitops.h>
 #include <linux/kernel.h>
 #include <linux/moduleparam.h>
@@ -2347,12 +2348,21 @@  static const struct of_device_id etm4_sysreg_match[] = {
 	{}
 };
 
+#ifdef CONFIG_ACPI
+static const struct acpi_device_id etm4x_acpi_ids[] = {
+	{"ARMHC500", 0}, /* ARM CoreSight ETM4x */
+	{}
+};
+MODULE_DEVICE_TABLE(acpi, etm4x_acpi_ids);
+#endif
+
 static struct platform_driver etm4_platform_driver = {
 	.probe		= etm4_probe_platform_dev,
 	.remove		= etm4_remove_platform_dev,
 	.driver			= {
 		.name			= "coresight-etm4x",
 		.of_match_table		= etm4_sysreg_match,
+		.acpi_match_table	= ACPI_PTR(etm4x_acpi_ids),
 		.suppress_bind_attrs	= true,
 		.pm			= &etm4_dev_pm_ops,
 	},