Re: [PATCH v4 04/10] coresight: Appropriately disable programming clocks

From: Suzuki K Poulose
Date: Tue Jul 22 2025 - 09:25:35 EST


On 21/07/2025 14:59, Leo Yan wrote:
On Mon, Jul 21, 2025 at 12:40:38PM +0100, Suzuki Kuruppassery Poulose wrote:
On 21/07/2025 11:48, Leo Yan wrote:
On Mon, Jul 21, 2025 at 10:15:22AM +0100, Suzuki Kuruppassery Poulose wrote:

[...]

diff --git a/include/linux/coresight.h b/include/linux/coresight.h
index 4ac65c68bbf44b98db22c3dad2d83a224ce5278e..dd2b4cc7a2b70cf060a3207548fe80e3824c489f 100644
--- a/include/linux/coresight.h
+++ b/include/linux/coresight.h
@@ -480,26 +480,16 @@ static inline bool is_coresight_device(void __iomem *base)
* Returns:
*
* clk - Clock is found and enabled
- * NULL - clock is not found

This is still valid, right ?

No. Since this patch uses devm_clk_get_enabled() to get a clock, if the
pclk is not found, it returns -ENOENT (see of_parse_clkspec()).

Only the optional clock APIs (e.g., devm_clk_get_optional_enabled())
return a NULL pointer instead of -ENOENT when the clock is not found.

This will break ACPI based systems, as we may not have a "pclk" described
for them. We should be able to tolerate "no pclk"

Get it. How about change the code like below?

static inline struct clk *coresight_get_enable_apb_pclk(struct device *dev)
{
struct clk *pclk;

pclk = devm_clk_get_enabled(dev, "apb_pclk");
if (IS_ERR(pclk))
pclk = devm_clk_get_enabled(dev, "apb");

/* Tolerate no pclk for ACPI device */
if ((pclk == ERR_PTR(-ENOENT)) && has_acpi_companion(dev))

That might be OK, please could you test this out ?




return NULL;

return pclk;
}