[Nouveau] [bug report] drm/nouveau/devinit: move simple pll setting routines to devinit
Dan Carpenter
dan.carpenter at oracle.com
Tue Jan 10 20:22:28 UTC 2017
Hello Ben Skeggs,
The patch 88524bc06926: "drm/nouveau/devinit: move simple pll setting
routines to devinit" from Mar 5, 2013, leads to the following static
checker warning:
drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.c:53 nv50_devinit_pll_set()
info: return a literal instead of 'ret'
drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.c
34 int
35 nv50_devinit_pll_set(struct nvkm_devinit *init, u32 type, u32 freq)
36 {
37 struct nvkm_subdev *subdev = &init->subdev;
38 struct nvkm_device *device = subdev->device;
39 struct nvkm_bios *bios = device->bios;
40 struct nvbios_pll info;
41 int N1, M1, N2, M2, P;
42 int ret;
43
44 ret = nvbios_pll_parse(bios, type, &info);
45 if (ret) {
46 nvkm_error(subdev, "failed to retrieve pll data, %d\n", ret);
47 return ret;
48 }
49
50 ret = nv04_pll_calc(subdev, &info, freq, &N1, &M1, &N2, &M2, &P);
51 if (!ret) {
52 nvkm_error(subdev, "failed pll calculation\n");
53 return ret;
This should probably be a negative error code instead of "ret"?
54 }
55
56 switch (info.type) {
57 case PLL_VPLL0:
58 case PLL_VPLL1:
59 nvkm_wr32(device, info.reg + 0, 0x10000611);
60 nvkm_mask(device, info.reg + 4, 0x00ff00ff, (M1 << 16) | N1);
61 nvkm_mask(device, info.reg + 8, 0x7fff00ff, (P << 28) |
62 (M2 << 16) | N2);
63 break;
64 case PLL_MEMORY:
65 nvkm_mask(device, info.reg + 0, 0x01ff0000,
66 (P << 22) |
67 (info.bias_p << 19) |
68 (P << 16));
69 nvkm_wr32(device, info.reg + 4, (N1 << 8) | M1);
70 break;
71 default:
72 nvkm_mask(device, info.reg + 0, 0x00070000, (P << 16));
73 nvkm_wr32(device, info.reg + 4, (N1 << 8) | M1);
74 break;
75 }
76
77 return 0;
78 }
regards,
dan carpenter
More information about the Nouveau
mailing list