nouveau_pm.h revision 442b626ece6fbbe7f52c03a09f85ae5755f29eab
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);
31330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs
32330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs/* nouveau_volt.c */
33330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggsvoid nouveau_volt_init(struct drm_device *);
34330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggsvoid nouveau_volt_fini(struct drm_device *);
35330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggsint  nouveau_volt_vid_lookup(struct drm_device *, int voltage);
36330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggsint  nouveau_volt_lvl_lookup(struct drm_device *, int vid);
37330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggsint  nouveau_voltage_gpio_get(struct drm_device *);
38330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggsint  nouveau_voltage_gpio_set(struct drm_device *, int voltage);
39330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs
40330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs/* nouveau_perf.c */
41330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggsvoid nouveau_perf_init(struct drm_device *);
42330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggsvoid nouveau_perf_fini(struct drm_device *);
43330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs
44442b626ece6fbbe7f52c03a09f85ae5755f29eabBen Skeggs/* nv04_pm.c */
45442b626ece6fbbe7f52c03a09f85ae5755f29eabBen Skeggsint nv04_pm_clock_get(struct drm_device *, u32 id);
46442b626ece6fbbe7f52c03a09f85ae5755f29eabBen Skeggsvoid *nv04_pm_clock_pre(struct drm_device *, u32 id, int khz);
47442b626ece6fbbe7f52c03a09f85ae5755f29eabBen Skeggsvoid nv04_pm_clock_set(struct drm_device *, void *);
48442b626ece6fbbe7f52c03a09f85ae5755f29eabBen Skeggs
4902c30ca0a1d6d8b878fc32f47b3b25192ef4a8efBen Skeggs/* nv50_pm.c */
5002c30ca0a1d6d8b878fc32f47b3b25192ef4a8efBen Skeggsint nv50_pm_clock_get(struct drm_device *, u32 id);
5102c30ca0a1d6d8b878fc32f47b3b25192ef4a8efBen Skeggsvoid *nv50_pm_clock_pre(struct drm_device *, u32 id, int khz);
5202c30ca0a1d6d8b878fc32f47b3b25192ef4a8efBen Skeggsvoid nv50_pm_clock_set(struct drm_device *, void *);
5302c30ca0a1d6d8b878fc32f47b3b25192ef4a8efBen Skeggs
54330c5988ee78045e6a731c3693251aaa5b0d14e3Ben Skeggs#endif
55