rpms/kernel/F-11 drm-nouveau.patch, 1.31, 1.32 kernel.spec, 1.1490, 1.1491
Ben Skeggs
bskeggs at fedoraproject.org
Tue Mar 31 06:30:03 UTC 2009
Author: bskeggs
Update of /cvs/pkgs/rpms/kernel/F-11
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv20974
Modified Files:
drm-nouveau.patch kernel.spec
Log Message:
* Tue Mar 31 2009 Ben Skeggs <bskeggs at redhat.com>
- drm-nouveau.patch: support version 3.0 pll limits table,
may help with rh#492575
drm-nouveau.patch:
Index: drm-nouveau.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/drm-nouveau.patch,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- drm-nouveau.patch 30 Mar 2009 06:32:12 -0000 1.31
+++ drm-nouveau.patch 31 Mar 2009 06:30:02 -0000 1.32
@@ -428,10 +428,10 @@
+}
diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c
new file mode 100644
-index 0000000..bcbedb7
+index 0000000..ef33b39
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nouveau_bios.c
-@@ -0,0 +1,854 @@
+@@ -0,0 +1,898 @@
+/*
+ * Copyright (C) 2005-2006 Erik Waling
+ * Copyright (C) 2006 Stephane Marchesin
@@ -1050,6 +1050,8 @@
+ * Version 0x21: Found on Geforce 7, 8 and some Geforce 6 cards
+ * 5 byte header, fifth byte of unknown purpose. 35 (0x23) byte record
+ * length in general, some (integrated) have an extra configuration byte
++ * Version 0x30: Found on Geforce 8, separates the register mapping
++ * from the limits tables.
+ */
+
+ struct drm_nouveau_private *dev_priv = dev->dev_private;
@@ -1090,6 +1092,7 @@
+ break;
+ case 0x20:
+ case 0x21:
++ case 0x30:
+ headerlen = bios->data[bios->pll_limit_tbl_ptr + 1];
+ recordlen = bios->data[bios->pll_limit_tbl_ptr + 2];
+ entries = bios->data[bios->pll_limit_tbl_ptr + 3];
@@ -1132,7 +1135,7 @@
+ pll_lim->vco2.max_n = 0x1f;
+ pll_lim->vco2.min_m = 0x1;
+ pll_lim->vco2.max_m = 0x4;
-+ } else if (pll_lim_ver) { /* ver 0x20, 0x21 */
++ } else if (pll_lim_ver < 0x30) { /* ver 0x20, 0x21 */
+ uint16_t plloffs = bios->pll_limit_tbl_ptr + headerlen;
+ uint32_t reg = 0; /* default match */
+ int i;
@@ -1215,6 +1218,47 @@
+ pll_lim->refclk = 25000;
+ }
+ }*/
++ } else if (pll_lim_ver) { /* ver 0x30 */
++ uint8_t *entry = &bios->data[bios->pll_limit_tbl_ptr + headerlen];
++ uint8_t *record = NULL;
++ int i;
++
++ DRM_DEBUG("Loading PLL limits for register 0x%08x\n",
++
++ limit_match);
++
++ for (i = 0; i < entries; i++, entry += recordlen) {
++ if (le32_to_cpu(*(uint32_t *)&entry[3] == limit_match)) {
++ record = &bios->data[le16_to_cpu(*(uint16_t *)&entry[1])];
++ break;
++ }
++ }
++
++ if (!record) {
++ DRM_ERROR("Register 0x%08x not found in PLL limits "
++ "table", limit_match);
++ return false;
++ }
++
++ pll_lim->vco1.minfreq = le16_to_cpu(*(uint16_t *)&record[0]) * 1000;
++ pll_lim->vco1.maxfreq = le16_to_cpu(*(uint16_t *)&record[2]) * 1000;
++ pll_lim->vco2.minfreq = le16_to_cpu(*(uint16_t *)&record[4]) * 1000;
++ pll_lim->vco2.maxfreq = le16_to_cpu(*(uint16_t *)&record[6]) * 1000;
++ pll_lim->vco1.min_inputfreq = le16_to_cpu(*(uint16_t *)&record[8]) * 1000;
++ pll_lim->vco2.min_inputfreq = le16_to_cpu(*(uint16_t *)&record[10]) * 1000;
++ pll_lim->vco1.max_inputfreq = le16_to_cpu(*(uint16_t *)&record[12]) * 1000;
++ pll_lim->vco2.max_inputfreq = le16_to_cpu(*(uint16_t *)&record[14]) * 1000;
++ pll_lim->vco1.min_n = record[16];
++ pll_lim->vco1.max_n = record[17];
++ pll_lim->vco1.min_m = record[18];
++ pll_lim->vco1.max_m = record[19];
++ pll_lim->vco2.min_n = record[20];
++ pll_lim->vco2.max_n = record[21];
++ pll_lim->vco2.min_m = record[22];
++ pll_lim->vco2.max_m = record[23];
++ pll_lim->max_log2p_bias = record[25];
++ pll_lim->log2p_bias = record[27];
++ pll_lim->refclk = le32_to_cpu(*(uint32_t *)&record[28]);
+ }
+
+ /* By now any valid limit table ought to have set a max frequency for
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/kernel.spec,v
retrieving revision 1.1490
retrieving revision 1.1491
diff -u -r1.1490 -r1.1491
--- kernel.spec 31 Mar 2009 00:04:50 -0000 1.1490
+++ kernel.spec 31 Mar 2009 06:30:02 -0000 1.1491
@@ -1872,6 +1872,10 @@
# and build.
%changelog
+* Tue Mar 31 2009 Ben Skeggs <bskeggs at redhat.com>
+- drm-nouveau.patch: support version 3.0 pll limits table
+ may help with rh#492575
+
* Mon Mar 30 2009 Matthew Garrett <mjg at redhat.com>
- linux-2.6-input-wacom-bluetooth.patch: Add support for Bluetooth wacom pads
More information about the fedora-extras-commits
mailing list