summaryrefslogtreecommitdiff
path: root/x11-drivers/nvidia-drivers/files/nvidia-drivers-173-3.10.patch
diff options
context:
space:
mode:
Diffstat (limited to 'x11-drivers/nvidia-drivers/files/nvidia-drivers-173-3.10.patch')
-rw-r--r--x11-drivers/nvidia-drivers/files/nvidia-drivers-173-3.10.patch714
1 files changed, 0 insertions, 714 deletions
diff --git a/x11-drivers/nvidia-drivers/files/nvidia-drivers-173-3.10.patch b/x11-drivers/nvidia-drivers/files/nvidia-drivers-173-3.10.patch
deleted file mode 100644
index 9d3016ba..00000000
--- a/x11-drivers/nvidia-drivers/files/nvidia-drivers-173-3.10.patch
+++ /dev/null
@@ -1,714 +0,0 @@
-From c3248bb6c976c112e9efa9e8f202590b2f9b40a5 Mon Sep 17 00:00:00 2001
-From: Alberto Milone <alberto.milone@canonical.com>
-Date: Tue, 18 Jun 2013 15:16:18 +0200
-Subject: [PATCH 1/1] Add support for Linux 3.10
-
----
- nv-i2c.c | 13 +--
- nv-linux.h | 1 +
- nv.c | 375 ++++++++++++++++++++++++++++++++++++++----------------------
- 3 files changed, 241 insertions(+), 148 deletions(-)
-
-diff --git a/nv-i2c.c b/nv-i2c.c
-index 143f9e4..aaee787 100644
---- a/usr/src/nv/nv-i2c.c
-+++ b/usr/src/nv/nv-i2c.c
-@@ -307,8 +307,6 @@ void* NV_API_CALL nv_i2c_add_adapter(nv_state_t *nv, U032 port)
- BOOL NV_API_CALL nv_i2c_del_adapter(nv_state_t *nv, void *data)
- {
- struct i2c_adapter *pI2cAdapter = (struct i2c_adapter *)data;
-- int osstatus = 0;
-- BOOL wasReleased = FALSE;
-
- #if defined(KERNEL_2_4)
- if (!NV_WEAK_SYMBOL_PRESENT(i2c_add_adapter))
-@@ -320,15 +318,10 @@ BOOL NV_API_CALL nv_i2c_del_adapter(nv_state_t *nv, void *data)
- if (!pI2cAdapter) return FALSE;
-
- // attempt release with the OS
-- osstatus = i2c_del_adapter(pI2cAdapter);
--
-- if (!osstatus)
-- {
-- os_free_mem(pI2cAdapter);
-- wasReleased = TRUE;
-- }
-+ i2c_del_adapter(pI2cAdapter);
-+ os_free_mem(pI2cAdapter);
-
-- return wasReleased;
-+ return TRUE;
- }
-
- #else // (defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE))
-diff --git a/nv-linux.h b/nv-linux.h
-index 963e059..9aac81a 100644
---- a/usr/src/nv/nv-linux.h
-+++ b/usr/src/nv/nv-linux.h
-@@ -163,6 +163,7 @@
-
- #ifdef CONFIG_PROC_FS
- #include <linux/proc_fs.h>
-+#include <linux/seq_file.h>
- #endif
-
- #ifdef CONFIG_MTRR
-diff --git a/nv.c b/nv.c
-index f82e46f..570c266 100644
---- a/usr/src/nv/nv.c
-+++ b/usr/src/nv/nv.c
-@@ -291,7 +291,6 @@ void NV_API_CALL nv_verify_pci_config(nv_state_t *nv, BOOL check_the_bars)
-
- /* nvos_ functions.. do not take a state device parameter */
- static void nvos_proc_create(void);
--static void nvos_proc_remove_all(struct proc_dir_entry *);
- static void nvos_proc_remove(void);
- static int nvos_count_devices(nv_stack_t *);
-
-@@ -333,12 +332,34 @@ void nv_kern_rc_timer(unsigned long);
- static int nv_kern_apm_event(struct pm_dev *, pm_request_t, void *);
- #endif
-
--static int nv_kern_read_cardinfo(char *, char **, off_t off, int, int *, void *);
--static int nv_kern_read_status(char *, char **, off_t off, int, int *, void *);
--static int nv_kern_read_registry(char *, char **, off_t off, int, int *, void *);
--static int nv_kern_read_agpinfo(char *, char **, off_t off, int, int *, void *);
--static int nv_kern_read_version(char *, char **, off_t off, int, int *, void *);
--static int nv_kern_read_text_file(char *, char **, off_t off, int, int *, void *);
-+static const struct file_operations nv_procfs_text_fops;
-+static const struct file_operations nv_procfs_read_card_info_fops;
-+static const struct file_operations nv_procfs_version_fops;
-+static const struct file_operations nv_procfs_read_agp_info_fops;
-+static const struct file_operations nv_procfs_read_agp_info_gpu_fops;
-+static const struct file_operations nv_procfs_read_agp_status_fops;
-+static const struct file_operations nv_procfs_registry_fops;
-+
-+static int nv_procfs_show_text_file(struct seq_file *, void *);
-+static int nv_procfs_open_text_file(struct inode *, struct file *);
-+static void nvos_proc_add_text_file(struct proc_dir_entry *, const char *, const char *);
-+
-+static int nv_procfs_show_card_info(struct seq_file *, void *);
-+static int nv_procfs_read_card_info(struct inode *, struct file *);
-+
-+static int nv_procfs_show_version(struct seq_file *, void *);
-+static int nv_procfs_open_version(struct inode *, struct file *);
-+
-+static int nv_procfs_show_agp_info(struct seq_file *, void *);
-+static int nv_procfs_read_agp_info(struct inode *, struct file *);
-+
-+static int nv_procfs_read_agp_info_gpu(struct inode *, struct file *file);
-+static int nv_procfs_show_agp_status(struct seq_file *, void *);
-+static int nv_procfs_read_agp_status(struct inode *, struct file *);
-+
-+static int nv_procfs_show_registry(struct seq_file *, void *);
-+static int nv_procfs_open_registry(struct inode *, struct file *);
-+
-
- int nv_kern_ctl_open(struct inode *, struct file *);
- int nv_kern_ctl_close(struct inode *, struct file *);
-@@ -604,6 +625,12 @@ static struct pci_dev* nv_get_pci_device(nv_state_t *nv)
- return NULL;
- }
-
-+#if LINUX_VERSION_CODE <= KERNEL_VERSION(3,9,255)
-+static inline void *PDE_DATA(const struct inode *inode) {
-+ return PDE(inode)->data;
-+}
-+#endif
-+
- static void nvos_proc_create(void)
- {
- #ifdef CONFIG_PROC_FS
-@@ -623,19 +650,19 @@ static void nvos_proc_create(void)
- nv_state_t *nv;
- nv_linux_state_t *nvl;
-
-- proc_nvidia = create_proc_entry("driver/nvidia", d_flags, NULL);
-+ proc_nvidia = proc_mkdir_mode("driver/nvidia", d_flags, NULL);
- if (!proc_nvidia)
- goto failed;
-
-- proc_nvidia_cards = create_proc_entry("cards", d_flags, proc_nvidia);
-+ proc_nvidia_cards = proc_mkdir_mode("cards", d_flags, proc_nvidia);
- if (!proc_nvidia_cards)
- goto failed;
-
-- proc_nvidia_warnings = create_proc_entry("warnings", d_flags, proc_nvidia);
-+ proc_nvidia_warnings = proc_mkdir_mode("warnings", d_flags, proc_nvidia);
- if (!proc_nvidia_warnings)
- goto failed;
-
-- proc_nvidia_patches = create_proc_entry("patches", d_flags, proc_nvidia);
-+ proc_nvidia_patches = proc_mkdir_mode("patches", d_flags, proc_nvidia);
- if (!proc_nvidia_patches)
- goto failed;
-
-@@ -660,24 +687,19 @@ static void nvos_proc_create(void)
- break;
-
- sprintf(name, "%d", i++);
-- entry = create_proc_entry(name, flags, proc_nvidia_cards);
-+ entry = proc_create_data(name, flags, proc_nvidia_cards,
-+ &nv_procfs_read_card_info_fops, nv);
- if (!entry) {
- NV_PCI_DEV_PUT(dev);
- goto failed;
- }
-
-- entry->data = nv;
-- entry->read_proc = nv_kern_read_cardinfo;
--#if defined(NV_PROC_DIR_ENTRY_HAS_OWNER)
-- entry->owner = THIS_MODULE;
--#endif
--
- if (nvos_find_agp_capability(dev)) {
- /*
- * Create the /proc/driver/nvidia/agp/{status,host-bridge,card}
- * entries now that we know there's AGP hardware.
- */
-- entry = create_proc_entry("agp", d_flags, proc_nvidia);
-+ entry = proc_mkdir_mode("agp", d_flags, proc_nvidia);
- if (!entry) {
- NV_PCI_DEV_PUT(dev);
- goto failed;
-@@ -688,72 +710,78 @@ static void nvos_proc_create(void)
- #endif
- proc_nvidia_agp = entry;
-
-- entry = create_proc_entry("status", flags, proc_nvidia_agp);
-+ entry = proc_create_data("status", flags, proc_nvidia_agp,
-+ &nv_procfs_read_agp_status_fops, nv);
- if (!entry) {
- NV_PCI_DEV_PUT(dev);
- goto failed;
- }
-
-- entry->data = nv;
-- entry->read_proc = nv_kern_read_status;
--#if defined(NV_PROC_DIR_ENTRY_HAS_OWNER)
-- entry->owner = THIS_MODULE;
--#endif
-+ entry = proc_create("host-bridge", flags, proc_nvidia_agp,
-+ &nv_procfs_read_agp_info_fops);
-
-- entry = create_proc_entry("host-bridge", flags, proc_nvidia_agp);
- if (!entry) {
- NV_PCI_DEV_PUT(dev);
- goto failed;
- }
-
-- entry->data = NULL;
-- entry->read_proc = nv_kern_read_agpinfo;
--#if defined(NV_PROC_DIR_ENTRY_HAS_OWNER)
-- entry->owner = THIS_MODULE;
--#endif
--
-- entry = create_proc_entry("card", flags, proc_nvidia_agp);
-+ entry = proc_create_data("card", flags, proc_nvidia_agp,
-+ &nv_procfs_read_agp_info_gpu_fops, nv);
- if (!entry) {
- NV_PCI_DEV_PUT(dev);
- goto failed;
- }
-
-- entry->data = nv;
-- entry->read_proc = nv_kern_read_agpinfo;
--#if defined(NV_PROC_DIR_ENTRY_HAS_OWNER)
-- entry->owner = THIS_MODULE;
--#endif
- }
-
- NV_PCI_DEV_PUT(dev);
- }
-
-- entry = create_proc_entry("version", flags, proc_nvidia);
-+ entry = proc_create("version", flags, proc_nvidia, &nv_procfs_version_fops);
- if (!entry)
- goto failed;
-
-- entry->read_proc = nv_kern_read_version;
--#if defined(NV_PROC_DIR_ENTRY_HAS_OWNER)
-- entry->owner = THIS_MODULE;
--#endif
--
-- entry = create_proc_entry("registry", flags, proc_nvidia);
-+ entry = proc_create("registry", flags, proc_nvidia,
-+ &nv_procfs_registry_fops);
- if (!entry)
- goto failed;
-
-- entry->read_proc = nv_kern_read_registry;
--#if defined(NV_PROC_DIR_ENTRY_HAS_OWNER)
-- entry->owner = THIS_MODULE;
--#endif
--
- return;
-
- failed:
- nv_printf(NV_DBG_ERRORS, "NVRM: failed to create /proc entries!\n");
-- nvos_proc_remove_all(proc_nvidia);
-+ remove_proc_subtree("nvidia", proc_nvidia);
- #endif
- }
-
-+static int
-+nv_procfs_show_text_file(
-+ struct seq_file *m,
-+ void *v
-+)
-+{
-+ seq_printf(m, "%s", (char *)m->private);
-+
-+ return 0;
-+}
-+
-+static int
-+nv_procfs_open_text_file(
-+ struct inode *inode,
-+ struct file *file
-+)
-+{
-+ return single_open(file, nv_procfs_show_text_file, PDE_DATA(inode));
-+}
-+
-+static const struct file_operations nv_procfs_text_fops = {
-+ .owner = THIS_MODULE,
-+ .open = nv_procfs_open_text_file,
-+ .read = seq_read,
-+ .llseek = seq_lseek,
-+ .release = single_release,
-+};
-+
- static void
- nvos_proc_add_text_file(
- struct proc_dir_entry *parent,
-@@ -762,41 +790,18 @@ nvos_proc_add_text_file(
- )
- {
- #ifdef CONFIG_PROC_FS
-- struct proc_dir_entry *entry;
--
- /* world readable file */
- int flags = S_IFREG | S_IRUGO;
-
-- entry = create_proc_entry(filename, flags, parent);
-- if (!entry) return;
--
-- entry->data = (void *)text;
-- entry->read_proc = nv_kern_read_text_file;
--#if defined(NV_PROC_DIR_ENTRY_HAS_OWNER)
-- entry->owner = THIS_MODULE;
--#endif
-+ proc_create_data(filename, flags, parent, &nv_procfs_text_fops,
-+ (void *)text);
- #endif
- }
-
--#ifdef CONFIG_PROC_FS
--static void nvos_proc_remove_all(struct proc_dir_entry *entry)
--{
-- while (entry) {
-- struct proc_dir_entry *next = entry->next;
-- if (entry->subdir)
-- nvos_proc_remove_all(entry->subdir);
-- remove_proc_entry(entry->name, entry->parent);
-- if (entry == proc_nvidia)
-- break;
-- entry = next;
-- }
--}
--#endif
--
- static void nvos_proc_remove(void)
- {
- #ifdef CONFIG_PROC_FS
-- nvos_proc_remove_all(proc_nvidia);
-+ remove_proc_subtree("nvidia", proc_nvidia);
- #endif
- }
-
-@@ -3065,18 +3070,19 @@ void NV_API_CALL nv_set_dma_address_size(
- }
-
- static int
--nv_kern_read_cardinfo(char *page, char **start, off_t off,
-- int count, int *eof, void *data)
-+nv_procfs_show_card_info(
-+ struct seq_file *m,
-+ void *v
-+)
- {
- struct pci_dev *dev;
- char *type, *fmt, tmpstr[NV_DEVICE_NAME_LENGTH];
-- int len = 0, status;
-+ int status;
- U032 vbios_rev1, vbios_rev2, vbios_rev3, vbios_rev4, vbios_rev5;
- nv_stack_t *sp = NULL;
-
- nv_state_t *nv;
-- nv = (nv_state_t *) data;
-- *eof = 1;
-+ nv = (nv_state_t *) m->private;
-
- dev = nv_get_pci_device(nv);
- if (!dev)
-@@ -3094,38 +3100,38 @@ nv_kern_read_cardinfo(char *page, char **start, off_t off,
- strcpy (tmpstr, "Unknown");
- }
-
-- len += sprintf(page+len, "Model: \t\t %s\n", tmpstr);
-- len += sprintf(page+len, "IRQ: \t\t %d\n", nv->interrupt_line);
-+ seq_printf(m, "Model: \t\t %s\n", tmpstr);
-+ seq_printf(m, "IRQ: \t\t %d\n", nv->interrupt_line);
-
- status = rm_get_vbios_version(sp, nv, &vbios_rev1, &vbios_rev2,
- &vbios_rev3, &vbios_rev4, &vbios_rev5);
-
- if (status < 0) {
- /* before rm_init_adapter */
-- len += sprintf(page+len, "Video BIOS: \t ??.??.??.??.??\n");
-+ seq_printf(m, "Video BIOS: \t ??.??.??.??.??\n");
- } else {
- fmt = "Video BIOS: \t %02x.%02x.%02x.%02x.%02x\n";
-- len += sprintf(page+len, fmt, vbios_rev1, vbios_rev2, vbios_rev3,
-+ seq_printf(m, fmt, vbios_rev1, vbios_rev2, vbios_rev3,
- vbios_rev4, vbios_rev5);
- }
-
- if (nvos_find_agp_capability(dev)) type = "AGP";
- else if (nvos_find_pci_express_capability(dev)) type = "PCI-E";
- else type = "PCI";
-- len += sprintf(page+len, "Card Type: \t %s\n", type);
-+ seq_printf(m, "Card Type: \t %s\n", type);
-
- // Report the number of bits set in dev->dma_mask
-- len += sprintf(page+len, "DMA Size: \t %d bits\n",
-+ seq_printf(m, "DMA Size: \t %d bits\n",
- nv_count_bits(dev->dma_mask));
-- len += sprintf(page+len, "DMA Mask: \t 0x%llx\n", dev->dma_mask);
-- len += sprintf(page+len, "Bus Location: \t %02x.%02x.%x\n",
-+ seq_printf(m, "DMA Mask: \t 0x%llx\n", dev->dma_mask);
-+ seq_printf(m, "Bus Location: \t %02x.%02x.%x\n",
- nv->bus, nv->slot, PCI_FUNC(dev->devfn));
- #ifdef DEBUG
- do
- {
- int j;
- for (j = 0; j < NV_GPU_NUM_BARS; j++)
-- len += sprintf(page+len, "BAR%i: \t\t 0x%08x (%iMB)\n",
-+ seq_printf(m, "BAR%i: \t\t 0x%08x (%iMB)\n",
- j, nv->bars[j].address, nv->bars[j].size >> 20);
- } while(0);
- #endif
-@@ -3133,35 +3139,68 @@ nv_kern_read_cardinfo(char *page, char **start, off_t off,
- NV_KMEM_CACHE_FREE_STACK(sp);
-
- NV_PCI_DEV_PUT(dev);
-- return len;
-+ return 0;
-+}
-+
-+static int
-+nv_procfs_read_card_info(
-+ struct inode *inode,
-+ struct file *file
-+)
-+{
-+ return single_open(file, nv_procfs_show_card_info, PDE_DATA(inode));
- }
-
-+static const struct file_operations nv_procfs_read_card_info_fops = {
-+ .owner = THIS_MODULE,
-+ .open = nv_procfs_read_card_info,
-+ .read = seq_read,
-+ .llseek = seq_lseek,
-+ .release = single_release,
-+};
-+
- static int
--nv_kern_read_version(char *page, char **start, off_t off,
-- int count, int *eof, void *data)
-+nv_procfs_show_version(
-+ struct seq_file *m,
-+ void *v
-+)
- {
-- int len = 0;
-- *eof = 1;
--
-- len += sprintf(page+len, "NVRM version: %s\n", pNVRM_ID);
-- len += sprintf(page+len, "GCC version: %s\n", NV_COMPILER);
--
-- return len;
-+ seq_printf(m, "NVRM version: %s\n", pNVRM_ID);
-+ seq_printf(m, "GCC version: %s\n", NV_COMPILER);
-+
-+ return 0;
-+}
-+
-+static int
-+nv_procfs_open_version(
-+ struct inode *inode,
-+ struct file *file
-+)
-+{
-+ return single_open(file, nv_procfs_show_version, NULL);
- }
-
-+static const struct file_operations nv_procfs_version_fops = {
-+ .owner = THIS_MODULE,
-+ .open = nv_procfs_open_version,
-+ .read = seq_read,
-+ .llseek = seq_lseek,
-+ .release = single_release,
-+};
-+
- static int
--nv_kern_read_agpinfo(char *page, char **start, off_t off,
-- int count, int *eof, void *data)
-+nv_procfs_show_agp_info(
-+ struct seq_file *m,
-+ void *v
-+)
- {
- struct pci_dev *dev;
- char *fw, *sba;
- u8 cap_ptr;
- u32 status, command, agp_rate;
-- int len = 0;
-
- nv_state_t *nv;
-- nv = (nv_state_t *) data;
-- *eof = 1;
-+ nv = (nv_state_t *) m->private;
-
- if (nv) {
- dev = nv_get_pci_device(nv);
-@@ -3172,12 +3211,12 @@ nv_kern_read_agpinfo(char *page, char **start, off_t off,
- if (!dev)
- return 0;
-
-- len += sprintf(page+len, "Host Bridge: \t ");
-+ seq_printf(m, "Host Bridge: \t ");
-
- #if defined(CONFIG_PCI_NAMES)
-- len += sprintf(page+len, "%s\n", NV_PCI_DEVICE_NAME(dev));
-+ seq_printf(m, "%s\n", NV_PCI_DEVICE_NAME(dev));
- #else
-- len += sprintf(page+len, "PCI device %04x:%04x\n",
-+ seq_printf(m, "PCI device %04x:%04x\n",
- dev->vendor, dev->device);
- #endif
- }
-@@ -3191,40 +3230,74 @@ nv_kern_read_agpinfo(char *page, char **start, off_t off,
- fw = (status & 0x00000010) ? "Supported" : "Not Supported";
- sba = (status & 0x00000200) ? "Supported" : "Not Supported";
-
-- len += sprintf(page+len, "Fast Writes: \t %s\n", fw);
-- len += sprintf(page+len, "SBA: \t\t %s\n", sba);
-+ seq_printf(m, "Fast Writes: \t %s\n", fw);
-+ seq_printf(m, "SBA: \t\t %s\n", sba);
-
- agp_rate = status & 0x7;
- if (status & 0x8) // agp 3.0
- agp_rate <<= 2;
-
-- len += sprintf(page+len, "AGP Rates: \t %s%s%s%s\n",
-+ seq_printf(m, "AGP Rates: \t %s%s%s%s\n",
- (agp_rate & 0x00000008) ? "8x " : "",
- (agp_rate & 0x00000004) ? "4x " : "",
- (agp_rate & 0x00000002) ? "2x " : "",
- (agp_rate & 0x00000001) ? "1x " : "");
-
-- len += sprintf(page+len, "Registers: \t 0x%08x:0x%08x\n", status, command);
-+ seq_printf(m, "Registers: \t 0x%08x:0x%08x\n", status, command);
-
- NV_PCI_DEV_PUT(dev);
-- return len;
-+ return 0;
-+}
-+
-+static int
-+nv_procfs_read_agp_info(
-+ struct inode *inode,
-+ struct file *file
-+)
-+{
-+ return single_open(file, nv_procfs_show_agp_info, NULL);
- }
-
-+static const struct file_operations nv_procfs_read_agp_info_fops = {
-+ .owner = THIS_MODULE,
-+ .open = nv_procfs_read_agp_info,
-+ .read = seq_read,
-+ .llseek = seq_lseek,
-+ .release = single_release,
-+};
-+
- static int
--nv_kern_read_status(char *page, char **start, off_t off,
-- int count, int *eof, void *data)
-+nv_procfs_read_agp_info_gpu(
-+ struct inode *inode,
-+ struct file *file
-+)
-+{
-+ return single_open(file, nv_procfs_show_agp_info, PDE_DATA(inode));
-+}
-+
-+static const struct file_operations nv_procfs_read_agp_info_gpu_fops = {
-+ .owner = THIS_MODULE,
-+ .open = nv_procfs_read_agp_info_gpu,
-+ .read = seq_read,
-+ .llseek = seq_lseek,
-+ .release = single_release,
-+};
-+
-+static int
-+nv_procfs_show_agp_status(
-+ struct seq_file *m,
-+ void *v
-+)
- {
- struct pci_dev *dev;
- char *fw, *sba, *drv;
-- int len = 0;
- u8 cap_ptr;
- u32 scratch;
- u32 status, command, agp_rate;
- nv_stack_t *sp = NULL;
-
- nv_state_t *nv;
-- nv = (nv_state_t *) data;
-- *eof = 1;
-+ nv = (nv_state_t *) m->private;
-
- dev = nvos_get_agp_device_by_class(PCI_CLASS_BRIDGE_HOST);
- if (!dev)
-@@ -3246,10 +3319,10 @@ nv_kern_read_status(char *page, char **start, off_t off,
- command &= scratch;
-
- if (NV_AGP_ENABLED(nv) && (command & 0x100)) {
-- len += sprintf(page+len, "Status: \t Enabled\n");
-+ seq_printf(m, "Status: \t Enabled\n");
-
- drv = NV_OSAGP_ENABLED(nv) ? "AGPGART" : "NVIDIA";
-- len += sprintf(page+len, "Driver: \t %s\n", drv);
-+ seq_printf(m, "Driver: \t %s\n", drv);
-
- // mask off agp rate.
- // If this is agp 3.0, we need to shift the value
-@@ -3257,13 +3330,13 @@ nv_kern_read_status(char *page, char **start, off_t off,
- if (status & 0x8) // agp 3.0
- agp_rate <<= 2;
-
-- len += sprintf(page+len, "AGP Rate: \t %dx\n", agp_rate);
-+ seq_printf(m, "AGP Rate: \t %dx\n", agp_rate);
-
- fw = (command & 0x00000010) ? "Enabled" : "Disabled";
-- len += sprintf(page+len, "Fast Writes: \t %s\n", fw);
-+ seq_printf(m, "Fast Writes: \t %s\n", fw);
-
- sba = (command & 0x00000200) ? "Enabled" : "Disabled";
-- len += sprintf(page+len, "SBA: \t\t %s\n", sba);
-+ seq_printf(m, "SBA: \t\t %s\n", sba);
- } else {
- int agp_config = 0;
-
-@@ -3274,7 +3347,7 @@ nv_kern_read_status(char *page, char **start, off_t off,
- return 0;
- }
-
-- len += sprintf(page+len, "Status: \t Disabled\n\n");
-+ seq_printf(m, "Status: \t Disabled\n\n");
-
- /*
- * If we find AGP is disabled, but the RM registry indicates it
-@@ -3288,7 +3361,7 @@ nv_kern_read_status(char *page, char **start, off_t off,
- rm_read_registry_dword(sp, nv, "NVreg", "XNvAGP", &agp_config);
-
- if (agp_config != NVOS_AGP_CONFIG_DISABLE_AGP && NV_AGP_FAILED(nv)) {
-- len += sprintf(page+len,
-+ seq_printf(m,
- "AGP initialization failed, please check the ouput \n"
- "of the 'dmesg' command and/or your system log file \n"
- "for additional information on this problem. \n");
-@@ -3298,37 +3371,63 @@ nv_kern_read_status(char *page, char **start, off_t off,
- }
-
- NV_PCI_DEV_PUT(dev);
-- return len;
-+ return 0;
-+}
-+
-+static int
-+nv_procfs_read_agp_status(
-+ struct inode *inode,
-+ struct file *file
-+)
-+{
-+ return single_open(file, nv_procfs_show_agp_status, PDE_DATA(inode));
- }
-
-+static const struct file_operations nv_procfs_read_agp_status_fops = {
-+ .owner = THIS_MODULE,
-+ .open = nv_procfs_read_agp_status,
-+ .read = seq_read,
-+ .llseek = seq_lseek,
-+ .release = single_release,
-+};
-+
- extern nv_parm_t nv_parms[];
- extern char *NVreg_RegistryDwords;
-
- static int
--nv_kern_read_registry(char *page, char **start, off_t off,
-- int count, int *eof, void *data)
-+nv_procfs_show_registry(
-+ struct seq_file *m,
-+ void *v
-+)
- {
-- unsigned int i, len = 0;
-+ unsigned int i;
- nv_parm_t *entry;
-- *eof = 1;
-
- for (i = 0; (entry = &nv_parms[i])->name != NULL; i++)
-- len += sprintf(page+len, "%s: %u\n", entry->name, *entry->data);
-+ seq_printf(m, "%s: %u\n", entry->name, *entry->data);
-
-- len += sprintf(page+len, "RegistryDwords: \"%s\"\n",
-+ seq_printf(m, "RegistryDwords: \"%s\"\n",
- (NVreg_RegistryDwords != NULL) ? NVreg_RegistryDwords : "");
-
-- return len;
-+ return 0;
- }
-
- static int
--nv_kern_read_text_file(char *page, char **start, off_t off,
-- int count, int *eof, void *data)
-+nv_procfs_open_registry(
-+ struct inode *inode,
-+ struct file *file
-+)
- {
-- *eof = 1;
-- return sprintf(page, "%s", (char *)data);
-+ return single_open(file, nv_procfs_show_registry, NULL);
- }
-
-+static const struct file_operations nv_procfs_registry_fops = {
-+ .open = nv_procfs_open_registry,
-+ .read = seq_read,
-+ .llseek = seq_lseek,
-+ .release = single_release,
-+};
-+
- /***
- *** EXPORTS to rest of resman
- ***/
---
-1.7.9.5
-