Re: [PATCH v5 1/3] video: fbdev: atyfb: clarify ioremap() base and length used

From: Ville Syrjälä
Date: Wed Jul 08 2015 - 04:39:21 EST


On Tue, Jul 07, 2015 at 05:24:57PM -0700, Luis R. Rodriguez wrote:
> On Thu, Jul 2, 2015 at 4:23 PM, Luis R. Rodriguez <mcgrof@xxxxxxxx> wrote:
> > On Fri, Jun 26, 2015 at 12:30 AM, Borislav Petkov <bp@xxxxxxx> wrote:
> >> On Fri, Jun 26, 2015 at 03:09:27AM +0200, Luis R. Rodriguez wrote:
> >>> Sure, mind this as a follow up patch if its too late?
> >>
> >> No need, you can send me an updated one - I'll replace it.
> >
> > Will do!
>
> OK the commend I'm adding:
>
> @@ -3489,6 +3489,15 @@ static int atyfb_setup_generic(struct pci_dev
> *pdev, struct fb_info *info,
>
> /* Map in frame buffer */
> info->fix.smem_start = addr;
> +
> + /*
> + * The framebuffer is not always 8 MiB that's just the size of the
> + * PCI BAR, this is later corrected for use with write-combining
> + * helpers with aty_fudge_framebuffer_len() which will adjust the
> + * framebuffer accordingly depending on the device.

That somehow gives me the impression that aty_fudge_framebuffer_len()
changes smem_len to match the framebuffer size, which it does
not.

Dunno, maybe something like this?
/*
* The framebuffer is not always 8 MiB that's just the size of the
* PCI BAR. We temporarily abuse smem_len here to store the size
* of the BAR. aty_init() will later correct it to match the actual
* framebuffer size.
*
* On devices that don't have the auxiliary register aperture, the
* registers are housed at the top end of the framebuffer PCI BAR.
* aty_fudge_framebuffer_len() is used to reduce smem_len to not
* overlap with the registers.
*/

> We do this
> + * to match semantics over ioremap calls on framebuffer devices
> + * with with other drivers with the info->fix.smem_len.
> + */
> info->fix.smem_len = 0x800000;
>
> info->screen_base = ioremap(info->fix.smem_start, info->fix.smem_len);
>
> Will respin.
>
> Luis

--
Ville Syrjälä
syrjala@xxxxxx
http://www.sci.fi/~syrjala/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/