On Wed, Jan 25, 2017 at 1:26 AM, Daniel Vetter <daniel.vetter@xxxxxxxx> wrote: > Use the same trick we used for i915 when we still had ums support: > Just initialize the agp support unconditionally in the driver load > function. > > Unfortunately that means we need to export drm_agp_init again, but I > think that's a lesser evil. > > Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx> Acked-by: Alex Deucher <alexander.deucher@xxxxxxx> > --- > drivers/gpu/drm/drm_agpsupport.c | 2 ++ > drivers/gpu/drm/i810/i810_dma.c | 24 ++++++++---------------- > drivers/gpu/drm/i810/i810_drv.c | 1 - > drivers/gpu/drm/i810/i810_drv.h | 1 - > 4 files changed, 10 insertions(+), 18 deletions(-) > > diff --git a/drivers/gpu/drm/drm_agpsupport.c b/drivers/gpu/drm/drm_agpsupport.c > index d621c8a4cf00..c89953449e96 100644 > --- a/drivers/gpu/drm/drm_agpsupport.c > +++ b/drivers/gpu/drm/drm_agpsupport.c > @@ -421,6 +421,8 @@ struct drm_agp_head *drm_agp_init(struct drm_device *dev) > head->base = head->agp_info.aper_base; > return head; > } > +/* Only exported for i810.ko */ > +EXPORT_SYMBOL(drm_agp_init); > > /** > * drm_legacy_agp_clear - Clear AGP resource list > diff --git a/drivers/gpu/drm/i810/i810_dma.c b/drivers/gpu/drm/i810/i810_dma.c > index ab4e6cbe1f8b..576a417690d4 100644 > --- a/drivers/gpu/drm/i810/i810_dma.c > +++ b/drivers/gpu/drm/i810/i810_dma.c > @@ -1190,6 +1190,14 @@ static int i810_flip_bufs(struct drm_device *dev, void *data, > > int i810_driver_load(struct drm_device *dev, unsigned long flags) > { > + dev->agp = drm_agp_init(dev); > + if (dev->agp) { > + dev->agp->agp_mtrr = arch_phys_wc_add( > + dev->agp->agp_info.aper_base, > + dev->agp->agp_info.aper_size * > + 1024 * 1024); > + } > + > /* Our userspace depends upon the agp mapping support. */ > if (!dev->agp) > return -EINVAL; > @@ -1249,19 +1257,3 @@ const struct drm_ioctl_desc i810_ioctls[] = { > }; > > int i810_max_ioctl = ARRAY_SIZE(i810_ioctls); > - > -/** > - * Determine if the device really is AGP or not. > - * > - * All Intel graphics chipsets are treated as AGP, even if they are really > - * PCI-e. > - * > - * \param dev The device to be tested. > - * > - * \returns > - * A value of 1 is always retured to indictate every i810 is AGP. > - */ > -int i810_driver_device_is_agp(struct drm_device *dev) > -{ > - return 1; > -} > diff --git a/drivers/gpu/drm/i810/i810_drv.c b/drivers/gpu/drm/i810/i810_drv.c > index 02504a7cfaf2..37fd0906f807 100644 > --- a/drivers/gpu/drm/i810/i810_drv.c > +++ b/drivers/gpu/drm/i810/i810_drv.c > @@ -60,7 +60,6 @@ static struct drm_driver driver = { > .lastclose = i810_driver_lastclose, > .preclose = i810_driver_preclose, > .set_busid = drm_pci_set_busid, > - .device_is_agp = i810_driver_device_is_agp, > .dma_quiescent = i810_driver_dma_quiescent, > .ioctls = i810_ioctls, > .fops = &i810_driver_fops, > diff --git a/drivers/gpu/drm/i810/i810_drv.h b/drivers/gpu/drm/i810/i810_drv.h > index 93ec5dc4e7d3..c73d2f2da57b 100644 > --- a/drivers/gpu/drm/i810/i810_drv.h > +++ b/drivers/gpu/drm/i810/i810_drv.h > @@ -124,7 +124,6 @@ extern int i810_driver_load(struct drm_device *, unsigned long flags); > extern void i810_driver_lastclose(struct drm_device *dev); > extern void i810_driver_preclose(struct drm_device *dev, > struct drm_file *file_priv); > -extern int i810_driver_device_is_agp(struct drm_device *dev); > > extern long i810_ioctl(struct file *file, unsigned int cmd, unsigned long arg); > extern const struct drm_ioctl_desc i810_ioctls[]; > -- > 2.11.0 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel