1 /* 2 * Permission is hereby granted, free of charge, to any person obtaining a 3 * copy of this software and associated documentation files (the "Software"), 4 * to deal in the Software without restriction, including without limitation 5 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 6 * and/or sell copies of the Software, and to permit persons to whom the 7 * Software is furnished to do so, subject to the following conditions: 8 * 9 * The above copyright notice and this permission notice shall be included in 10 * all copies or substantial portions of the Software. 11 * 12 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 14 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 15 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 16 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 17 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 18 * OTHER DEALINGS IN THE SOFTWARE. 19 * 20 * Authors: Rafał Miłecki <zajec5@gmail.com> 21 */ 22 #include "drmP.h" 23 #include "radeon.h" 24 25 int radeon_debugfs_pm_init(struct radeon_device *rdev); 26 27 int radeon_pm_init(struct radeon_device *rdev) 28 { 29 if (radeon_debugfs_pm_init(rdev)) { 30 DRM_ERROR("Failed to register debugfs file for PM!\n"); 31 } 32 33 return 0; 34 } 35 36 /* 37 * Debugfs info 38 */ 39 #if defined(CONFIG_DEBUG_FS) 40 41 static int radeon_debugfs_pm_info(struct seq_file *m, void *data) 42 { 43 struct drm_info_node *node = (struct drm_info_node *) m->private; 44 struct drm_device *dev = node->minor->dev; 45 struct radeon_device *rdev = dev->dev_private; 46 47 seq_printf(m, "default engine clock: %u0 kHz\n", rdev->clock.default_sclk); 48 seq_printf(m, "current engine clock: %u0 kHz\n", radeon_get_engine_clock(rdev)); 49 seq_printf(m, "default memory clock: %u0 kHz\n", rdev->clock.default_mclk); 50 if (rdev->asic->get_memory_clock) 51 seq_printf(m, "current memory clock: %u0 kHz\n", radeon_get_memory_clock(rdev)); 52 53 return 0; 54 } 55 56 static struct drm_info_list radeon_pm_info_list[] = { 57 {"radeon_pm_info", radeon_debugfs_pm_info, 0, NULL}, 58 }; 59 #endif 60 61 int radeon_debugfs_pm_init(struct radeon_device *rdev) 62 { 63 #if defined(CONFIG_DEBUG_FS) 64 return radeon_debugfs_add_files(rdev, radeon_pm_info_list, ARRAY_SIZE(radeon_pm_info_list)); 65 #else 66 return 0; 67 #endif 68 } 69