Message ID | 20231018061714.3553817-14-s.hauer@pengutronix.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add perf support to the rockchip-dfi driver | expand |
> -----Original Message----- > From: Sascha Hauer <s.hauer@pengutronix.de> > Sent: Wednesday, October 18, 2023 3:17 PM > To: linux-rockchip@lists.infradead.org > Cc: linux-arm-kernel@lists.infradead.org; linux-kernel@vger.kernel.org; > linux-pm@vger.kernel.org; Heiko Stuebner <heiko@sntech.de>; Chanwoo Choi > <chanwoo@kernel.org>; Kyungmin Park <kyungmin.park@samsung.com>; MyungJoo > Ham <myungjoo.ham@samsung.com>; Will Deacon <will@kernel.org>; Mark > Rutland <mark.rutland@arm.com>; kernel@pengutronix.de; Michael Riesch > <michael.riesch@wolfvision.net>; Robin Murphy <robin.murphy@arm.com>; > Vincent Legoll <vincent.legoll@gmail.com>; Rob Herring > <robh+dt@kernel.org>; Krzysztof Kozlowski > <krzysztof.kozlowski+dt@linaro.org>; Conor Dooley <conor+dt@kernel.org>; > devicetree@vger.kernel.org; Sebastian Reichel > <sebastian.reichel@collabora.com>; Sascha Hauer <s.hauer@pengutronix.de>; > Jonathan Cameron <Jonathan.Cameron@huawei.com>; Chanwoo Choi > <cw00.choi@samsung.com> > Subject: [PATCH v8 13/26] PM / devfreq: rockchip-dfi: Pass private data > struct to internal functions > > The internal functions do not need the struct devfreq_event_dev *, so pass > them the struct rockchip_dfi *. This is a preparation for adding perf > support later which doesn't have a struct devfreq_event_dev *. > > Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> > Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com> > Acked-by: Chanwoo Choi <cw00.choi@samsung.com> > Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> > --- > drivers/devfreq/event/rockchip-dfi.c | 15 ++++++--------- > 1 file changed, 6 insertions(+), 9 deletions(-) > > diff --git a/drivers/devfreq/event/rockchip-dfi.c > b/drivers/devfreq/event/rockchip-dfi.c > index bdf421b248df9..d56a33d03db4c 100644 > --- a/drivers/devfreq/event/rockchip-dfi.c > +++ b/drivers/devfreq/event/rockchip-dfi.c > @@ -73,9 +73,8 @@ struct rockchip_dfi { > unsigned int max_channels; > }; > > -static void rockchip_dfi_start_hardware_counter(struct devfreq_event_dev > *edev) > +static void rockchip_dfi_start_hardware_counter(struct rockchip_dfi > +*dfi) > { > - struct rockchip_dfi *dfi = devfreq_event_get_drvdata(edev); > void __iomem *dfi_regs = dfi->regs; > > /* clear DDRMON_CTRL setting */ > @@ -103,18 +102,16 @@ static void > rockchip_dfi_start_hardware_counter(struct devfreq_event_dev *edev) > dfi_regs + DDRMON_CTRL); > } > > -static void rockchip_dfi_stop_hardware_counter(struct devfreq_event_dev > *edev) > +static void rockchip_dfi_stop_hardware_counter(struct rockchip_dfi > +*dfi) > { > - struct rockchip_dfi *dfi = devfreq_event_get_drvdata(edev); > void __iomem *dfi_regs = dfi->regs; > > writel_relaxed(HIWORD_UPDATE(0, DDRMON_CTRL_SOFTWARE_EN), > dfi_regs + DDRMON_CTRL); > } > > -static void rockchip_dfi_read_counters(struct devfreq_event_dev *edev, > struct dmc_count *count) > +static void rockchip_dfi_read_counters(struct rockchip_dfi *dfi, struct > +dmc_count *count) > { > - struct rockchip_dfi *dfi = devfreq_event_get_drvdata(edev); > u32 i; > void __iomem *dfi_regs = dfi->regs; > > @@ -132,7 +129,7 @@ static int rockchip_dfi_disable(struct > devfreq_event_dev *edev) { > struct rockchip_dfi *dfi = devfreq_event_get_drvdata(edev); > > - rockchip_dfi_stop_hardware_counter(edev); > + rockchip_dfi_stop_hardware_counter(dfi); > clk_disable_unprepare(dfi->clk); > > return 0; > @@ -149,7 +146,7 @@ static int rockchip_dfi_enable(struct > devfreq_event_dev *edev) > return ret; > } > > - rockchip_dfi_start_hardware_counter(edev); > + rockchip_dfi_start_hardware_counter(dfi); > return 0; > } > > @@ -167,7 +164,7 @@ static int rockchip_dfi_get_event(struct > devfreq_event_dev *edev, > u32 access = 0, total = 0; > int i; > > - rockchip_dfi_read_counters(edev, &count); > + rockchip_dfi_read_counters(dfi, &count); > > /* We can only report one channel, so find the busiest one */ > for (i = 0; i < dfi->max_channels; i++) { > -- > 2.39.2 Applied it. Thanks Best Regards, Chanwoo Choi
diff --git a/drivers/devfreq/event/rockchip-dfi.c b/drivers/devfreq/event/rockchip-dfi.c index bdf421b248df9..d56a33d03db4c 100644 --- a/drivers/devfreq/event/rockchip-dfi.c +++ b/drivers/devfreq/event/rockchip-dfi.c @@ -73,9 +73,8 @@ struct rockchip_dfi { unsigned int max_channels; }; -static void rockchip_dfi_start_hardware_counter(struct devfreq_event_dev *edev) +static void rockchip_dfi_start_hardware_counter(struct rockchip_dfi *dfi) { - struct rockchip_dfi *dfi = devfreq_event_get_drvdata(edev); void __iomem *dfi_regs = dfi->regs; /* clear DDRMON_CTRL setting */ @@ -103,18 +102,16 @@ static void rockchip_dfi_start_hardware_counter(struct devfreq_event_dev *edev) dfi_regs + DDRMON_CTRL); } -static void rockchip_dfi_stop_hardware_counter(struct devfreq_event_dev *edev) +static void rockchip_dfi_stop_hardware_counter(struct rockchip_dfi *dfi) { - struct rockchip_dfi *dfi = devfreq_event_get_drvdata(edev); void __iomem *dfi_regs = dfi->regs; writel_relaxed(HIWORD_UPDATE(0, DDRMON_CTRL_SOFTWARE_EN), dfi_regs + DDRMON_CTRL); } -static void rockchip_dfi_read_counters(struct devfreq_event_dev *edev, struct dmc_count *count) +static void rockchip_dfi_read_counters(struct rockchip_dfi *dfi, struct dmc_count *count) { - struct rockchip_dfi *dfi = devfreq_event_get_drvdata(edev); u32 i; void __iomem *dfi_regs = dfi->regs; @@ -132,7 +129,7 @@ static int rockchip_dfi_disable(struct devfreq_event_dev *edev) { struct rockchip_dfi *dfi = devfreq_event_get_drvdata(edev); - rockchip_dfi_stop_hardware_counter(edev); + rockchip_dfi_stop_hardware_counter(dfi); clk_disable_unprepare(dfi->clk); return 0; @@ -149,7 +146,7 @@ static int rockchip_dfi_enable(struct devfreq_event_dev *edev) return ret; } - rockchip_dfi_start_hardware_counter(edev); + rockchip_dfi_start_hardware_counter(dfi); return 0; } @@ -167,7 +164,7 @@ static int rockchip_dfi_get_event(struct devfreq_event_dev *edev, u32 access = 0, total = 0; int i; - rockchip_dfi_read_counters(edev, &count); + rockchip_dfi_read_counters(dfi, &count); /* We can only report one channel, so find the busiest one */ for (i = 0; i < dfi->max_channels; i++) {