git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git]
/
drivers
/
char
/
agp
/
ali-agp.c
diff --git
a/drivers/char/agp/ali-agp.c
b/drivers/char/agp/ali-agp.c
index
005b820
..
5a31ec7
100644
(file)
--- a/
drivers/char/agp/ali-agp.c
+++ b/
drivers/char/agp/ali-agp.c
@@
-7,6
+7,7
@@
#include <linux/pci.h>
#include <linux/init.h>
#include <linux/agp_backend.h>
#include <linux/pci.h>
#include <linux/init.h>
#include <linux/agp_backend.h>
+#include <asm/page.h> /* PAGE_SIZE */
#include "agp.h"
#define ALI_AGPCTRL 0xb8
#include "agp.h"
#define ALI_AGPCTRL 0xb8
@@
-139,18
+140,18
@@
static void m1541_cache_flush(void)
}
}
}
}
-static void *m1541_alloc_page(
void
)
+static void *m1541_alloc_page(
struct agp_bridge_data *bridge
)
{
{
- void *addr = agp_generic_alloc_page();
+ void *addr = agp_generic_alloc_page(
agp_bridge
);
u32 temp;
if (!addr)
return NULL;
u32 temp;
if (!addr)
return NULL;
-
+
pci_read_config_dword(agp_bridge->dev, ALI_CACHE_FLUSH_CTRL, &temp);
pci_write_config_dword(agp_bridge->dev, ALI_CACHE_FLUSH_CTRL,
(((temp & ALI_CACHE_FLUSH_ADDR_MASK) |
pci_read_config_dword(agp_bridge->dev, ALI_CACHE_FLUSH_CTRL, &temp);
pci_write_config_dword(agp_bridge->dev, ALI_CACHE_FLUSH_CTRL,
(((temp & ALI_CACHE_FLUSH_ADDR_MASK) |
- virt_to_
phys
(addr)) | ALI_CACHE_FLUSH_EN ));
+ virt_to_
gart
(addr)) | ALI_CACHE_FLUSH_EN ));
return addr;
}
return addr;
}
@@
-174,7
+175,7
@@
static void m1541_destroy_page(void * addr)
pci_read_config_dword(agp_bridge->dev, ALI_CACHE_FLUSH_CTRL, &temp);
pci_write_config_dword(agp_bridge->dev, ALI_CACHE_FLUSH_CTRL,
(((temp & ALI_CACHE_FLUSH_ADDR_MASK) |
pci_read_config_dword(agp_bridge->dev, ALI_CACHE_FLUSH_CTRL, &temp);
pci_write_config_dword(agp_bridge->dev, ALI_CACHE_FLUSH_CTRL,
(((temp & ALI_CACHE_FLUSH_ADDR_MASK) |
- virt_to_
phys
(addr)) | ALI_CACHE_FLUSH_EN));
+ virt_to_
gart
(addr)) | ALI_CACHE_FLUSH_EN));
agp_generic_destroy_page(addr);
}
agp_generic_destroy_page(addr);
}
@@
-192,7
+193,7
@@
static struct aper_size_info_32 ali_generic_sizes[7] =
{4, 1024, 0, 3}
};
{4, 1024, 0, 3}
};
-struct agp_bridge_driver ali_generic_bridge = {
+st
atic st
ruct agp_bridge_driver ali_generic_bridge = {
.owner = THIS_MODULE,
.aperture_sizes = ali_generic_sizes,
.size_type = U32_APER_SIZE,
.owner = THIS_MODULE,
.aperture_sizes = ali_generic_sizes,
.size_type = U32_APER_SIZE,
@@
-215,7
+216,7
@@
struct agp_bridge_driver ali_generic_bridge = {
.agp_destroy_page = ali_destroy_page,
};
.agp_destroy_page = ali_destroy_page,
};
-struct agp_bridge_driver ali_m1541_bridge = {
+st
atic st
ruct agp_bridge_driver ali_m1541_bridge = {
.owner = THIS_MODULE,
.aperture_sizes = ali_generic_sizes,
.size_type = U32_APER_SIZE,
.owner = THIS_MODULE,
.aperture_sizes = ali_generic_sizes,
.size_type = U32_APER_SIZE,
@@
-277,6
+278,15
@@
static struct agp_device_ids ali_agp_device_ids[] __devinitdata =
.device_id = PCI_DEVICE_ID_AL_M1671,
.chipset_name = "M1671",
},
.device_id = PCI_DEVICE_ID_AL_M1671,
.chipset_name = "M1671",
},
+ {
+ .device_id = PCI_DEVICE_ID_AL_M1681,
+ .chipset_name = "M1681",
+ },
+ {
+ .device_id = PCI_DEVICE_ID_AL_M1683,
+ .chipset_name = "M1683",
+ },
+
{ }, /* dummy final entry, always present */
};
{ }, /* dummy final entry, always present */
};
@@
-387,7
+397,9
@@
static struct pci_driver agp_ali_pci_driver = {
static int __init agp_ali_init(void)
{
static int __init agp_ali_init(void)
{
- return pci_module_init(&agp_ali_pci_driver);
+ if (agp_off)
+ return -EINVAL;
+ return pci_register_driver(&agp_ali_pci_driver);
}
static void __exit agp_ali_cleanup(void)
}
static void __exit agp_ali_cleanup(void)