[PATCH v5 2/2] coresight: add coresight Trace Network On Chip driver
Konrad Dybcio
konrad.dybcio at oss.qualcomm.com
Mon May 12 09:40:36 PDT 2025
On 5/12/25 1:10 PM, Yuanfang Zhang wrote:
> Add a driver to support Coresight device Trace Network On Chip (TNOC),
> which is an integration hierarchy integrating functionalities of TPDA
> and funnels. It aggregates the trace and transports to coresight trace
> bus.
>
just a couple nits that you can feel free to skip
[...]
> +static void trace_noc_enable_hw(struct trace_noc_drvdata *drvdata)
> +{
> + u32 val;
> +
> + /* Set ATID */
> + writel_relaxed(drvdata->atid, drvdata->base + TRACE_NOC_XLD);
> +
> + /* Set the data word count between 'SYNC' packets */
> + writel_relaxed(TRACE_NOC_SYNC_INTERVAL, drvdata->base + TRACE_NOC_SYNCR);
> +
> + /* Set the Control register:
> + * - Set the FLAG packets to 'FLAG' packets
> + * - Set the FREQ packets to 'FREQ_TS' packets
> + * - Enable generation of output ATB traffic
> + */
> +
> + val = readl_relaxed(drvdata->base + TRACE_NOC_CTRL);
> +
> + val = val & ~TRACE_NOC_CTRL_FLAGTYPE;
> + val = val | TRACE_NOC_CTRL_FREQTYPE;
> + val = val | TRACE_NOC_CTRL_PORTEN;
FWIW 'x &= ~foo' and 'x |= foo' are what one usually expects
[...]
> +static int trace_noc_probe(struct amba_device *adev, const struct amba_id *id)
> +{
> + struct device *dev = &adev->dev;
> + struct coresight_platform_data *pdata;
> + struct trace_noc_drvdata *drvdata;
> + struct coresight_desc desc = { 0 };
> + int ret;
> +
> + desc.name = coresight_alloc_device_name(&trace_noc_devs, dev);
> + if (!desc.name)
> + return -ENOMEM;
it's good to add a newline after return statements
Konrad
More information about the linux-arm-kernel
mailing list