Commit b82932fb authored by Sascha Hauer's avatar Sascha Hauer Committed by Chanwoo Choi
Browse files

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 *.

Link: https://lore.kernel.org/all/20231018061714.3553817-14-s.hauer@pengutronix.de/


Reviewed-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
Acked-by: default avatarChanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: default avatarSascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: default avatarChanwoo Choi <cw00.choi@samsung.com>
parent d8c6e337
Loading
Loading
Loading
Loading
+6 −9
Original line number Diff line number Diff line
@@ -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++) {