-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
yaml --- r: 329608 b: refs/heads/master c: 70790f4 h: refs/heads/master v: v3
- Loading branch information
Ben Skeggs
committed
Oct 3, 2012
1 parent
00bdba1
commit aed07f5
Showing
29 changed files
with
1,329 additions
and
1,214 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: 8aceb7de47ea2491abc1a577dc875b19e9947a54 | ||
refs/heads/master: 70790f4f819875e8f390871fd15bbbf823f28e1b |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
77 changes: 77 additions & 0 deletions
77
trunk/drivers/gpu/drm/nouveau/core/include/subdev/bios/pll.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
#ifndef __NVBIOS_PLL_H__ | ||
#define __NVBIOS_PLL_H__ | ||
|
||
/*XXX: kill me */ | ||
struct nouveau_pll_vals { | ||
union { | ||
struct { | ||
#ifdef __BIG_ENDIAN | ||
uint8_t N1, M1, N2, M2; | ||
#else | ||
uint8_t M1, N1, M2, N2; | ||
#endif | ||
}; | ||
struct { | ||
uint16_t NM1, NM2; | ||
} __attribute__((packed)); | ||
}; | ||
int log2P; | ||
|
||
int refclk; | ||
}; | ||
|
||
struct nouveau_bios; | ||
|
||
/* these match types in pll limits table version 0x40, | ||
* nouveau uses them on all chipsets internally where a | ||
* specific pll needs to be referenced, but the exact | ||
* register isn't known. | ||
*/ | ||
enum nvbios_pll_type { | ||
PLL_CORE = 0x01, | ||
PLL_SHADER = 0x02, | ||
PLL_UNK03 = 0x03, | ||
PLL_MEMORY = 0x04, | ||
PLL_VDEC = 0x05, | ||
PLL_UNK40 = 0x40, | ||
PLL_UNK41 = 0x41, | ||
PLL_UNK42 = 0x42, | ||
PLL_VPLL0 = 0x80, | ||
PLL_VPLL1 = 0x81, | ||
PLL_MAX = 0xff | ||
}; | ||
|
||
struct nvbios_pll { | ||
enum nvbios_pll_type type; | ||
u32 reg; | ||
u32 refclk; | ||
|
||
u8 min_p; | ||
u8 max_p; | ||
u8 bias_p; | ||
|
||
/* | ||
* for most pre nv50 cards setting a log2P of 7 (the common max_log2p | ||
* value) is no different to 6 (at least for vplls) so allowing the MNP | ||
* calc to use 7 causes the generated clock to be out by a factor of 2. | ||
* however, max_log2p cannot be fixed-up during parsing as the | ||
* unmodified max_log2p value is still needed for setting mplls, hence | ||
* an additional max_usable_log2p member | ||
*/ | ||
u8 max_p_usable; | ||
|
||
struct { | ||
u32 min_freq; | ||
u32 max_freq; | ||
u32 min_inputfreq; | ||
u32 max_inputfreq; | ||
u8 min_m; | ||
u8 max_m; | ||
u8 min_n; | ||
u8 max_n; | ||
} vco1, vco2; | ||
}; | ||
|
||
int nvbios_pll_parse(struct nouveau_bios *, u32 type, struct nvbios_pll *); | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.