|
@@ -427,6 +427,20 @@ static struct {
|
|
#endif /* CONFIG_FB_ATY_CT */
|
|
#endif /* CONFIG_FB_ATY_CT */
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+/*
|
|
|
|
+ * Last page of 8 MB (4 MB on ISA) aperture is MMIO,
|
|
|
|
+ * unless the auxiliary register aperture is used.
|
|
|
|
+ */
|
|
|
|
+static void aty_fudge_framebuffer_len(struct fb_info *info)
|
|
|
|
+{
|
|
|
|
+ struct atyfb_par *par = (struct atyfb_par *) info->par;
|
|
|
|
+
|
|
|
|
+ if (!par->aux_start &&
|
|
|
|
+ (info->fix.smem_len == 0x800000 ||
|
|
|
|
+ (par->bus_type == ISA && info->fix.smem_len == 0x400000)))
|
|
|
|
+ info->fix.smem_len -= GUI_RESERVE;
|
|
|
|
+}
|
|
|
|
+
|
|
static int correct_chipset(struct atyfb_par *par)
|
|
static int correct_chipset(struct atyfb_par *par)
|
|
{
|
|
{
|
|
u8 rev;
|
|
u8 rev;
|
|
@@ -2603,14 +2617,7 @@ static int aty_init(struct fb_info *info)
|
|
if (par->pll_ops->resume_pll)
|
|
if (par->pll_ops->resume_pll)
|
|
par->pll_ops->resume_pll(info, &par->pll);
|
|
par->pll_ops->resume_pll(info, &par->pll);
|
|
|
|
|
|
- /*
|
|
|
|
- * Last page of 8 MB (4 MB on ISA) aperture is MMIO,
|
|
|
|
- * unless the auxiliary register aperture is used.
|
|
|
|
- */
|
|
|
|
- if (!par->aux_start &&
|
|
|
|
- (info->fix.smem_len == 0x800000 ||
|
|
|
|
- (par->bus_type == ISA && info->fix.smem_len == 0x400000)))
|
|
|
|
- info->fix.smem_len -= GUI_RESERVE;
|
|
|
|
|
|
+ aty_fudge_framebuffer_len(info);
|
|
|
|
|
|
/*
|
|
/*
|
|
* Disable register access through the linear aperture
|
|
* Disable register access through the linear aperture
|