diff options
| -rw-r--r-- | arch/mips/sgi-ip32/ip32-platform.c | 4 | ||||
| -rw-r--r-- | drivers/char/drm/i915_drv.h | 6 | ||||
| -rw-r--r-- | drivers/char/drm/i915_irq.c | 12 | ||||
| -rw-r--r-- | include/asm-mips/page.h | 2 |
4 files changed, 21 insertions, 3 deletions
diff --git a/arch/mips/sgi-ip32/ip32-platform.c b/arch/mips/sgi-ip32/ip32-platform.c index ba3697ee7ff6..7309e48d163d 100644 --- a/arch/mips/sgi-ip32/ip32-platform.c +++ b/arch/mips/sgi-ip32/ip32-platform.c | |||
| @@ -41,8 +41,8 @@ static struct platform_device uart8250_device = { | |||
| 41 | 41 | ||
| 42 | static int __init uart8250_init(void) | 42 | static int __init uart8250_init(void) |
| 43 | { | 43 | { |
| 44 | uart8250_data[0].iobase = (unsigned long) &mace->isa.serial1; | 44 | uart8250_data[0].membase = (void __iomem *) &mace->isa.serial1; |
| 45 | uart8250_data[1].iobase = (unsigned long) &mace->isa.serial1; | 45 | uart8250_data[1].membase = (void __iomem *) &mace->isa.serial1; |
| 46 | 46 | ||
| 47 | return platform_device_register(&uart8250_device); | 47 | return platform_device_register(&uart8250_device); |
| 48 | } | 48 | } |
diff --git a/drivers/char/drm/i915_drv.h b/drivers/char/drm/i915_drv.h index 737088bd0780..28b98733beb8 100644 --- a/drivers/char/drm/i915_drv.h +++ b/drivers/char/drm/i915_drv.h | |||
| @@ -210,6 +210,12 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); | |||
| 210 | #define I915REG_INT_MASK_R 0x020a8 | 210 | #define I915REG_INT_MASK_R 0x020a8 |
| 211 | #define I915REG_INT_ENABLE_R 0x020a0 | 211 | #define I915REG_INT_ENABLE_R 0x020a0 |
| 212 | 212 | ||
| 213 | #define I915REG_PIPEASTAT 0x70024 | ||
| 214 | #define I915REG_PIPEBSTAT 0x71024 | ||
| 215 | |||
| 216 | #define I915_VBLANK_INTERRUPT_ENABLE (1UL<<17) | ||
| 217 | #define I915_VBLANK_CLEAR (1UL<<1) | ||
| 218 | |||
| 213 | #define SRX_INDEX 0x3c4 | 219 | #define SRX_INDEX 0x3c4 |
| 214 | #define SRX_DATA 0x3c5 | 220 | #define SRX_DATA 0x3c5 |
| 215 | #define SR01 1 | 221 | #define SR01 1 |
diff --git a/drivers/char/drm/i915_irq.c b/drivers/char/drm/i915_irq.c index 4b4b2ce89863..bb8e9e9c8201 100644 --- a/drivers/char/drm/i915_irq.c +++ b/drivers/char/drm/i915_irq.c | |||
| @@ -214,6 +214,10 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS) | |||
| 214 | struct drm_device *dev = (struct drm_device *) arg; | 214 | struct drm_device *dev = (struct drm_device *) arg; |
| 215 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | 215 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
| 216 | u16 temp; | 216 | u16 temp; |
| 217 | u32 pipea_stats, pipeb_stats; | ||
| 218 | |||
| 219 | pipea_stats = I915_READ(I915REG_PIPEASTAT); | ||
| 220 | pipeb_stats = I915_READ(I915REG_PIPEBSTAT); | ||
| 217 | 221 | ||
| 218 | temp = I915_READ16(I915REG_INT_IDENTITY_R); | 222 | temp = I915_READ16(I915REG_INT_IDENTITY_R); |
| 219 | 223 | ||
| @@ -225,6 +229,8 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS) | |||
| 225 | return IRQ_NONE; | 229 | return IRQ_NONE; |
| 226 | 230 | ||
| 227 | I915_WRITE16(I915REG_INT_IDENTITY_R, temp); | 231 | I915_WRITE16(I915REG_INT_IDENTITY_R, temp); |
| 232 | (void) I915_READ16(I915REG_INT_IDENTITY_R); | ||
| 233 | DRM_READMEMORYBARRIER(); | ||
| 228 | 234 | ||
| 229 | dev_priv->sarea_priv->last_dispatch = READ_BREADCRUMB(dev_priv); | 235 | dev_priv->sarea_priv->last_dispatch = READ_BREADCRUMB(dev_priv); |
| 230 | 236 | ||
| @@ -252,6 +258,12 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS) | |||
| 252 | 258 | ||
| 253 | if (dev_priv->swaps_pending > 0) | 259 | if (dev_priv->swaps_pending > 0) |
| 254 | drm_locked_tasklet(dev, i915_vblank_tasklet); | 260 | drm_locked_tasklet(dev, i915_vblank_tasklet); |
| 261 | I915_WRITE(I915REG_PIPEASTAT, | ||
| 262 | pipea_stats|I915_VBLANK_INTERRUPT_ENABLE| | ||
| 263 | I915_VBLANK_CLEAR); | ||
| 264 | I915_WRITE(I915REG_PIPEBSTAT, | ||
| 265 | pipeb_stats|I915_VBLANK_INTERRUPT_ENABLE| | ||
| 266 | I915_VBLANK_CLEAR); | ||
| 255 | } | 267 | } |
| 256 | 268 | ||
| 257 | return IRQ_HANDLED; | 269 | return IRQ_HANDLED; |
diff --git a/include/asm-mips/page.h b/include/asm-mips/page.h index b92dd8c760da..e3301e54d559 100644 --- a/include/asm-mips/page.h +++ b/include/asm-mips/page.h | |||
| @@ -142,7 +142,7 @@ typedef struct { unsigned long pgprot; } pgprot_t; | |||
| 142 | /* | 142 | /* |
| 143 | * __pa()/__va() should be used only during mem init. | 143 | * __pa()/__va() should be used only during mem init. |
| 144 | */ | 144 | */ |
| 145 | #if defined(CONFIG_64BIT) && !defined(CONFIG_BUILD_ELF64) | 145 | #ifdef CONFIG_64BIT |
| 146 | #define __pa(x) \ | 146 | #define __pa(x) \ |
| 147 | ({ \ | 147 | ({ \ |
| 148 | unsigned long __x = (unsigned long)(x); \ | 148 | unsigned long __x = (unsigned long)(x); \ |
