Lines Matching refs:error

220  * reporting for one pipe may also disable all the other CPU error interruts for
263 * error interruts for the other transcoders, due to the fact that there's just
712 * ivybridge_parity_work - Workqueue called when a parity error interrupt
756 DRM_DEBUG("Parity error: Row = %d, Bank = %d, Sub bank = %d.\n",
792 DRM_ERROR("GT error interrupt 0x%08x\n", gt_iir);
909 DRM_ERROR("VEBOX CS error interrupt 0x%08x\n", pm_iir);
1036 DRM_DEBUG_DRIVER("PCH transcoder CRC error interrupt\n");
1356 * i915_error_work_func - do process context error handling work
1359 * Fire an error uevent so userspace can see that a hang or error
1364 struct i915_gpu_error *error = container_of(work, struct i915_gpu_error,
1366 drm_i915_private_t *dev_priv = container_of(error, drm_i915_private_t,
1378 DRM_DEBUG_DRIVER("generating error event\n");
1384 * error->reset_counter twice. We only need to take care of another
1391 if (i915_reset_in_progress(error) && !i915_terminally_wedged(error)) {
1415 atomic_set(&error->reset_counter, I915_WEDGED);
1487 * It's part of the error state, and this hopefully
1555 struct drm_i915_error_state *error = container_of(error_ref,
1556 typeof(*error), ref);
1559 for (i = 0; i < ARRAY_SIZE(error->ring); i++) {
1560 i915_error_object_free(error->ring[i].batchbuffer);
1561 i915_error_object_free(error->ring[i].ringbuffer);
1562 i915_error_object_free(error->ring[i].ctx);
1563 kfree(error->ring[i].requests);
1566 kfree(error->active_bo);
1567 kfree(error->overlay);
1568 kfree(error->display);
1569 kfree(error);
1628 struct drm_i915_error_state *error)
1638 error->fence[i] = I915_READ64(FENCE_REG_SANDYBRIDGE_0 + (i * 8));
1643 error->fence[i] = I915_READ64(FENCE_REG_965_0 + (i * 8));
1648 error->fence[i+8] = I915_READ(FENCE_REG_945_8 + (i * 4));
1651 error->fence[i] = I915_READ(FENCE_REG_830_0 + (i * 4));
1702 struct drm_i915_error_state *error,
1708 error->rc_psmi[ring->id] = I915_READ(ring->mmio_base + 0x50);
1709 error->fault_reg[ring->id] = I915_READ(RING_FAULT_REG(ring));
1710 error->semaphore_mboxes[ring->id][0]
1712 error->semaphore_mboxes[ring->id][1]
1714 error->semaphore_seqno[ring->id][0] = ring->sync_seqno[0];
1715 error->semaphore_seqno[ring->id][1] = ring->sync_seqno[1];
1719 error->faddr[ring->id] = I915_READ(RING_DMA_FADD(ring->mmio_base));
1720 error->ipeir[ring->id] = I915_READ(RING_IPEIR(ring->mmio_base));
1721 error->ipehr[ring->id] = I915_READ(RING_IPEHR(ring->mmio_base));
1722 error->instdone[ring->id] = I915_READ(RING_INSTDONE(ring->mmio_base));
1723 error->instps[ring->id] = I915_READ(RING_INSTPS(ring->mmio_base));
1725 error->bbaddr = I915_READ64(BB_ADDR);
1727 error->faddr[ring->id] = I915_READ(DMA_FADD_I8XX);
1728 error->ipeir[ring->id] = I915_READ(IPEIR);
1729 error->ipehr[ring->id] = I915_READ(IPEHR);
1730 error->instdone[ring->id] = I915_READ(INSTDONE);
1733 error->waiting[ring->id] = waitqueue_active(&ring->irq_queue);
1734 error->instpm[ring->id] = I915_READ(RING_INSTPM(ring->mmio_base));
1735 error->seqno[ring->id] = ring->get_seqno(ring, false);
1736 error->acthd[ring->id] = intel_ring_get_active_head(ring);
1737 error->head[ring->id] = I915_READ_HEAD(ring);
1738 error->tail[ring->id] = I915_READ_TAIL(ring);
1739 error->ctl[ring->id] = I915_READ_CTL(ring);
1741 error->cpu_ring_head[ring->id] = ring->head;
1742 error->cpu_ring_tail[ring->id] = ring->tail;
1747 struct drm_i915_error_state *error,
1754 if (ring->id != RCS || !error->ccid)
1758 if ((error->ccid & PAGE_MASK) == obj->gtt_offset) {
1766 struct drm_i915_error_state *error)
1774 i915_record_ring_state(dev, error, ring);
1776 error->ring[i].batchbuffer =
1779 error->ring[i].ringbuffer =
1783 i915_gem_record_active_context(ring, error, &error->ring[i]);
1789 error->ring[i].num_requests = count;
1790 error->ring[i].requests =
1793 if (error->ring[i].requests == NULL) {
1794 error->ring[i].num_requests = 0;
1802 erq = &error->ring[i].requests[count++];
1811 * i915_capture_error_state - capture an error record for later analysis
1814 * Should be called when an error is detected (either a hang or an error
1815 * interrupt) to capture error state from the time of the error. Fills
1823 struct drm_i915_error_state *error;
1828 error = dev_priv->gpu_error.first_error;
1830 if (error)
1834 error = kzalloc(sizeof(*error), GFP_ATOMIC);
1835 if (!error) {
1836 DRM_DEBUG_DRIVER("out of memory, not capturing error state\n");
1840 DRM_INFO("capturing error event; look for more information in "
1844 kref_init(&error->ref);
1845 error->eir = I915_READ(EIR);
1846 error->pgtbl_er = I915_READ(PGTBL_ER);
1848 error->ccid = I915_READ(CCID);
1851 error->ier = I915_READ(DEIER) | I915_READ(GTIER);
1853 error->ier = I915_READ(GTIER) | I915_READ(VLV_IER);
1855 error->ier = I915_READ16(IER);
1857 error->ier = I915_READ(IER);
1860 error->derrmr = I915_READ(DERRMR);
1863 error->forcewake = I915_READ(FORCEWAKE_VLV);
1865 error->forcewake = I915_READ(FORCEWAKE_MT);
1867 error->forcewake = I915_READ(FORCEWAKE);
1871 error->pipestat[pipe] = I915_READ(PIPESTAT(pipe));
1874 error->error = I915_READ(ERROR_GEN6);
1875 error->done_reg = I915_READ(DONE_REG);
1879 error->err_int = I915_READ(GEN7_ERR_INT);
1881 i915_get_extra_instdone(dev, error->extra_instdone);
1883 i915_gem_record_fences(dev, error);
1884 i915_gem_record_rings(dev, error);
1887 error->active_bo = NULL;
1888 error->pinned_bo = NULL;
1893 error->active_bo_count = i;
1897 error->pinned_bo_count = i - error->active_bo_count;
1899 error->active_bo = NULL;
1900 error->pinned_bo = NULL;
1902 error->active_bo = kmalloc(sizeof(*error->active_bo)*i,
1904 if (error->active_bo)
1905 error->pinned_bo =
1906 error->active_bo + error->active_bo_count;
1909 if (error->active_bo)
1910 error->active_bo_count =
1911 capture_active_bo(error->active_bo,
1912 error->active_bo_count,
1915 if (error->pinned_bo)
1916 error->pinned_bo_count =
1917 capture_pinned_bo(error->pinned_bo,
1918 error->pinned_bo_count,
1921 do_gettimeofday(&error->time);
1923 error->overlay = intel_overlay_capture_error_state(dev);
1924 error->display = intel_display_capture_error_state(dev);
1928 dev_priv->gpu_error.first_error = error;
1929 error = NULL;
1933 if (error)
1934 i915_error_state_free(&error->ref);
1940 struct drm_i915_error_state *error;
1944 error = dev_priv->gpu_error.first_error;
1948 if (error)
1949 kref_put(&error->ref, i915_error_state_free);
1965 DRM_ERROR("render error detected, EIR: 0x%08x\n", eir);
1990 DRM_DEBUG("page table error\n");
2001 DRM_DEBUG("page table error\n");
2010 DRM_DEBUG("memory refresh error:\n");
2017 DRM_DEBUG("instruction error\n");
2068 * i915_handle_error - handle an error interrupt
2071 * Do some basic checking of regsiter state at error interrupt time and
2840 /* ack & enable invalid PTE error interrupts */
3324 * Enable some error detection, note the instruction error mask