[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v1 09/47] vidoe: fbdev: atyfb: remove and fix MTRR MMIO "hole" work around
On Fri, Mar 20, 2015 at 04:17:59PM -0700, Luis R. Rodriguez wrote: > diff --git a/drivers/video/fbdev/aty/atyfb_base.c > b/drivers/video/fbdev/aty/atyfb_base.c > index 8025624..8875e56 100644 > --- a/drivers/video/fbdev/aty/atyfb_base.c > +++ b/drivers/video/fbdev/aty/atyfb_base.c > @@ -2630,21 +2630,10 @@ static int aty_init(struct fb_info *info) > > #ifdef CONFIG_MTRR > par->mtrr_aper = -1; > - par->mtrr_reg = -1; > if (!nomtrr) { > - /* Cover the whole resource. */ > - par->mtrr_aper = mtrr_add(par->res_start, par->res_size, > + par->mtrr_aper = mtrr_add(info->fix.smem_start, > + info->fix.smem_len, > MTRR_TYPE_WRCOMB, 1); MTRRs need power of two size, so how is this supposed to work? > - if (par->mtrr_aper >= 0 && !par->aux_start) { > - /* Make a hole for mmio. */ > - par->mtrr_reg = mtrr_add(par->res_start + 0x800000 - > - GUI_RESERVE, GUI_RESERVE, > - MTRR_TYPE_UNCACHABLE, 1); > - if (par->mtrr_reg < 0) { > - mtrr_del(par->mtrr_aper, 0, 0); > - par->mtrr_aper = -1; > - } > - } > } > #endif > > @@ -2776,10 +2765,6 @@ aty_init_exit: > par->pll_ops->set_pll(info, &par->saved_pll); > > #ifdef CONFIG_MTRR > - if (par->mtrr_reg >= 0) { > - mtrr_del(par->mtrr_reg, 0, 0); > - par->mtrr_reg = -1; > - } > if (par->mtrr_aper >= 0) { > mtrr_del(par->mtrr_aper, 0, 0); > par->mtrr_aper = -1; > @@ -3466,7 +3451,7 @@ static int atyfb_setup_generic(struct pci_dev *pdev, > struct fb_info *info, > } > > info->fix.mmio_start = raddr; > - par->ati_regbase = ioremap(info->fix.mmio_start, 0x1000); > + par->ati_regbase = ioremap_nocache(info->fix.mmio_start, 0x1000); > if (par->ati_regbase == NULL) > return -ENOMEM; > > @@ -3491,6 +3476,8 @@ static int atyfb_setup_generic(struct pci_dev *pdev, > struct fb_info *info, > info->fix.smem_start = addr; > info->fix.smem_len = 0x800000; > > + aty_fudge_framebuffer_len(info); > + > info->screen_base = ioremap(info->fix.smem_start, info->fix.smem_len); > if (info->screen_base == NULL) { > ret = -ENOMEM; > @@ -3563,6 +3550,7 @@ static int atyfb_pci_probe(struct pci_dev *pdev, > return -ENOMEM; > } > par = info->par; > + par->bus_type = PCI; > info->fix = atyfb_fix; > info->device = &pdev->dev; > par->pci_id = pdev->device; > @@ -3732,10 +3720,6 @@ static void atyfb_remove(struct fb_info *info) > #endif > > #ifdef CONFIG_MTRR > - if (par->mtrr_reg >= 0) { > - mtrr_del(par->mtrr_reg, 0, 0); > - par->mtrr_reg = -1; > - } > if (par->mtrr_aper >= 0) { > mtrr_del(par->mtrr_aper, 0, 0); > par->mtrr_aper = -1; > -- > 2.3.2.209.gd67f9d5.dirty > > -- > To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Ville Syrjälä syrjala@xxxxxx http://www.sci.fi/~syrjala/ _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |