On Sat, Mar 21, 2015 at 11:15:14AM +0200, Ville Syrjälä wrote: > 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?
Still waiting for an answer... > > > - 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 majord...@vger.kernel.org > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > -- > Ville Syrjälä > syrj...@sci.fi > http://www.sci.fi/~syrjala/ -- Ville Syrjälä syrj...@sci.fi http://www.sci.fi/~syrjala/ _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel