Rev 3037 | Rev 3243 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3037 | Rev 3120 | ||
---|---|---|---|
Line 638... | Line 638... | ||
638 | __i915_read(64, q) |
638 | __i915_read(64, q) |
639 | #undef __i915_read |
639 | #undef __i915_read |
Line 640... | Line 640... | ||
640 | 640 | ||
641 | #define __i915_write(x, y) \ |
641 | #define __i915_write(x, y) \ |
- | 642 | void i915_write##x(struct drm_i915_private *dev_priv, u32 reg, u##x val) { \ |
|
- | 643 | u32 __fifo_ret = 0; \ |
|
642 | void i915_write##x(struct drm_i915_private *dev_priv, u32 reg, u##x val) { \ |
644 | trace_i915_reg_rw(true, reg, val, sizeof(val)); \ |
643 | if (NEEDS_FORCE_WAKE((dev_priv), (reg))) { \ |
645 | if (NEEDS_FORCE_WAKE((dev_priv), (reg))) { \ |
644 | __gen6_gt_wait_for_fifo(dev_priv); \ |
646 | __fifo_ret = __gen6_gt_wait_for_fifo(dev_priv); \ |
- | 647 | } \ |
|
- | 648 | if (IS_VALLEYVIEW(dev_priv->dev) && IS_DISPLAYREG(reg)) { \ |
|
- | 649 | write##y(val, dev_priv->regs + reg + 0x180000); \ |
|
645 | } \ |
650 | } else { \ |
- | 651 | write##y(val, dev_priv->regs + reg); \ |
|
- | 652 | } \ |
|
- | 653 | if (unlikely(__fifo_ret)) { \ |
|
- | 654 | gen6_gt_check_fifodbg(dev_priv); \ |
|
- | 655 | } \ |
|
- | 656 | if (IS_HASWELL(dev_priv->dev) && (I915_READ_NOTRACE(GEN7_ERR_INT) & ERR_INT_MMIO_UNCLAIMED)) { \ |
|
- | 657 | DRM_ERROR("Unclaimed write to %x\n", reg); \ |
|
- | 658 | writel(ERR_INT_MMIO_UNCLAIMED, dev_priv->regs + GEN7_ERR_INT); \ |
|
646 | write##y(val, dev_priv->regs + reg); \ |
659 | } \ |
647 | } |
660 | } |
648 | __i915_write(8, b) |
661 | __i915_write(8, b) |
649 | __i915_write(16, w) |
662 | __i915_write(16, w) |
650 | __i915_write(32, l) |
663 | __i915_write(32, l) |