This source file includes following definitions.
- gf100_volt_speedo_read
- gf100_volt_oneinit
- gf100_volt_new
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #include "priv.h"
25
26 #include <subdev/fuse.h>
27
28 static int
29 gf100_volt_speedo_read(struct nvkm_volt *volt)
30 {
31 struct nvkm_device *device = volt->subdev.device;
32 struct nvkm_fuse *fuse = device->fuse;
33
34 if (!fuse)
35 return -EINVAL;
36
37 return nvkm_fuse_read(fuse, 0x1cc);
38 }
39
40 int
41 gf100_volt_oneinit(struct nvkm_volt *volt)
42 {
43 struct nvkm_subdev *subdev = &volt->subdev;
44 if (volt->speedo <= 0)
45 nvkm_error(subdev, "couldn't find speedo value, volting not "
46 "possible\n");
47 return 0;
48 }
49
50 static const struct nvkm_volt_func
51 gf100_volt = {
52 .oneinit = gf100_volt_oneinit,
53 .vid_get = nvkm_voltgpio_get,
54 .vid_set = nvkm_voltgpio_set,
55 .speedo_read = gf100_volt_speedo_read,
56 };
57
58 int
59 gf100_volt_new(struct nvkm_device *device, int index, struct nvkm_volt **pvolt)
60 {
61 struct nvkm_volt *volt;
62 int ret;
63
64 ret = nvkm_volt_new_(&gf100_volt, device, index, &volt);
65 *pvolt = volt;
66 if (ret)
67 return ret;
68
69 return nvkm_voltgpio_init(volt);
70 }