nouveau_pm.h revision 354d0781e5cef1f227ee3064cb65053365177d3b
1330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs/* 2330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs * Copyright 2010 Red Hat Inc. 3330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs * 4330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs * Permission is hereby granted, free of charge, to any person obtaining a 5330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs * copy of this software and associated documentation files (the "Software"), 6330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs * to deal in the Software without restriction, including without limitation 7330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs * and/or sell copies of the Software, and to permit persons to whom the 9330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs * Software is furnished to do so, subject to the following conditions: 10330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs * 11330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs * The above copyright notice and this permission notice shall be included in 12330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs * all copies or substantial portions of the Software. 13330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs * 14330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 18330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 19330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 20330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs * OTHER DEALINGS IN THE SOFTWARE. 21330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs * 22330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs * Authors: Ben Skeggs 23330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs */ 24330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs 25330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs#ifndef __NOUVEAU_PM_H__ 26330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs#define __NOUVEAU_PM_H__ 27330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs 28330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs/* nouveau_pm.c */ 29330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggsint nouveau_pm_init(struct drm_device *dev); 30330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggsvoid nouveau_pm_fini(struct drm_device *dev); 3164f1c11a477cb76e1572ee0793234739e045b3d5Ben Skeggsvoid nouveau_pm_resume(struct drm_device *dev); 32330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs 33330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs/* nouveau_volt.c */ 34330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggsvoid nouveau_volt_init(struct drm_device *); 35330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggsvoid nouveau_volt_fini(struct drm_device *); 36330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggsint nouveau_volt_vid_lookup(struct drm_device *, int voltage); 37330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggsint nouveau_volt_lvl_lookup(struct drm_device *, int vid); 38330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggsint nouveau_voltage_gpio_get(struct drm_device *); 39330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggsint nouveau_voltage_gpio_set(struct drm_device *, int voltage); 40330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs 41330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs/* nouveau_perf.c */ 42330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggsvoid nouveau_perf_init(struct drm_device *); 43330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggsvoid nouveau_perf_fini(struct drm_device *); 44330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs 457760fcb020b41352af4e675ce65a6aa0e93c170fRoy Spliet/* nouveau_mem.c */ 467760fcb020b41352af4e675ce65a6aa0e93c170fRoy Splietvoid nouveau_mem_timing_init(struct drm_device *); 477760fcb020b41352af4e675ce65a6aa0e93c170fRoy Splietvoid nouveau_mem_timing_fini(struct drm_device *); 487760fcb020b41352af4e675ce65a6aa0e93c170fRoy Spliet 49442b626ece6fbbe7f52c03a09f85ae5755f29eabBen Skeggs/* nv04_pm.c */ 50442b626ece6fbbe7f52c03a09f85ae5755f29eabBen Skeggsint nv04_pm_clock_get(struct drm_device *, u32 id); 515c6dc6575460a0afe56d8cae7666e769e08ef942Ben Skeggsvoid *nv04_pm_clock_pre(struct drm_device *, struct nouveau_pm_level *, 525c6dc6575460a0afe56d8cae7666e769e08ef942Ben Skeggs u32 id, int khz); 53442b626ece6fbbe7f52c03a09f85ae5755f29eabBen Skeggsvoid nv04_pm_clock_set(struct drm_device *, void *); 54442b626ece6fbbe7f52c03a09f85ae5755f29eabBen Skeggs 5502c30ca0a1d6d8b878fc32f47b3b25192ef4a8efBen Skeggs/* nv50_pm.c */ 5602c30ca0a1d6d8b878fc32f47b3b25192ef4a8efBen Skeggsint nv50_pm_clock_get(struct drm_device *, u32 id); 575c6dc6575460a0afe56d8cae7666e769e08ef942Ben Skeggsvoid *nv50_pm_clock_pre(struct drm_device *, struct nouveau_pm_level *, 585c6dc6575460a0afe56d8cae7666e769e08ef942Ben Skeggs u32 id, int khz); 5902c30ca0a1d6d8b878fc32f47b3b25192ef4a8efBen Skeggsvoid nv50_pm_clock_set(struct drm_device *, void *); 6002c30ca0a1d6d8b878fc32f47b3b25192ef4a8efBen Skeggs 61fade7ad56d929e168ead0f75e591468afa2fe97cBen Skeggs/* nva3_pm.c */ 62ca94a71fc4d99c99871dfca528a88aab1557641cBen Skeggsint nva3_pm_clocks_get(struct drm_device *, struct nouveau_pm_level *); 63ca94a71fc4d99c99871dfca528a88aab1557641cBen Skeggsvoid *nva3_pm_clocks_pre(struct drm_device *, struct nouveau_pm_level *); 64ca94a71fc4d99c99871dfca528a88aab1557641cBen Skeggsvoid nva3_pm_clocks_set(struct drm_device *, void *); 65fade7ad56d929e168ead0f75e591468afa2fe97cBen Skeggs 66354d0781e5cef1f227ee3064cb65053365177d3bBen Skeggs/* nvc0_pm.c */ 67354d0781e5cef1f227ee3064cb65053365177d3bBen Skeggsint nvc0_pm_clocks_get(struct drm_device *, struct nouveau_pm_level *); 68354d0781e5cef1f227ee3064cb65053365177d3bBen Skeggs 6934e9d85a1aae28b090ec4e72a0f98a5483c198c4Martin Peres/* nouveau_temp.c */ 7034e9d85a1aae28b090ec4e72a0f98a5483c198c4Martin Peresvoid nouveau_temp_init(struct drm_device *dev); 7134e9d85a1aae28b090ec4e72a0f98a5483c198c4Martin Peresvoid nouveau_temp_fini(struct drm_device *dev); 7234e9d85a1aae28b090ec4e72a0f98a5483c198c4Martin Peresvoid nouveau_temp_safety_checks(struct drm_device *dev); 738155cac489eb8cc6fd96b9bdefacdf5a56e6ea32Francisco Jerezint nv40_temp_get(struct drm_device *dev); 748155cac489eb8cc6fd96b9bdefacdf5a56e6ea32Francisco Jerezint nv84_temp_get(struct drm_device *dev); 7534e9d85a1aae28b090ec4e72a0f98a5483c198c4Martin Peres 76330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs#endif 77