I'm sponsoring this case for Miao Chen. This case is to add more exported interfaces to PSARC 2004/801 for the i915 driver. The requested release binding is patch/micro.
I have marked it as "closed approved automatic" since the change is straightforward and the interface is clear. If there is request, I'd be happy to upgrade it to a fast track and set the timer. -Frank 1. Introduction 1.1. Project/Component Working Name: Additional ioctls for GEM support in i915 driver. 1.2. Name of Document Author/Supplier: Author: Miao Chen 1.3 Date of This Document: 7 August, 2009 4. Technical Description 4.1 Summary This project is to add more DRM IOCTLs in the i915 driver and the drm misc module for upgrading i915 driver to support GEM. 4.2 Description The drm (direct rendering management) misc module and i915 driver were introduced to Solaris in PSARC 2004/801. Xorg needs them to work on those Intel integrated graphical devices such as G33, G45, GM45 etc. GEM (graphics execution manager) is a new memory management framework in drm misc module and i915 driver. It provides much better performance than old framework which works in user level but not in kernel. To upgrade the drm misc module and i915 driver to support GEM, more DRM IOCTLs should be added. 4.3 Interface Table ------------------------------------------------------------------------------------------------------------------------------ | Interface exported | Classifications | Comments | ------------------------------------------------------------------------------------------------------------------------------ | DRM_IOCTL_MODESET_CTL | External | Handle vblank event counter across mode switch | | DRM_IOCTL_GEM_OPEN | External | Open an object using the global name, returning a handle and the size. | | DRM_IOCTL_GEM_FLINK | External | Create a global name for an object, returning the name. | | DRM_IOCTL_GEM_CLOSE | External | Releases the handle to an object. | | DRM_I915_GEM_INIT | External | Initialize GEM for i915 device specific feature. | | DRM_I915_GEM_EXECBUFFER | External | Execute the batch buffer. | | DRM_I915_GEM_PIN | External | Bind an object to hardware GTT. | | DRM_I915_GEM_UNPIN | External | Unbind an object to hardware GTT. | | DRM_I915_GEM_BUSY | External | Check if the specific object is busy. | | DRM_I915_GEM_THROTTLE | External | Throttle rendering by waiting until the ring has completed the requests. | | DRM_I915_GEM_ENTERVT | External | Setup kernel resources during entering vt. | | DRM_I915_GEM_LEAVEVT | External | Releases kernel resources during leaving vt. | | DRM_I915_GEM_CREATE | External | Create a new mm object and returns a handle to it. | | DRM_I915_GEM_PREAD | External | Read data from the object referenced by handle. | | DRM_I915_GEM_PWRITE | External | Write data to the object referenced by handle. | | DRM_I915_GEM_MMAP | External | Map the contents of an object, returning the address it is mapped into. | | DRM_I915_GEM_SET_DOMAIN | External | Called when user space prepares to use an object with the CPU. | | DRM_I915_GEM_SW_FINISH | External | Called when user space has done writes to this buffer. | | DRM_I915_GEM_SET_TILING | External | Set the tiling mode of an object. | | DRM_I915_GEM_GET_TILING | External | Returns the current tiling mode and required bit 6 swizzling for the object. | | DRM_I915_GEM_GET_APERTURE | External | Returns the total aperture size and current available aperture size. | ------------------------------------------------------------------------------------------------------------------------------ 4.4 References: [1] PSARC/2004/801 DRI porting http://sac.sfbay.sun.com/Archives/CaseLog/arc/PSARC/2004/801/ 4.5 Documentation Change There is no need to change any documentation about i915 driver. 6. Resources and Schedule 6.4. Steering Committee requested information 6.4.1. Consolidation C-team Name: ON 6.5. ARC review type: self-review 6.6. ARC Exposure: open