Remove the use of drm_local_map for the FB mapping and replace it with the equivalent ioremap.
Macros nv_[rw]f32() are changed into inline functions and the 'dev' argument is explicit. Macros nv_[rw]v32() are removed as unused. Signed-off-by: Pekka Paalanen <[email protected]> --- drivers/gpu/drm/nouveau/nouveau_drv.h | 17 ++++++++++++----- drivers/gpu/drm/nouveau/nouveau_hw.c | 16 ++++++++-------- drivers/gpu/drm/nouveau/nouveau_state.c | 12 +++++------- 3 files changed, 25 insertions(+), 20 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h index 4d53129..74f835f 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drv.h +++ b/drivers/gpu/drm/nouveau/nouveau_drv.h @@ -448,7 +448,7 @@ struct drm_nouveau_private { int flags; void __iomem *mmio; - struct drm_local_map *fb; + void __iomem *fb; struct drm_local_map *ramin; struct work_struct irq_work; @@ -998,10 +998,17 @@ static inline void nv_wr08(struct drm_device *dev, unsigned reg, u8 val) (mask), (val)) /* VRAM access */ -#define nv_rf32(reg) nv_in32(fb, (reg)) -#define nv_wf32(reg,val) nv_out32(fb, (reg), (val)) -#define nv_rv32(reg) nv_rf32(reg) -#define nv_wv32(reg,val) nv_wf32(reg, val) +static inline u32 nv_rf32(struct drm_device *dev, unsigned reg) +{ + struct drm_nouveau_private *dev_priv = dev->dev_private; + return ioread32_native(dev_priv->fb + reg); +} + +static inline void nv_wf32(struct drm_device *dev, unsigned reg, u32 val) +{ + struct drm_nouveau_private *dev_priv = dev->dev_private; + iowrite32_native(val, dev_priv->fb + reg); +} /* PRAMIN access */ #define nv_ri32(reg) nv_in32(ramin, (reg)) diff --git a/drivers/gpu/drm/nouveau/nouveau_hw.c b/drivers/gpu/drm/nouveau/nouveau_hw.c index f3cd10d..295b876 100644 --- a/drivers/gpu/drm/nouveau/nouveau_hw.c +++ b/drivers/gpu/drm/nouveau/nouveau_hw.c @@ -578,36 +578,36 @@ nouveau_hw_save_vga_fonts(struct drm_device *dev, bool save) NVWriteVgaGr(dev, 0, NV_VIO_GX_READ_MAP_INDEX, 0x0); for (i = 0; i < 16384; i++) if (save) - dev_priv->saved_vga_font[0][i] = nv_rf32(i * 4); + dev_priv->saved_vga_font[0][i] = nv_rf32(dev, i * 4); else - nv_wf32(i * 4, dev_priv->saved_vga_font[0][i]); + nv_wf32(dev, i * 4, dev_priv->saved_vga_font[0][i]); /* store font in plane 1 */ NVWriteVgaSeq(dev, 0, NV_VIO_SR_PLANE_MASK_INDEX, 0x2); NVWriteVgaGr(dev, 0, NV_VIO_GX_READ_MAP_INDEX, 0x1); for (i = 0; i < 16384; i++) if (save) - dev_priv->saved_vga_font[1][i] = nv_rf32(i * 4); + dev_priv->saved_vga_font[1][i] = nv_rf32(dev, i * 4); else - nv_wf32(i * 4, dev_priv->saved_vga_font[1][i]); + nv_wf32(dev, i * 4, dev_priv->saved_vga_font[1][i]); /* store font in plane 2 */ NVWriteVgaSeq(dev, 0, NV_VIO_SR_PLANE_MASK_INDEX, 0x4); NVWriteVgaGr(dev, 0, NV_VIO_GX_READ_MAP_INDEX, 0x2); for (i = 0; i < 16384; i++) if (save) - dev_priv->saved_vga_font[2][i] = nv_rf32(i * 4); + dev_priv->saved_vga_font[2][i] = nv_rf32(dev, i * 4); else - nv_wf32(i * 4, dev_priv->saved_vga_font[2][i]); + nv_wf32(dev, i * 4, dev_priv->saved_vga_font[2][i]); /* store font in plane 3 */ NVWriteVgaSeq(dev, 0, NV_VIO_SR_PLANE_MASK_INDEX, 0x8); NVWriteVgaGr(dev, 0, NV_VIO_GX_READ_MAP_INDEX, 0x3); for (i = 0; i < 16384; i++) if (save) - dev_priv->saved_vga_font[3][i] = nv_rf32(i * 4); + dev_priv->saved_vga_font[3][i] = nv_rf32(dev, i * 4); else - nv_wf32(i * 4, dev_priv->saved_vga_font[3][i]); + nv_wf32(dev, i * 4, dev_priv->saved_vga_font[3][i]); /* restore control regs */ NVWritePRMVIO(dev, 0, NV_PRMVIO_MISC__WRITE, misc); diff --git a/drivers/gpu/drm/nouveau/nouveau_state.c b/drivers/gpu/drm/nouveau/nouveau_state.c index b70ec33..3a6cabf 100644 --- a/drivers/gpu/drm/nouveau/nouveau_state.c +++ b/drivers/gpu/drm/nouveau/nouveau_state.c @@ -579,12 +579,10 @@ int nouveau_load(struct drm_device *dev, unsigned long flags) } /* map first 64KiB of VRAM, holds VGA fonts etc */ - ret = drm_addmap(dev, drm_get_resource_start(dev, 1), 65536, - _DRM_REGISTERS, _DRM_READ_ONLY | _DRM_DRIVER, - &dev_priv->fb); - if (ret) { - NV_ERROR(dev, "Failed to map FB BAR: %d\n", ret); - return ret; + dev_priv->fb = ioremap(pci_resource_start(dev->pdev, 1), 65536); + if (!dev_priv->fb) { + NV_ERROR(dev, "Failed to map FB BAR\n"); + return -ENOMEM; } #if defined(__powerpc__) @@ -656,7 +654,7 @@ int nouveau_unload(struct drm_device *dev) iounmap(dev_priv->mmio); drm_rmmap(dev, dev_priv->ramin); - drm_rmmap(dev, dev_priv->fb); + iounmap(dev_priv->fb); kfree(dev_priv); dev->dev_private = NULL; -- 1.6.3.3 _______________________________________________ Nouveau mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/nouveau
