drm/radeon: add tracepoint for setting mode clocks.
Subsystems (2)
Dave Airlie
maintainerPATCH 1/2 drm/radeon: add tracepoint for setting mode clocks.
From: Dave Airlie <[email protected]>
This just adds a tracepoint that can be caught in perf for when the clocks change.
Signed-off-by Dave Airlie <[email protected]>
--- drivers/gpu/drm/radeon/radeon_pm.c | 3 +++ drivers/gpu/drm/radeon/radeon_trace.h | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 0 deletions(-)
drivers/gpu/drm/radeon/radeon_pm.c +3 -0
@@ -30,6 +30,7 @@#include <linux/power_supply.h> #include <linux/hwmon.h> #include <linux/hwmon-sysfs.h> +#include "radeon_trace.h" #define RADEON_IDLE_LOOP_MS 100#define RADEON_RECLOCK_DELAY_MS 200
@@ -165,6 +166,8 @@ static void radeon_set_power_state(struct radeon_device *rdev) (rdev->pm.requested_power_state_index == rdev->pm.current_power_state_index)) return; +trace_radeon_set_power_state (rdev); +if (radeon_gui_idle (rdev)) { sclk = rdev->pm.power_state[rdev->pm.requested_power_state_index]. clock_info[rdev->pm.requested_clock_mode_index].sclk;
drivers/gpu/drm/radeon/radeon_trace.h +18 -0
@@ -27,6 +27,24 @@ TRACE_EVENT(radeon_bo_create,TP_printk ("bo=%p, pages=%u" , __entry->bo, __entry->pages) ); +TRACE_EVENT (radeon_set_power_state, + TP_PROTO(struct radeon_device *rdev), +TP_ARGS (rdev), +TP_STRUCT__entry ( + __field(int, requested_clock_mode) + __field(int, current_clock_mode) + __field(int, requested_power_state) +__field (int, current_power_state) + ), +TP_fast_assign ( + __entry->requested_clock_mode = rdev->pm.requested_clock_mode_index; + __entry->current_clock_mode = rdev->pm.current_clock_mode_index; + __entry->requested_power_state = rdev->pm.requested_power_state_index; + __entry->current_power_state = rdev->pm.current_power_state_index; + ), +TP_printk ("clock %d->%d, power %d->%d" , __entry->current_clock_mode, __entry->requested_clock_mode, __entry->current_power_state, __entry->requested_power_state) +); + DECLARE_EVENT_CLASS(radeon_fence_request, TP_PROTO(struct drm_device *dev, u32 seqno),
Signature · 1 line
1.7.6
Dave Airlie
maintainerPATCH 2/2 drm/radeon: make pm method file show default + option.
From: Dave Airlie <[email protected]>
If we add more options in the future this will need rework.
this is modelled after the example in /sys/power/disk.
Signed-off-by Dave Airlie <[email protected]>
--- drivers/gpu/drm/radeon/radeon_pm.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)
drivers/gpu/drm/radeon/radeon_pm.c +6 -2
@@ -390,9 +390,13 @@ static ssize_t radeon_get_pm_method(struct device *dev,struct drm_device *ddev =pci_get_drvdata (to_pci_dev (dev));struct radeon_device *rdev = ddev->dev_private;int pm = rdev->pm.pm_method; +char *start = buf; -return snprintf (buf,PAGE_SIZE ,"%s\n" , - (pm ==PM_METHOD_DYNPM ) ?"dynpm" :"profile" ); +if (pm ==PM_METHOD_DYNPM ) + buf +=snprintf (buf,PAGE_SIZE ,"[dynpm] profile\n" ); +else + buf +=snprintf (buf,PAGE_SIZE ,"dynpm [profile]\n" ); +return buf - start; } static ssize_t radeon_set_pm_method(struct device *dev,
Signature · 1 line
1.7.6