linux/drivers/ufs/host/ufs-mediatek-trace.h
Po-Wen Kao b7dbc686f6 scsi: ufs: ufs-mediatek: Support clk-scaling to optimize power consumption
Provide clk-scaling feature in MediaTek UFS platforms.

MediaTek platform supports clk-scaling by switching parent clock mux of
UFSHCI main clocks: ufs_sel.

The driver needs to prevent changing the rate of ufs_sel because its parent
PLL clock may be shared between multiple IPs. In order to achieve this
goal, the maximum and minimum clock rates of ufs_sel defined in dts should
match the rate of "ufs_sel_max_src" and "ufs_sel_min_src" respectively.

Link: https://lore.kernel.org/r/20220802235437.4547-6-stanley.chu@mediatek.com
Reviewed-by: Stanley Chu <stanley.chu@mediatek.com>
Signed-off-by: Po-Wen Kao <powen.kao@mediatek.com>
Signed-off-by: Stanley Chu <stanley.chu@mediatek.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2022-08-22 22:58:30 -04:00

60 lines
1.3 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (C) 2020 MediaTek Inc.
*/
#undef TRACE_SYSTEM
#define TRACE_SYSTEM ufs_mtk
#if !defined(_TRACE_EVENT_UFS_MEDIATEK_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_EVENT_UFS_MEDIATEK_H
#include <linux/tracepoint.h>
TRACE_EVENT(ufs_mtk_event,
TP_PROTO(unsigned int type, unsigned int data),
TP_ARGS(type, data),
TP_STRUCT__entry(
__field(unsigned int, type)
__field(unsigned int, data)
),
TP_fast_assign(
__entry->type = type;
__entry->data = data;
),
TP_printk("ufs: event=%u data=%u",
__entry->type, __entry->data)
);
TRACE_EVENT(ufs_mtk_clk_scale,
TP_PROTO(const char *name, bool scale_up, unsigned long clk_rate),
TP_ARGS(name, scale_up, clk_rate),
TP_STRUCT__entry(
__field(const char*, name)
__field(bool, scale_up)
__field(unsigned long, clk_rate)
),
TP_fast_assign(
__entry->name = name;
__entry->scale_up = scale_up;
__entry->clk_rate = clk_rate;
),
TP_printk("ufs: clk (%s) scaled %s @ %lu",
__entry->name,
__entry->scale_up ? "up" : "down",
__entry->clk_rate)
);
#endif
#undef TRACE_INCLUDE_PATH
#undef TRACE_INCLUDE_FILE
#define TRACE_INCLUDE_PATH ../../drivers/ufs/host
#define TRACE_INCLUDE_FILE ufs-mediatek-trace
#include <trace/define_trace.h>