1. 09 9月, 2010 2 次提交
  2. 08 9月, 2010 10 次提交
  3. 07 9月, 2010 3 次提交
  4. 17 8月, 2010 1 次提交
    • D
      drm: block userspace under allocating buffer and having drivers overwrite it (v2) · 1b2f1489
      Dave Airlie 提交于
      With the current screwed but its ABI, ioctls for the drm, Linus pointed out that we could allow userspace to specify the allocation size, but we pass it to the driver which then uses it blindly to store a struct. Now if userspace specifies the allocation size as smaller than the driver needs, the driver can possibly overwrite memory.
      
      This patch restructures the driver ioctls so we store the structure size we are expecting, and make sure we allocate at least that size. The copy from/to userspace are still restricted to the size the user specifies, this allows ioctl structs to grow on both sides of the equation.
      
      Up until now we didn't really use the DRM_IOCTL defines in the kernel, so this cleans them up and adds them for nouveau.
      
      v2:
      fix nouveau pushbuf arg (thanks to Ben for pointing it out)
      Reported-by: NLinus Torvalds <torvalds@linuxfoundation.org>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      1b2f1489
  5. 10 8月, 2010 1 次提交
  6. 02 8月, 2010 2 次提交
  7. 27 7月, 2010 1 次提交
  8. 02 7月, 2010 2 次提交
  9. 19 6月, 2010 1 次提交
  10. 08 6月, 2010 1 次提交
  11. 02 6月, 2010 1 次提交
  12. 01 6月, 2010 3 次提交
  13. 27 5月, 2010 9 次提交
    • E
      drm/i915: Clean up leftover bits from hws move to ring structure. · e20f9c64
      Eric Anholt 提交于
      Fixes /debug/dri/0/i915_gem_interrupt output for status page.
      Signed-off-by: NEric Anholt <eric@anholt.net>
      e20f9c64
    • L
      drm/i915: Add CxSR support on Pineview DDR3 · 95534263
      Li Peng 提交于
      Pineview with DDR3 memory has different latencies to enable CxSR.
      This patch updates CxSR latency table to add Pineview DDR3 latency
      configuration. It also adds one flag "is_ddr3" for checking DDR3
      setting in MCHBAR.
      
      Cc: Shaohua Li <shaohua.li@intel.com>
      Cc: Zhao Yakui <yakui.zhao@intel.com>
      Signed-off-by: NLi Peng <peng.li@intel.com>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      95534263
    • J
      drm/i915: add power monitoring support · 7648fa99
      Jesse Barnes 提交于
      Add power monitoring support to the i915 driver for use by the IPS
      driver.  Export the available power info to the IPS driver through a few
      new inter-driver hooks.  When used together, the IPS driver and this
      patch can significantly increase graphics performance on Ironlake class
      chips.
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      [anholt: Fixed 32-bit compile.  stupid obfuscating div_u64()]
      Signed-off-by: NEric Anholt <eric@anholt.net>
      7648fa99
    • Z
      drm/i915: implement BSD ring buffer V2 · d1b851fc
      Zou Nan hai 提交于
      The BSD (bit stream decoder) ring is used for accessing the BSD engine
      which decodes video bitstream for H.264 and VC1 on G45+.  It is
      asynchronous with the render ring and has access to separate parts of
      the GPU from it, though the render cache is coherent between the two.
      Signed-off-by: NZou Nan hai <nanhai.zou@intel.com>
      Signed-off-by: NXiang Hai hao <haihao.xiang@intel.com>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      d1b851fc
    • Z
      drm/i915: convert some gem structures to per-ring V2 · 852835f3
      Zou Nan hai 提交于
      The active list and request list move into the ringbuffer structure,
      so each can track its active objects in the order they are in that
      ring.  The flushing list does not, as it doesn't matter which ring
      caused data to end up in the render cache.  Objects gain a pointer to
      the ring they are active on (if any).
      Signed-off-by: NZou Nan hai <nanhai.zou@intel.com>
      Signed-off-by: NXiang Hai hao <haihao.xiang@intel.com>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      852835f3
    • Z
      drm/i915: introduce intel_ring_buffer structure (V2) · 8187a2b7
      Zou Nan hai 提交于
      Introduces a more complete intel_ring_buffer structure with callbacks
      for setup and management of a particular ringbuffer, and converts the
      render ring buffer consumers to use it.
      Signed-off-by: NZou Nan hai <nanhai.zou@intel.com>
      Signed-off-by: NXiang Hai hao <haihao.xiang@intel.com>
      [anholt: Fixed up whitespace fail and rebased against prep patches]
      Signed-off-by: NEric Anholt <eric@anholt.net>
      8187a2b7
    • E
      drm/i915: Rename dev_priv->ring to dev_priv->render_ring. · d3301d86
      Eric Anholt 提交于
      With the advent of the BSD ring, be clear about which ring this is.
      The docs are pretty consistent with calling this the Render engine at
      this point.
      d3301d86
    • E
      drm/i915: Move ringbuffer-related code to intel_ringbuffer.c. · 62fdfeaf
      Eric Anholt 提交于
      This is preparation for supporting multiple ringbuffers on Ironlake.
      The non-copy-and-paste changes are:
      - de-staticing functions
      - I915_GEM_GPU_DOMAINS moving to i915_drv.h to be used by both files.
      - i915_gem_add_request had only half its implementation
        copy-and-pasted out of the middle of it.
      62fdfeaf
    • C
      drm/i915: Fail to load driver if KMS request without GEM · 79a78dd6
      Chris Wilson 提交于
      The i915's implementation of KMS requires GEM in order to manage the
      memory and execution domains of the framebuffer and associated
      resources. By the point at which we detect broken a BIOS and need to
      disable GEM, we have already registered ourselves as a KMS driver with
      several subsystems. Rather than introducing a fragile unwind and attempt
      to continue with UMS, spit out an error and unload the driver.
      
      References:
      
        [Bug 15754] IP: [<ffffffffa0207589>] drm_mm_search_free+0x49/0x90 [drm]
                    BUG: unable to handle kernel NULL pointer dereference at (null)
        https://bugzilla.kernel.org/show_bug.cgi?id=15754
      
      [drm:i915_driver_load] *ERROR* Detected broken video BIOS with
      262140/262144kB of video memory stolen.
      [drm:i915_driver_load] *ERROR* Disabling GEM. (try reducing stolen
      memory or updating the BIOS to fix).
      i915 0000:00:02.0: irq 30 for MSI/MSI-X
      [drm] set up 255M of stolen space
      BUG: unable to handle kernel NULL pointer dereference at (null)
      IP: [<ffffffffa0207589>] drm_mm_search_free+0x49/0x90 [drm]
      PGD 69719067 PUD 69dda067 PMD 0
      Oops: 0000 [#1] PREEMPT SMP
      last sysfs file: /sys/module/snd_seq_oss/initstate
      CPU 1
      Pid: 867, comm: modprobe Not tainted 2.6.33-ARCH #1 G43Twins-FullHD/To
      Be Filled By O.E.M.
      RIP: 0010:[<ffffffffa0207589>]  [<ffffffffa0207589>] drm_mm_search_free+0x49/0x90 [drm]
      RSP: 0018:ffff8800699f3af8  EFLAGS: 00010246
      RAX: 0000000000000000 RBX: ffffffffffffffff RCX: 0000000000000000
      RDX: 0000000000001000 RSI: 0000000000001000 RDI: ffff8800693d0f78
      RBP: ffff8800699f3b18 R08: 0000000000001000 R09: 0000000000000000
      R10: 2222222222222222 R11: 0000000000000000 R12: ffff880068de70c0
      R13: 0000000000001000 R14: 0000000000000000 R15: ffff8800689cb000
      FS:  00007fa93f4e5700(0000) GS:ffff880001880000(0000)
      knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 0000000000000000 CR3: 00000000695a0000 CR4: 00000000000406e0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      Process modprobe (pid: 867, threadinfo ffff8800699f2000, task ffff8800694f4740)
      Stack:
       ffff880068de73c0 ffff880068de70c0 ffff8800689cb000 0000000000001000
      <0> ffff8800699f3b68 ffffffffa0299f63 ffff8800693d0f78 0000120068de70c0
      <0> ffff8800689cb000 ffff880068de73c0 ffff880068de70c0 ffff8800689cb000
      Call Trace:
       [<ffffffffa0299f63>] i915_gem_object_bind_to_gtt+0x83/0x360 [i915]
       [<ffffffffa029a2e5>] i915_gem_object_pin+0xa5/0xb0 [i915]
       [<ffffffffa029a3c5>] i915_gem_init_ringbuffer+0xd5/0x510 [i915]
       [<ffffffffa028dbee>] i915_driver_load+0x4ce/0xd00 [i915]
       [<ffffffffa0205d37>] ? drm_sysfs_device_add+0x87/0xb0 [drm]
       [<ffffffffa0203363>] ? drm_get_minor+0x1d3/0x330 [drm]
       [<ffffffffa02037e6>] drm_get_dev+0x326/0x580 [drm]
       [<ffffffffa02bc0a5>] i915_pci_probe+0x10/0xd0 [i915]
       [<ffffffff811e98a2>] local_pci_probe+0x12/0x20
       [<ffffffff811ea8e0>] pci_device_probe+0x80/0xb0
       [<ffffffff8127b12a>] ? driver_sysfs_add+0x5a/0x90
       [<ffffffff8127b273>] driver_probe_device+0x93/0x1a0
       [<ffffffff8127b413>] __driver_attach+0x93/0xa0
       [<ffffffff8127b380>] ? __driver_attach+0x0/0xa0
       [<ffffffff8127a8f8>] bus_for_each_dev+0x68/0x90
       [<ffffffff8127b0c9>] driver_attach+0x19/0x20
       [<ffffffff8127a0ad>] bus_add_driver+0xcd/0x2d0
       [<ffffffff8127b718>] driver_register+0x78/0x140
       [<ffffffff811eab91>] __pci_register_driver+0x51/0xd0
       [<ffffffffa02d6000>] ? i915_init+0x0/0x52 [i915]
       [<ffffffffa01fdc31>] drm_init+0x111/0x120 [drm]
       [<ffffffff810eb0cd>] ? register_shrinker+0x4d/0x60
       [<ffffffffa02d6000>] ? i915_init+0x0/0x52 [i915]
       [<ffffffffa02d6050>] i915_init+0x50/0x52 [i915]
       [<ffffffff81002047>] do_one_initcall+0x37/0x1a0
       [<ffffffff8108ed17>] sys_init_module+0xd7/0x250
       [<ffffffff81009fc2>] system_call_fastpath+0x16/0x1b
      Code: eb 29 49 8b 41 28 31 d2 49 f7 f5 85 d2 74 39 44 89 c0 29 d0 48 89 c2 48 01 f2 49 39 d2 73 29 0f 1f 00 49 89 da 4c 89 d3 4d 89 d9 <4d> 8b 19 49 39 f9 41 0f 18 0b 74 2b 4d 8b 51 30 4d 89 cc 49 39
      RIP  [<ffffffffa0207589>] drm_mm_search_free+0x49/0x90 [drm]
       RSP <ffff8800699f3af8>
      CR2: 0000000000000000
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NEric Anholt <eric@anholt.net>
      79a78dd6
  14. 18 5月, 2010 1 次提交
    • D
      drm/fbdev: rework output polling to be back in the core. (v4) · eb1f8e4f
      Dave Airlie 提交于
      After thinking it over a lot it made more sense for the core to deal with
      the output polling especially so it can notify X.
      
      v2: drop plans for fake connector - per Michel's comments - fix X patch sent to xorg-devel, add intel polled/hpd setting, add initial nouveau polled/hpd settings.
      
      v3: add config lock take inside polling, add intel/nouveau poll init/fini calls
      
      v4: config lock was a bit agressive, only needed around connector list reading.
      otherwise it could re-enter.
      
      glisse: discard drm_helper_hpd_irq_event
      
      v3: Reviewed-by: Michel Dänzer <michel@daenzer.net>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      eb1f8e4f
  15. 08 5月, 2010 2 次提交