drivers/video/fbdev/atyfb: Clarify ioremap() base and length used
authorLuis R. Rodriguez <mcgrof@suse.com>
Fri, 10 Jul 2015 01:24:57 +0000 (18:24 -0700)
committerIngo Molnar <mingo@kernel.org>
Tue, 21 Jul 2015 08:47:04 +0000 (10:47 +0200)
Adjust the ioremap() call for the framebuffer to use the same
values we later use for the framebuffer. This will make it
easier to review the next change.

The size of the framebuffer varies but since this is for PCI we
*know* this defaults to 0x800000. atyfb_setup_generic() is
*only* used on PCI probe.

No functional change.

Signed-off-by: Luis R. Rodriguez <mcgrof@suse.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Andrzej Hajda <a.hajda@samsung.com>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Antonino Daplas <adaplas@gmail.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Dave Airlie <airlied@redhat.com>
Cc: Davidlohr Bueso <dbueso@suse.de>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
Cc: Juergen Gross <jgross@suse.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mathias Krause <minipli@googlemail.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Suresh Siddha <sbsiddha@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: Toshi Kani <toshi.kani@hp.com>
Cc: Ville Syrjälä <syrjala@sci.fi>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: arnd@arndb.de
Cc: benh@kernel.crashing.org
Cc: dan.j.williams@intel.com
Cc: geert@linux-m68k.org
Cc: hch@lst.de
Cc: hmh@hmh.eng.br
Cc: linux-fbdev@vger.kernel.org
Cc: linux-mm@kvack.org
Cc: linux-pci@vger.kernel.org
Cc: mpe@ellerman.id.au
Cc: mst@redhat.com
Cc: ralf@linux-mips.org
Cc: ross.zwisler@linux.intel.com
Cc: stefan.bader@canonical.com
Cc: tj@kernel.org
Cc: ville.syrjala@linux.intel.com
Link: http://lkml.kernel.org/r/1436491499-3289-3-git-send-email-mcgrof@do-not-panic.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
drivers/video/fbdev/aty/atyfb_base.c

index 16936bb1f865342a43e0427109d7ae02c91189b8..de8f7e082c87e5667cba44cacf52f7c8e335b486 100644 (file)
@@ -3489,7 +3489,21 @@ static int atyfb_setup_generic(struct pci_dev *pdev, struct fb_info *info,
 
        /* Map in frame buffer */
        info->fix.smem_start = addr;
-       info->screen_base = ioremap(addr, 0x800000);
+
+       /*
+        * 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.
+        */
+       info->fix.smem_len = 0x800000;
+
+       info->screen_base = ioremap(info->fix.smem_start, info->fix.smem_len);
        if (info->screen_base == NULL) {
                ret = -ENOMEM;
                goto atyfb_setup_generic_fail;