Thread (15 messages) flat view 15 messages, 4 authors, 2015-07-09

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

From: Ville Syrjälä <syrjala@sci.fi>
Date: 2015-07-08 08:39:15
Also in: linux-pci, lkml

On Tue, Jul 07, 2015 at 05:24:57PM -0700, Luis R. Rodriguez wrote:
quoted hunk ↗ jump to hunk
On Thu, Jul 2, 2015 at 4:23 PM, Luis R. Rodriguez [off-list ref] wrote:
quoted
On Fri, Jun 26, 2015 at 12:30 AM, Borislav Petkov [off-list ref] wrote:
quoted
On Fri, Jun 26, 2015 at 03:09:27AM +0200, Luis R. Rodriguez wrote:
quoted
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@sci.fi
http://www.sci.fi/~syrjala/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help