Commit e4a163ea authored by Dave Jones's avatar Dave Jones

Merge delerium.kernelslacker.org:/mnt/data/src/bk/bk-linus

into delerium.kernelslacker.org:/mnt/data/src/bk/agpgart
parents f21ec409 b8e20524
...@@ -214,17 +214,6 @@ static void agp_backend_cleanup(struct agp_bridge_data *bridge) ...@@ -214,17 +214,6 @@ static void agp_backend_cleanup(struct agp_bridge_data *bridge)
phys_to_virt(bridge->scratch_page_real)); phys_to_virt(bridge->scratch_page_real));
} }
static const drm_agp_t drm_agp = {
&agp_free_memory,
&agp_allocate_memory,
&agp_bind_memory,
&agp_unbind_memory,
&agp_enable,
&agp_backend_acquire,
&agp_backend_release,
&agp_copy_info
};
/* XXX Kludge alert: agpgart isn't ready for multiple bridges yet */ /* XXX Kludge alert: agpgart isn't ready for multiple bridges yet */
struct agp_bridge_data *agp_alloc_bridge(void) struct agp_bridge_data *agp_alloc_bridge(void)
{ {
...@@ -277,9 +266,6 @@ int agp_add_bridge(struct agp_bridge_data *bridge) ...@@ -277,9 +266,6 @@ int agp_add_bridge(struct agp_bridge_data *bridge)
goto frontend_err; goto frontend_err;
} }
/* FIXME: What to do with this? */
inter_module_register("drm_agp", THIS_MODULE, &drm_agp);
agp_count++; agp_count++;
return 0; return 0;
...@@ -298,7 +284,6 @@ void agp_remove_bridge(struct agp_bridge_data *bridge) ...@@ -298,7 +284,6 @@ void agp_remove_bridge(struct agp_bridge_data *bridge)
bridge->type = NOT_SUPPORTED; bridge->type = NOT_SUPPORTED;
agp_frontend_cleanup(); agp_frontend_cleanup();
agp_backend_cleanup(bridge); agp_backend_cleanup(bridge);
inter_module_unregister("drm_agp");
agp_count--; agp_count--;
module_put(bridge->driver->owner); module_put(bridge->driver->owner);
} }
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* Intel(R) 855GM/852GM and 865G support added by David Dawes * Intel(R) 855GM/852GM and 865G support added by David Dawes
* <dawes@tungstengraphics.com>. * <dawes@tungstengraphics.com>.
* *
* Intel(R) 915G support added by Alan Hourihane * Intel(R) 915G/915GM support added by Alan Hourihane
* <alanh@tungstengraphics.com>. * <alanh@tungstengraphics.com>.
*/ */
...@@ -415,14 +415,16 @@ static void intel_i830_init_gtt_entries(void) ...@@ -415,14 +415,16 @@ static void intel_i830_init_gtt_entries(void)
break; break;
case I915_GMCH_GMS_STOLEN_48M: case I915_GMCH_GMS_STOLEN_48M:
/* Check it's really I915G */ /* Check it's really I915G */
if (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82915G_HB) if (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82915G_HB ||
agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82915G_HB)
gtt_entries = MB(48) - KB(size); gtt_entries = MB(48) - KB(size);
else else
gtt_entries = 0; gtt_entries = 0;
break; break;
case I915_GMCH_GMS_STOLEN_64M: case I915_GMCH_GMS_STOLEN_64M:
/* Check it's really I915G */ /* Check it's really I915G */
if (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82915G_HB) if (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82915G_HB ||
agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82915G_HB)
gtt_entries = MB(64) - KB(size); gtt_entries = MB(64) - KB(size);
else else
gtt_entries = 0; gtt_entries = 0;
...@@ -1648,6 +1650,14 @@ static int __devinit agp_intel_probe(struct pci_dev *pdev, ...@@ -1648,6 +1650,14 @@ static int __devinit agp_intel_probe(struct pci_dev *pdev,
} }
name = "915G"; name = "915G";
break; break;
case PCI_DEVICE_ID_INTEL_82915GM_HB:
if (find_i830(PCI_DEVICE_ID_INTEL_82915GM_IG)) {
bridge->driver = &intel_915_driver;
} else {
bridge->driver = &intel_845_driver;
}
name = "915GM";
break;
case PCI_DEVICE_ID_INTEL_7505_0: case PCI_DEVICE_ID_INTEL_7505_0:
bridge->driver = &intel_7505_driver; bridge->driver = &intel_7505_driver;
name = "E7505"; name = "E7505";
...@@ -1720,8 +1730,13 @@ static void __devexit agp_intel_remove(struct pci_dev *pdev) ...@@ -1720,8 +1730,13 @@ static void __devexit agp_intel_remove(struct pci_dev *pdev)
{ {
struct agp_bridge_data *bridge = pci_get_drvdata(pdev); struct agp_bridge_data *bridge = pci_get_drvdata(pdev);
pci_dev_put(pdev);
agp_remove_bridge(bridge); agp_remove_bridge(bridge);
if (intel_i810_private.i810_dev)
pci_dev_put(intel_i810_private.i810_dev);
if (intel_i830_private.i830_dev)
pci_dev_put(intel_i830_private.i830_dev);
agp_put_bridge(bridge); agp_put_bridge(bridge);
} }
...@@ -1775,6 +1790,7 @@ static struct pci_device_id agp_intel_pci_table[] = { ...@@ -1775,6 +1790,7 @@ static struct pci_device_id agp_intel_pci_table[] = {
ID(PCI_DEVICE_ID_INTEL_7505_0), ID(PCI_DEVICE_ID_INTEL_7505_0),
ID(PCI_DEVICE_ID_INTEL_7205_0), ID(PCI_DEVICE_ID_INTEL_7205_0),
ID(PCI_DEVICE_ID_INTEL_82915G_HB), ID(PCI_DEVICE_ID_INTEL_82915G_HB),
ID(PCI_DEVICE_ID_INTEL_82915GM_HB),
{ } { }
}; };
......
...@@ -569,15 +569,16 @@ static void __devexit agp_intelmch_remove(struct pci_dev *pdev) ...@@ -569,15 +569,16 @@ static void __devexit agp_intelmch_remove(struct pci_dev *pdev)
{ {
struct agp_bridge_data *bridge = pci_get_drvdata(pdev); struct agp_bridge_data *bridge = pci_get_drvdata(pdev);
pci_dev_put(pdev);
agp_remove_bridge(bridge); agp_remove_bridge(bridge);
if (intel_i830_private.i830_dev)
pci_dev_put(intel_i830_private.i830_dev);
agp_put_bridge(bridge); agp_put_bridge(bridge);
} }
static int agp_intelmch_resume(struct pci_dev *pdev) static int agp_intelmch_resume(struct pci_dev *pdev)
{ {
struct agp_bridge_data *bridge = pci_get_drvdata(pdev); struct agp_bridge_data *bridge = pci_get_drvdata(pdev);
pci_restore_state(pdev); pci_restore_state(pdev);
if (bridge->driver == &intel_845_driver) if (bridge->driver == &intel_845_driver)
......
...@@ -96,23 +96,5 @@ extern void agp_enable(u32); ...@@ -96,23 +96,5 @@ extern void agp_enable(u32);
extern int agp_backend_acquire(void); extern int agp_backend_acquire(void);
extern void agp_backend_release(void); extern void agp_backend_release(void);
/*
* Interface between drm and agp code. When agp initializes, it makes
* the below structure available via inter_module_register(), drm might
* use it. Keith Owens <kaos@ocs.com.au> 28 Oct 2000.
*/
typedef struct {
void (*free_memory)(struct agp_memory *);
struct agp_memory * (*allocate_memory)(size_t, u32);
int (*bind_memory)(struct agp_memory *, off_t);
int (*unbind_memory)(struct agp_memory *);
void (*enable)(u32);
int (*acquire)(void);
void (*release)(void);
int (*copy_info)(struct agp_kern_info *);
} drm_agp_t;
extern const drm_agp_t *drm_agp_p;
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
#endif /* _AGP_BACKEND_H */ #endif /* _AGP_BACKEND_H */
...@@ -2226,6 +2226,8 @@ ...@@ -2226,6 +2226,8 @@
#define PCI_DEVICE_ID_INTEL_82875_IG 0x257b #define PCI_DEVICE_ID_INTEL_82875_IG 0x257b
#define PCI_DEVICE_ID_INTEL_82915G_HB 0x2580 #define PCI_DEVICE_ID_INTEL_82915G_HB 0x2580
#define PCI_DEVICE_ID_INTEL_82915G_IG 0x2582 #define PCI_DEVICE_ID_INTEL_82915G_IG 0x2582
#define PCI_DEVICE_ID_INTEL_82915GM_HB 0x2590
#define PCI_DEVICE_ID_INTEL_82915GM_IG 0x2592
#define PCI_DEVICE_ID_INTEL_ICH6_0 0x2640 #define PCI_DEVICE_ID_INTEL_ICH6_0 0x2640
#define PCI_DEVICE_ID_INTEL_ICH6_1 0x2641 #define PCI_DEVICE_ID_INTEL_ICH6_1 0x2641
#define PCI_DEVICE_ID_INTEL_ICH6_2 0x2642 #define PCI_DEVICE_ID_INTEL_ICH6_2 0x2642
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment