Message ID | 20250211062021.7013-1-jie.gan@oss.qualcomm.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Series | Coresight: Improve the method for passing through perf handle | expand |
On 2/11/2025 2:20 PM, Jie Gan wrote: > From: James Clark <james.clark@linaro.org> > > Currently, the perf handle is being passed to the sink device as a void > parameter with additional type conversion. Improve the method for > passing perf handle parameter to make the code more readable. > > Signed-off-by: James Clark <james.clark@linaro.org> > Signed-off-by: Jie Gan <jie.gan@oss.qualcomm.com> > --- > prerequisite-message-id: <20250207064213.2314482-5-quic_jiegan@quicinc.com> Gentle ping. The dependency has applied. Thanks, Jie > --- > drivers/hwtracing/coresight/coresight-core.c | 8 ++++---- > drivers/hwtracing/coresight/coresight-dummy.c | 2 +- > drivers/hwtracing/coresight/coresight-etb10.c | 7 +++---- > drivers/hwtracing/coresight/coresight-priv.h | 2 +- > drivers/hwtracing/coresight/coresight-tmc-etf.c | 8 ++++---- > drivers/hwtracing/coresight/coresight-tmc-etr.c | 11 +++++------ > drivers/hwtracing/coresight/coresight-tmc.h | 2 +- > drivers/hwtracing/coresight/coresight-tpiu.c | 2 +- > drivers/hwtracing/coresight/coresight-trbe.c | 3 +-- > drivers/hwtracing/coresight/ultrasoc-smb.c | 7 +++---- > include/linux/coresight.h | 2 +- > 11 files changed, 25 insertions(+), 29 deletions(-) > > diff --git a/drivers/hwtracing/coresight/coresight-core.c b/drivers/hwtracing/coresight/coresight-core.c > index 3bdd6ebd4b6e..9246b46bdc3b 100644 > --- a/drivers/hwtracing/coresight/coresight-core.c > +++ b/drivers/hwtracing/coresight/coresight-core.c > @@ -272,9 +272,9 @@ void coresight_add_helper(struct coresight_device *csdev, > EXPORT_SYMBOL_GPL(coresight_add_helper); > > static int coresight_enable_sink(struct coresight_device *csdev, > - enum cs_mode mode, void *data) > + enum cs_mode mode, struct perf_output_handle *handle) > { > - return sink_ops(csdev)->enable(csdev, mode, data); > + return sink_ops(csdev)->enable(csdev, mode, handle); > } > > static void coresight_disable_sink(struct coresight_device *csdev) > @@ -448,7 +448,7 @@ static int coresight_enable_helpers(struct coresight_device *csdev, > } > > int coresight_enable_path(struct coresight_path *path, enum cs_mode mode, > - void *sink_data) > + struct perf_output_handle *handle) > { > int ret = 0; > u32 type; > @@ -478,7 +478,7 @@ int coresight_enable_path(struct coresight_path *path, enum cs_mode mode, > > switch (type) { > case CORESIGHT_DEV_TYPE_SINK: > - ret = coresight_enable_sink(csdev, mode, sink_data); > + ret = coresight_enable_sink(csdev, mode, handle); > /* > * Sink is the first component turned on. If we > * failed to enable the sink, there are no components > diff --git a/drivers/hwtracing/coresight/coresight-dummy.c b/drivers/hwtracing/coresight/coresight-dummy.c > index d9a811d44885..42de46949d73 100644 > --- a/drivers/hwtracing/coresight/coresight-dummy.c > +++ b/drivers/hwtracing/coresight/coresight-dummy.c > @@ -51,7 +51,7 @@ static int dummy_source_trace_id(struct coresight_device *csdev, __maybe_unused > } > > static int dummy_sink_enable(struct coresight_device *csdev, enum cs_mode mode, > - void *data) > + struct perf_output_handle *handle) > { > dev_dbg(csdev->dev.parent, "Dummy sink enabled\n"); > > diff --git a/drivers/hwtracing/coresight/coresight-etb10.c b/drivers/hwtracing/coresight/coresight-etb10.c > index aea9ac9c4bd0..e373b0f590bf 100644 > --- a/drivers/hwtracing/coresight/coresight-etb10.c > +++ b/drivers/hwtracing/coresight/coresight-etb10.c > @@ -167,13 +167,12 @@ static int etb_enable_sysfs(struct coresight_device *csdev) > return ret; > } > > -static int etb_enable_perf(struct coresight_device *csdev, void *data) > +static int etb_enable_perf(struct coresight_device *csdev, struct perf_output_handle *handle) > { > int ret = 0; > pid_t pid; > unsigned long flags; > struct etb_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); > - struct perf_output_handle *handle = data; > struct cs_buffers *buf = etm_perf_sink_config(handle); > > spin_lock_irqsave(&drvdata->spinlock, flags); > @@ -224,7 +223,7 @@ static int etb_enable_perf(struct coresight_device *csdev, void *data) > } > > static int etb_enable(struct coresight_device *csdev, enum cs_mode mode, > - void *data) > + struct perf_output_handle *handle) > { > int ret; > > @@ -233,7 +232,7 @@ static int etb_enable(struct coresight_device *csdev, enum cs_mode mode, > ret = etb_enable_sysfs(csdev); > break; > case CS_MODE_PERF: > - ret = etb_enable_perf(csdev, data); > + ret = etb_enable_perf(csdev, handle); > break; > default: > ret = -EINVAL; > diff --git a/drivers/hwtracing/coresight/coresight-priv.h b/drivers/hwtracing/coresight/coresight-priv.h > index c10dd3643854..eca06a89843f 100644 > --- a/drivers/hwtracing/coresight/coresight-priv.h > +++ b/drivers/hwtracing/coresight/coresight-priv.h > @@ -134,7 +134,7 @@ static inline void CS_UNLOCK(void __iomem *addr) > > void coresight_disable_path(struct coresight_path *path); > int coresight_enable_path(struct coresight_path *path, enum cs_mode mode, > - void *sink_data); > + struct perf_output_handle *handle); > struct coresight_device *coresight_get_sink(struct coresight_path *path); > struct coresight_device *coresight_get_sink_by_id(u32 id); > struct coresight_device * > diff --git a/drivers/hwtracing/coresight/coresight-tmc-etf.c b/drivers/hwtracing/coresight/coresight-tmc-etf.c > index d4f641cd9de6..fdf1c2511d67 100644 > --- a/drivers/hwtracing/coresight/coresight-tmc-etf.c > +++ b/drivers/hwtracing/coresight/coresight-tmc-etf.c > @@ -244,13 +244,13 @@ static int tmc_enable_etf_sink_sysfs(struct coresight_device *csdev) > return ret; > } > > -static int tmc_enable_etf_sink_perf(struct coresight_device *csdev, void *data) > +static int tmc_enable_etf_sink_perf(struct coresight_device *csdev, > + struct perf_output_handle *handle) > { > int ret = 0; > pid_t pid; > unsigned long flags; > struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); > - struct perf_output_handle *handle = data; > struct cs_buffers *buf = etm_perf_sink_config(handle); > > spin_lock_irqsave(&drvdata->spinlock, flags); > @@ -302,7 +302,7 @@ static int tmc_enable_etf_sink_perf(struct coresight_device *csdev, void *data) > } > > static int tmc_enable_etf_sink(struct coresight_device *csdev, > - enum cs_mode mode, void *data) > + enum cs_mode mode, struct perf_output_handle *handle) > { > int ret; > > @@ -311,7 +311,7 @@ static int tmc_enable_etf_sink(struct coresight_device *csdev, > ret = tmc_enable_etf_sink_sysfs(csdev); > break; > case CS_MODE_PERF: > - ret = tmc_enable_etf_sink_perf(csdev, data); > + ret = tmc_enable_etf_sink_perf(csdev, handle); > break; > /* We shouldn't be here */ > default: > diff --git a/drivers/hwtracing/coresight/coresight-tmc-etr.c b/drivers/hwtracing/coresight/coresight-tmc-etr.c > index a48bb85d0e7f..2d0bd06bab2a 100644 > --- a/drivers/hwtracing/coresight/coresight-tmc-etr.c > +++ b/drivers/hwtracing/coresight/coresight-tmc-etr.c > @@ -1252,9 +1252,8 @@ static int tmc_enable_etr_sink_sysfs(struct coresight_device *csdev) > } > > struct etr_buf *tmc_etr_get_buffer(struct coresight_device *csdev, > - enum cs_mode mode, void *data) > + enum cs_mode mode, struct perf_output_handle *handle) > { > - struct perf_output_handle *handle = data; > struct etr_perf_buffer *etr_perf; > > switch (mode) { > @@ -1642,13 +1641,13 @@ tmc_update_etr_buffer(struct coresight_device *csdev, > return size; > } > > -static int tmc_enable_etr_sink_perf(struct coresight_device *csdev, void *data) > +static int tmc_enable_etr_sink_perf(struct coresight_device *csdev, > + struct perf_output_handle *handle) > { > int rc = 0; > pid_t pid; > unsigned long flags; > struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); > - struct perf_output_handle *handle = data; > struct etr_perf_buffer *etr_perf = etm_perf_sink_config(handle); > > spin_lock_irqsave(&drvdata->spinlock, flags); > @@ -1696,13 +1695,13 @@ static int tmc_enable_etr_sink_perf(struct coresight_device *csdev, void *data) > } > > static int tmc_enable_etr_sink(struct coresight_device *csdev, > - enum cs_mode mode, void *data) > + enum cs_mode mode, struct perf_output_handle *handle) > { > switch (mode) { > case CS_MODE_SYSFS: > return tmc_enable_etr_sink_sysfs(csdev); > case CS_MODE_PERF: > - return tmc_enable_etr_sink_perf(csdev, data); > + return tmc_enable_etr_sink_perf(csdev, handle); > default: > return -EINVAL; > } > diff --git a/drivers/hwtracing/coresight/coresight-tmc.h b/drivers/hwtracing/coresight/coresight-tmc.h > index 2671926be62a..e991afd43742 100644 > --- a/drivers/hwtracing/coresight/coresight-tmc.h > +++ b/drivers/hwtracing/coresight/coresight-tmc.h > @@ -336,7 +336,7 @@ struct coresight_device *tmc_etr_get_catu_device(struct tmc_drvdata *drvdata); > void tmc_etr_set_catu_ops(const struct etr_buf_operations *catu); > void tmc_etr_remove_catu_ops(void); > struct etr_buf *tmc_etr_get_buffer(struct coresight_device *csdev, > - enum cs_mode mode, void *data); > + enum cs_mode mode, struct perf_output_handle *handle); > extern const struct attribute_group coresight_etr_group; > > #endif > diff --git a/drivers/hwtracing/coresight/coresight-tpiu.c b/drivers/hwtracing/coresight/coresight-tpiu.c > index 97ef36f03ec2..ccf463ac7bf5 100644 > --- a/drivers/hwtracing/coresight/coresight-tpiu.c > +++ b/drivers/hwtracing/coresight/coresight-tpiu.c > @@ -75,7 +75,7 @@ static void tpiu_enable_hw(struct csdev_access *csa) > } > > static int tpiu_enable(struct coresight_device *csdev, enum cs_mode mode, > - void *__unused) > + struct perf_output_handle *__unused) > { > struct tpiu_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); > > diff --git a/drivers/hwtracing/coresight/coresight-trbe.c b/drivers/hwtracing/coresight/coresight-trbe.c > index fff67aac8418..a0914d10ed47 100644 > --- a/drivers/hwtracing/coresight/coresight-trbe.c > +++ b/drivers/hwtracing/coresight/coresight-trbe.c > @@ -1011,11 +1011,10 @@ static int __arm_trbe_enable(struct trbe_buf *buf, > } > > static int arm_trbe_enable(struct coresight_device *csdev, enum cs_mode mode, > - void *data) > + struct perf_output_handle *handle) > { > struct trbe_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); > struct trbe_cpudata *cpudata = dev_get_drvdata(&csdev->dev); > - struct perf_output_handle *handle = data; > struct trbe_buf *buf = etm_perf_sink_config(handle); > > WARN_ON(cpudata->cpu != smp_processor_id()); > diff --git a/drivers/hwtracing/coresight/ultrasoc-smb.c b/drivers/hwtracing/coresight/ultrasoc-smb.c > index dc3c9504dd7c..1574b5067206 100644 > --- a/drivers/hwtracing/coresight/ultrasoc-smb.c > +++ b/drivers/hwtracing/coresight/ultrasoc-smb.c > @@ -213,10 +213,9 @@ static void smb_enable_sysfs(struct coresight_device *csdev) > coresight_set_mode(csdev, CS_MODE_SYSFS); > } > > -static int smb_enable_perf(struct coresight_device *csdev, void *data) > +static int smb_enable_perf(struct coresight_device *csdev, struct perf_output_handle *handle) > { > struct smb_drv_data *drvdata = dev_get_drvdata(csdev->dev.parent); > - struct perf_output_handle *handle = data; > struct cs_buffers *buf = etm_perf_sink_config(handle); > pid_t pid; > > @@ -240,7 +239,7 @@ static int smb_enable_perf(struct coresight_device *csdev, void *data) > } > > static int smb_enable(struct coresight_device *csdev, enum cs_mode mode, > - void *data) > + struct perf_output_handle *handle) > { > struct smb_drv_data *drvdata = dev_get_drvdata(csdev->dev.parent); > int ret = 0; > @@ -261,7 +260,7 @@ static int smb_enable(struct coresight_device *csdev, enum cs_mode mode, > smb_enable_sysfs(csdev); > break; > case CS_MODE_PERF: > - ret = smb_enable_perf(csdev, data); > + ret = smb_enable_perf(csdev, handle); > break; > default: > ret = -EINVAL; > diff --git a/include/linux/coresight.h b/include/linux/coresight.h > index 55bb825d509e..937a8d4f815b 100644 > --- a/include/linux/coresight.h > +++ b/include/linux/coresight.h > @@ -363,7 +363,7 @@ enum cs_mode { > */ > struct coresight_ops_sink { > int (*enable)(struct coresight_device *csdev, enum cs_mode mode, > - void *data); > + struct perf_output_handle *handle); > int (*disable)(struct coresight_device *csdev); > void *(*alloc_buffer)(struct coresight_device *csdev, > struct perf_event *event, void **pages,
diff --git a/drivers/hwtracing/coresight/coresight-core.c b/drivers/hwtracing/coresight/coresight-core.c index 3bdd6ebd4b6e..9246b46bdc3b 100644 --- a/drivers/hwtracing/coresight/coresight-core.c +++ b/drivers/hwtracing/coresight/coresight-core.c @@ -272,9 +272,9 @@ void coresight_add_helper(struct coresight_device *csdev, EXPORT_SYMBOL_GPL(coresight_add_helper); static int coresight_enable_sink(struct coresight_device *csdev, - enum cs_mode mode, void *data) + enum cs_mode mode, struct perf_output_handle *handle) { - return sink_ops(csdev)->enable(csdev, mode, data); + return sink_ops(csdev)->enable(csdev, mode, handle); } static void coresight_disable_sink(struct coresight_device *csdev) @@ -448,7 +448,7 @@ static int coresight_enable_helpers(struct coresight_device *csdev, } int coresight_enable_path(struct coresight_path *path, enum cs_mode mode, - void *sink_data) + struct perf_output_handle *handle) { int ret = 0; u32 type; @@ -478,7 +478,7 @@ int coresight_enable_path(struct coresight_path *path, enum cs_mode mode, switch (type) { case CORESIGHT_DEV_TYPE_SINK: - ret = coresight_enable_sink(csdev, mode, sink_data); + ret = coresight_enable_sink(csdev, mode, handle); /* * Sink is the first component turned on. If we * failed to enable the sink, there are no components diff --git a/drivers/hwtracing/coresight/coresight-dummy.c b/drivers/hwtracing/coresight/coresight-dummy.c index d9a811d44885..42de46949d73 100644 --- a/drivers/hwtracing/coresight/coresight-dummy.c +++ b/drivers/hwtracing/coresight/coresight-dummy.c @@ -51,7 +51,7 @@ static int dummy_source_trace_id(struct coresight_device *csdev, __maybe_unused } static int dummy_sink_enable(struct coresight_device *csdev, enum cs_mode mode, - void *data) + struct perf_output_handle *handle) { dev_dbg(csdev->dev.parent, "Dummy sink enabled\n"); diff --git a/drivers/hwtracing/coresight/coresight-etb10.c b/drivers/hwtracing/coresight/coresight-etb10.c index aea9ac9c4bd0..e373b0f590bf 100644 --- a/drivers/hwtracing/coresight/coresight-etb10.c +++ b/drivers/hwtracing/coresight/coresight-etb10.c @@ -167,13 +167,12 @@ static int etb_enable_sysfs(struct coresight_device *csdev) return ret; } -static int etb_enable_perf(struct coresight_device *csdev, void *data) +static int etb_enable_perf(struct coresight_device *csdev, struct perf_output_handle *handle) { int ret = 0; pid_t pid; unsigned long flags; struct etb_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); - struct perf_output_handle *handle = data; struct cs_buffers *buf = etm_perf_sink_config(handle); spin_lock_irqsave(&drvdata->spinlock, flags); @@ -224,7 +223,7 @@ static int etb_enable_perf(struct coresight_device *csdev, void *data) } static int etb_enable(struct coresight_device *csdev, enum cs_mode mode, - void *data) + struct perf_output_handle *handle) { int ret; @@ -233,7 +232,7 @@ static int etb_enable(struct coresight_device *csdev, enum cs_mode mode, ret = etb_enable_sysfs(csdev); break; case CS_MODE_PERF: - ret = etb_enable_perf(csdev, data); + ret = etb_enable_perf(csdev, handle); break; default: ret = -EINVAL; diff --git a/drivers/hwtracing/coresight/coresight-priv.h b/drivers/hwtracing/coresight/coresight-priv.h index c10dd3643854..eca06a89843f 100644 --- a/drivers/hwtracing/coresight/coresight-priv.h +++ b/drivers/hwtracing/coresight/coresight-priv.h @@ -134,7 +134,7 @@ static inline void CS_UNLOCK(void __iomem *addr) void coresight_disable_path(struct coresight_path *path); int coresight_enable_path(struct coresight_path *path, enum cs_mode mode, - void *sink_data); + struct perf_output_handle *handle); struct coresight_device *coresight_get_sink(struct coresight_path *path); struct coresight_device *coresight_get_sink_by_id(u32 id); struct coresight_device * diff --git a/drivers/hwtracing/coresight/coresight-tmc-etf.c b/drivers/hwtracing/coresight/coresight-tmc-etf.c index d4f641cd9de6..fdf1c2511d67 100644 --- a/drivers/hwtracing/coresight/coresight-tmc-etf.c +++ b/drivers/hwtracing/coresight/coresight-tmc-etf.c @@ -244,13 +244,13 @@ static int tmc_enable_etf_sink_sysfs(struct coresight_device *csdev) return ret; } -static int tmc_enable_etf_sink_perf(struct coresight_device *csdev, void *data) +static int tmc_enable_etf_sink_perf(struct coresight_device *csdev, + struct perf_output_handle *handle) { int ret = 0; pid_t pid; unsigned long flags; struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); - struct perf_output_handle *handle = data; struct cs_buffers *buf = etm_perf_sink_config(handle); spin_lock_irqsave(&drvdata->spinlock, flags); @@ -302,7 +302,7 @@ static int tmc_enable_etf_sink_perf(struct coresight_device *csdev, void *data) } static int tmc_enable_etf_sink(struct coresight_device *csdev, - enum cs_mode mode, void *data) + enum cs_mode mode, struct perf_output_handle *handle) { int ret; @@ -311,7 +311,7 @@ static int tmc_enable_etf_sink(struct coresight_device *csdev, ret = tmc_enable_etf_sink_sysfs(csdev); break; case CS_MODE_PERF: - ret = tmc_enable_etf_sink_perf(csdev, data); + ret = tmc_enable_etf_sink_perf(csdev, handle); break; /* We shouldn't be here */ default: diff --git a/drivers/hwtracing/coresight/coresight-tmc-etr.c b/drivers/hwtracing/coresight/coresight-tmc-etr.c index a48bb85d0e7f..2d0bd06bab2a 100644 --- a/drivers/hwtracing/coresight/coresight-tmc-etr.c +++ b/drivers/hwtracing/coresight/coresight-tmc-etr.c @@ -1252,9 +1252,8 @@ static int tmc_enable_etr_sink_sysfs(struct coresight_device *csdev) } struct etr_buf *tmc_etr_get_buffer(struct coresight_device *csdev, - enum cs_mode mode, void *data) + enum cs_mode mode, struct perf_output_handle *handle) { - struct perf_output_handle *handle = data; struct etr_perf_buffer *etr_perf; switch (mode) { @@ -1642,13 +1641,13 @@ tmc_update_etr_buffer(struct coresight_device *csdev, return size; } -static int tmc_enable_etr_sink_perf(struct coresight_device *csdev, void *data) +static int tmc_enable_etr_sink_perf(struct coresight_device *csdev, + struct perf_output_handle *handle) { int rc = 0; pid_t pid; unsigned long flags; struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); - struct perf_output_handle *handle = data; struct etr_perf_buffer *etr_perf = etm_perf_sink_config(handle); spin_lock_irqsave(&drvdata->spinlock, flags); @@ -1696,13 +1695,13 @@ static int tmc_enable_etr_sink_perf(struct coresight_device *csdev, void *data) } static int tmc_enable_etr_sink(struct coresight_device *csdev, - enum cs_mode mode, void *data) + enum cs_mode mode, struct perf_output_handle *handle) { switch (mode) { case CS_MODE_SYSFS: return tmc_enable_etr_sink_sysfs(csdev); case CS_MODE_PERF: - return tmc_enable_etr_sink_perf(csdev, data); + return tmc_enable_etr_sink_perf(csdev, handle); default: return -EINVAL; } diff --git a/drivers/hwtracing/coresight/coresight-tmc.h b/drivers/hwtracing/coresight/coresight-tmc.h index 2671926be62a..e991afd43742 100644 --- a/drivers/hwtracing/coresight/coresight-tmc.h +++ b/drivers/hwtracing/coresight/coresight-tmc.h @@ -336,7 +336,7 @@ struct coresight_device *tmc_etr_get_catu_device(struct tmc_drvdata *drvdata); void tmc_etr_set_catu_ops(const struct etr_buf_operations *catu); void tmc_etr_remove_catu_ops(void); struct etr_buf *tmc_etr_get_buffer(struct coresight_device *csdev, - enum cs_mode mode, void *data); + enum cs_mode mode, struct perf_output_handle *handle); extern const struct attribute_group coresight_etr_group; #endif diff --git a/drivers/hwtracing/coresight/coresight-tpiu.c b/drivers/hwtracing/coresight/coresight-tpiu.c index 97ef36f03ec2..ccf463ac7bf5 100644 --- a/drivers/hwtracing/coresight/coresight-tpiu.c +++ b/drivers/hwtracing/coresight/coresight-tpiu.c @@ -75,7 +75,7 @@ static void tpiu_enable_hw(struct csdev_access *csa) } static int tpiu_enable(struct coresight_device *csdev, enum cs_mode mode, - void *__unused) + struct perf_output_handle *__unused) { struct tpiu_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); diff --git a/drivers/hwtracing/coresight/coresight-trbe.c b/drivers/hwtracing/coresight/coresight-trbe.c index fff67aac8418..a0914d10ed47 100644 --- a/drivers/hwtracing/coresight/coresight-trbe.c +++ b/drivers/hwtracing/coresight/coresight-trbe.c @@ -1011,11 +1011,10 @@ static int __arm_trbe_enable(struct trbe_buf *buf, } static int arm_trbe_enable(struct coresight_device *csdev, enum cs_mode mode, - void *data) + struct perf_output_handle *handle) { struct trbe_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent); struct trbe_cpudata *cpudata = dev_get_drvdata(&csdev->dev); - struct perf_output_handle *handle = data; struct trbe_buf *buf = etm_perf_sink_config(handle); WARN_ON(cpudata->cpu != smp_processor_id()); diff --git a/drivers/hwtracing/coresight/ultrasoc-smb.c b/drivers/hwtracing/coresight/ultrasoc-smb.c index dc3c9504dd7c..1574b5067206 100644 --- a/drivers/hwtracing/coresight/ultrasoc-smb.c +++ b/drivers/hwtracing/coresight/ultrasoc-smb.c @@ -213,10 +213,9 @@ static void smb_enable_sysfs(struct coresight_device *csdev) coresight_set_mode(csdev, CS_MODE_SYSFS); } -static int smb_enable_perf(struct coresight_device *csdev, void *data) +static int smb_enable_perf(struct coresight_device *csdev, struct perf_output_handle *handle) { struct smb_drv_data *drvdata = dev_get_drvdata(csdev->dev.parent); - struct perf_output_handle *handle = data; struct cs_buffers *buf = etm_perf_sink_config(handle); pid_t pid; @@ -240,7 +239,7 @@ static int smb_enable_perf(struct coresight_device *csdev, void *data) } static int smb_enable(struct coresight_device *csdev, enum cs_mode mode, - void *data) + struct perf_output_handle *handle) { struct smb_drv_data *drvdata = dev_get_drvdata(csdev->dev.parent); int ret = 0; @@ -261,7 +260,7 @@ static int smb_enable(struct coresight_device *csdev, enum cs_mode mode, smb_enable_sysfs(csdev); break; case CS_MODE_PERF: - ret = smb_enable_perf(csdev, data); + ret = smb_enable_perf(csdev, handle); break; default: ret = -EINVAL; diff --git a/include/linux/coresight.h b/include/linux/coresight.h index 55bb825d509e..937a8d4f815b 100644 --- a/include/linux/coresight.h +++ b/include/linux/coresight.h @@ -363,7 +363,7 @@ enum cs_mode { */ struct coresight_ops_sink { int (*enable)(struct coresight_device *csdev, enum cs_mode mode, - void *data); + struct perf_output_handle *handle); int (*disable)(struct coresight_device *csdev); void *(*alloc_buffer)(struct coresight_device *csdev, struct perf_event *event, void **pages,