提交 24986ee0 编写于 作者: D Daniel Vetter 提交者: Dave Airlie

drm: kill DRIVER_REQUIRE_AGP

Only the two intel drivers need this and they can easily check for
working agp support in their driver ->load callbacks.

This is the only reason why agp initialization could fail, so allows
us to rip out a bit of error handling code in the next patch.
Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: NDave Airlie <airlied@redhat.com>
上级 5ec467a8
...@@ -267,11 +267,6 @@ static int drm_pci_agp_init(struct drm_device *dev) ...@@ -267,11 +267,6 @@ static int drm_pci_agp_init(struct drm_device *dev)
if (drm_core_has_AGP(dev)) { if (drm_core_has_AGP(dev)) {
if (drm_pci_device_is_agp(dev)) if (drm_pci_device_is_agp(dev))
dev->agp = drm_agp_init(dev); dev->agp = drm_agp_init(dev);
if (drm_core_check_feature(dev, DRIVER_REQUIRE_AGP)
&& (dev->agp == NULL)) {
DRM_ERROR("Cannot initialize the agpgart module.\n");
return -EINVAL;
}
if (dev->agp) { if (dev->agp) {
dev->agp->agp_mtrr = arch_phys_wc_add( dev->agp->agp_mtrr = arch_phys_wc_add(
dev->agp->agp_info.aper_base, dev->agp->agp_info.aper_base,
......
...@@ -1193,6 +1193,10 @@ static int i810_flip_bufs(struct drm_device *dev, void *data, ...@@ -1193,6 +1193,10 @@ static int i810_flip_bufs(struct drm_device *dev, void *data,
int i810_driver_load(struct drm_device *dev, unsigned long flags) int i810_driver_load(struct drm_device *dev, unsigned long flags)
{ {
/* Our userspace depends upon the agp mapping support. */
if (!dev->agp)
return -EINVAL;
pci_set_master(dev->pdev); pci_set_master(dev->pdev);
return 0; return 0;
......
...@@ -57,7 +57,7 @@ static const struct file_operations i810_driver_fops = { ...@@ -57,7 +57,7 @@ static const struct file_operations i810_driver_fops = {
static struct drm_driver driver = { static struct drm_driver driver = {
.driver_features = .driver_features =
DRIVER_USE_AGP | DRIVER_REQUIRE_AGP | DRIVER_USE_AGP |
DRIVER_HAVE_DMA, DRIVER_HAVE_DMA,
.dev_priv_size = sizeof(drm_i810_buf_priv_t), .dev_priv_size = sizeof(drm_i810_buf_priv_t),
.load = i810_driver_load, .load = i810_driver_load,
......
...@@ -1476,6 +1476,10 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags) ...@@ -1476,6 +1476,10 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
return -ENODEV; return -ENODEV;
} }
/* UMS needs agp support. */
if (!drm_core_check_feature(dev, DRIVER_MODESET) && !dev->agp)
return -EINVAL;
dev_priv = kzalloc(sizeof(*dev_priv), GFP_KERNEL); dev_priv = kzalloc(sizeof(*dev_priv), GFP_KERNEL);
if (dev_priv == NULL) if (dev_priv == NULL)
return -ENOMEM; return -ENOMEM;
......
...@@ -828,7 +828,7 @@ static int i915_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -828,7 +828,7 @@ static int i915_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if (PCI_FUNC(pdev->devfn)) if (PCI_FUNC(pdev->devfn))
return -ENODEV; return -ENODEV;
driver.driver_features &= ~(DRIVER_USE_AGP | DRIVER_REQUIRE_AGP); driver.driver_features &= ~(DRIVER_USE_AGP);
return drm_get_pci_dev(pdev, ent, &driver); return drm_get_pci_dev(pdev, ent, &driver);
} }
...@@ -936,7 +936,7 @@ static struct drm_driver driver = { ...@@ -936,7 +936,7 @@ static struct drm_driver driver = {
* deal with them for Intel hardware. * deal with them for Intel hardware.
*/ */
.driver_features = .driver_features =
DRIVER_USE_AGP | DRIVER_REQUIRE_AGP | DRIVER_USE_AGP |
DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM | DRIVER_PRIME | DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM | DRIVER_PRIME |
DRIVER_RENDER, DRIVER_RENDER,
.load = i915_driver_load, .load = i915_driver_load,
......
...@@ -137,7 +137,6 @@ int drm_err(const char *func, const char *format, ...); ...@@ -137,7 +137,6 @@ int drm_err(const char *func, const char *format, ...);
/* driver capabilities and requirements mask */ /* driver capabilities and requirements mask */
#define DRIVER_USE_AGP 0x1 #define DRIVER_USE_AGP 0x1
#define DRIVER_REQUIRE_AGP 0x2
#define DRIVER_PCI_DMA 0x8 #define DRIVER_PCI_DMA 0x8
#define DRIVER_SG 0x10 #define DRIVER_SG 0x10
#define DRIVER_HAVE_DMA 0x20 #define DRIVER_HAVE_DMA 0x20
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册