)]}'
{
  "log": [
    {
      "commit": "8bb0daffb0b8e45188066255b4203446eae181f1",
      "tree": "c1a324b863df57becdfab54c9325231bbb853b56",
      "parents": [
        "a4462f246c8821f625f45bce52c7ca7e0207dffe"
      ],
      "author": {
        "name": "Rob Clark",
        "email": "robdclark@gmail.com",
        "time": "Mon Feb 11 12:43:09 2013 -0500"
      },
      "committer": {
        "name": "Rob Clark",
        "email": "robdclark@gmail.com",
        "time": "Sat Feb 16 17:38:06 2013 -0500"
      },
      "message": "drm/omap: move out of staging\n\nNow that the omapdss interface has been reworked so that omapdrm can use\ndispc directly, we have been able to fix the remaining functional kms\nissues with omapdrm.  And in the mean time the PM sequencing and many\nother of that open issues have been solved.  So I think it makes sense\nto finally move omapdrm out of staging.\n\nSigned-off-by: Rob Clark \u003crobdclark@gmail.com\u003e\n"
    },
    {
      "commit": "eef90ccb8a4d50b219a95cc53878ebb007315b32",
      "tree": "e10ef8121e9b6f0c061df75967c7af77a942feb3",
      "parents": [
        "ed5982e6ce5f106abcbf071f80730db344a6da42"
      ],
      "author": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Tue Jan 08 10:53:17 2013 +0000"
      },
      "committer": {
        "name": "Daniel Vetter",
        "email": "daniel.vetter@ffwll.ch",
        "time": "Thu Jan 17 22:23:47 2013 +0100"
      },
      "message": "drm/i915: Use the reloc.handle as an index into the execbuffer array\n\nUsing copywinwin10 as an example that is dependent upon emitting a lot\nof relocations (2 per operation), we see improvements of:\n\nc2d/gm45: 618000.0/sec to 623000.0/sec.\ni3-330m: 748000.0/sec to 789000.0/sec.\n\n(measured relative to a baseline with neither optimisations applied).\n\nSigned-off-by: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\nReviewed-by: Imre Deak \u003cimre.deak@intel.com\u003e\nSigned-off-by: Daniel Vetter \u003cdaniel.vetter@ffwll.ch\u003e\n"
    },
    {
      "commit": "ed5982e6ce5f106abcbf071f80730db344a6da42",
      "tree": "3669b5e3640209cdf6ebfb3200dfd4947777dff3",
      "parents": [
        "bcffc3faa692d6b2ef734e4f0c8f097175284db6"
      ],
      "author": {
        "name": "Daniel Vetter",
        "email": "daniel.vetter@ffwll.ch",
        "time": "Thu Jan 17 22:23:36 2013 +0100"
      },
      "committer": {
        "name": "Daniel Vetter",
        "email": "daniel.vetter@ffwll.ch",
        "time": "Thu Jan 17 22:23:36 2013 +0100"
      },
      "message": "drm/i915: Allow userspace to hint that the relocations were known\n\nUserspace is able to hint to the kernel that its command stream and\nauxiliary state buffers already hold the correct presumed addresses and\nso the relocation process may be skipped if the kernel does not need to\nmove any buffers in preparation for the execbuffer. Thus for the common\ncase where the allotment of buffers is static between batches, we can\navoid the overhead of individually checking the relocation entries.\n\nNote that this requires userspace to supply the domain tracking and\nrequests for workarounds itself that would otherwise be computed based\nupon the relocation entries.\n\nUsing copywinwin10 as an example that is dependent upon emitting a lot\nof relocations (2 per operation), we see improvements of:\n\nc2d/gm45: 618000.0/sec to 632000.0/sec.\ni3-330m: 748000.0/sec to 830000.0/sec.\n\n(measured relative to a baseline with neither optimisations applied).\n\nSigned-off-by: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\nReviewed-by: Imre Deak \u003cimre.deak@intel.com\u003e\n[danvet: Fixup merge conflict in userspace header due to different\nbaseline trees.]\nSigned-off-by: Daniel Vetter \u003cdaniel.vetter@ffwll.ch\u003e\n"
    },
    {
      "commit": "4f21877cb8b9e9f85a541af43b9ee66d9006bb69",
      "tree": "f7c47d383b124474fbf97861f4c778546faff513",
      "parents": [
        "0ca824c7df2f2d79933ea66adb2b3dfabb85f283"
      ],
      "author": {
        "name": "Eunchul Kim",
        "email": "chulspro.kim@samsung.com",
        "time": "Sat Dec 22 17:49:24 2012 +0900"
      },
      "committer": {
        "name": "Inki Dae",
        "email": "inki.dae@samsung.com",
        "time": "Fri Jan 04 15:54:33 2013 +0900"
      },
      "message": "drm/exynos: consider both case of vflip and hflip.\n\nThis patch considers both case of vflip and hflip.\nIf we want that the contents in buffer to be rotated to 180 degree,\nthen we can use h,vflip or 180 degree.\n\nChangelog v2:\n- added EXYNOS_DRM_FLIP_BOTH enum value to avoid build warnning.\n\nSigned-off-by: Eunchul Kim \u003cchulspro.kim@samsung.com\u003e\nSigned-off-by: Inki Dae \u003cinki.dae@samsung.com\u003e\n"
    },
    {
      "commit": "d81aecb5e680311e1f3fd71e49e6a4072d2374d2",
      "tree": "06e5e0ce2d531d775695aac739bc5a29475cf188",
      "parents": [
        "c704f1b47d6cb4b61b2e120030088c2a7cefcc13"
      ],
      "author": {
        "name": "Inki Dae",
        "email": "daeinki@gmail.com",
        "time": "Tue Dec 18 02:30:17 2012 +0900"
      },
      "committer": {
        "name": "Inki Dae",
        "email": "inki.dae@samsung.com",
        "time": "Fri Jan 04 15:54:32 2013 +0900"
      },
      "message": "drm/exynos: change file license to GPL\n\nThis patch changes file license to GPL\n\nMost of exynos files had been copied from some random\nfile and not updated correctly. So this patch corrects\nthe file license.\n\nSigned-off-by: Inki Dae \u003cinki.dae@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\n"
    },
    {
      "commit": "8be0e5c427c18a59ce261c496ae2193cbcbafffd",
      "tree": "26dac80685ba46246642b901460a5042ac4e187c",
      "parents": [
        "b1d778b970ce52e02ca6a7f34ba167fe95bc1cc4",
        "da494d7ca5e0a1afca3480826b5060e15c951e80"
      ],
      "author": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Sun Dec 30 13:54:12 2012 +1000"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Sun Dec 30 13:54:12 2012 +1000"
      },
      "message": "Merge branch \u0027drm-intel-fixes\u0027 of git://people.freedesktop.org/~danvet/drm-intel into drm-next\n\nSome fixes for 3.8:\n- Watermark fixups from Chris Wilson (4 pieces).\n- 2 snb workarounds, seem to be recently added to our internal DB.\n- workaround for the infamous i830/i845 hang, seems now finally solid!\n  Based on Chris\u0027 fix for SNA, now also for UXA/mesa\u0026old SNA.\n- Some more fixlets for shrinker-pulls-the-rug issues (Chris\u0026me).\n- Fix dma-buf flags when exporting (you).\n- Disable the VGA plane if it\u0027s enabled on lid open - similar fix in\n  spirit to the one I\u0027ve sent you last weeek, BIOS\u0027 really like to mess\n  with the display when closing the lid (awesome debug work from Krzysztof\n  Mazur).\n\n* \u0027drm-intel-fixes\u0027 of git://people.freedesktop.org/~danvet/drm-intel:\n  drm/i915: disable shrinker lock stealing for create_mmap_offset\n  drm/i915: optionally disable shrinker lock stealing\n  drm/i915: fix flags in dma buf exporting\n  i915: ensure that VGA plane is disabled\n  drm/i915: Preallocate the drm_mm_node prior to manipulating the GTT drm_mm manager\n  drm: Export routines for inserting preallocated nodes into the mm manager\n  drm/i915: don\u0027t disable disconnected outputs\n  drm/i915: Implement workaround for broken CS tlb on i830/845\n  drm/i915: Implement WaSetupGtModeTdRowDispatch\n  drm/i915: Implement WaDisableHiZPlanesWhenMSAAEnabled\n  drm/i915: Prefer CRTC \u0027active\u0027 rather than \u0027enabled\u0027 during WM computations\n  drm/i915: Clear self-refresh watermarks when disabled\n  drm/i915: Double the cursor self-refresh latency on Valleyview\n  drm/i915: Fixup cursor latency used for IVB lp3 watermarks\n"
    },
    {
      "commit": "b45305fce5bb1abec263fcff9d81ebecd6306ede",
      "tree": "5f8c074f2ceeb153bed7a0f28d631aec31b5eefc",
      "parents": [
        "6547fbdbfff62c99e4f7b4f985ff8b3454f33b0f"
      ],
      "author": {
        "name": "Daniel Vetter",
        "email": "daniel.vetter@ffwll.ch",
        "time": "Mon Dec 17 16:21:27 2012 +0100"
      },
      "committer": {
        "name": "Daniel Vetter",
        "email": "daniel.vetter@ffwll.ch",
        "time": "Mon Dec 17 17:27:02 2012 +0100"
      },
      "message": "drm/i915: Implement workaround for broken CS tlb on i830/845\n\nNow that Chris Wilson demonstrated that the key for stability on early\ngen 2 is to simple _never_ exchange the physical backing storage of\nbatch buffers I\u0027ve tried a stab at a kernel solution. Doesn\u0027t look too\nnefarious imho, now that I don\u0027t try to be too clever for my own good\nany more.\n\nv2: After discussing the various techniques, we\u0027ve decided to always blit\nbatches on the suspect devices, but allow userspace to opt out of the\nkernel workaround assume full responsibility for providing coherent\nbatches. The principal reason is that avoiding the blit does improve\nperformance in a few key microbenchmarks and also in cairo-trace\nreplays.\n\nSigned-Off-by: Daniel Vetter \u003cdaniel.vetter@ffwll.ch\u003e\nSigned-off-by: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\n[danvet:\n- Drop the hunk which uses HAS_BROKEN_CS_TLB to implement the ring\n  wrap w/a. Suggested by Chris Wilson.\n- Also add the ACTHD check from Chris Wilson for the error state\n  dumping, so that we still catch batches when userspace opts out of\n  the w/a.]\nSigned-off-by: Daniel Vetter \u003cdaniel.vetter@ffwll.ch\u003e\n"
    },
    {
      "commit": "2f3f24061c5c489074ad492bf694a5a76ebd8fc5",
      "tree": "a02e00a7e98a4fa543b1e7fc4eda2fbd62d16b6d",
      "parents": [
        "652a187664902399d34f5b3a084fdbb51b2ca12f",
        "f2646380655b32481b5e76c666e1793dfef184bd"
      ],
      "author": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Sun Dec 16 05:49:46 2012 +0000"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Sun Dec 16 05:49:46 2012 +0000"
      },
      "message": "Merge branch \u0027exynos-drm-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next\n\nInki writes:\n\"- add dmabuf attach/detach feature\n  . This patch would resolve performance deterioration issue\n    when v4l2-based driver is using the buffer imported from gem.\n- drm/exynos: use DMA_ATTR_NO_KERNEL_MAPPING attribute\n  . With gem allocation, kernel space mapping isn\u0027t allocated and\n    also physical pages aren\u0027t mapped with the kernel space.\n    The physical pages are mapped with kernel space though vmap\n    function only for console framebuffer.\n- add the below two patches I missed.\n  drm: exynos: moved exynos drm device registration to drm driver\n  drm: exynos: moved exynos drm hdmi device registration to drm driver\n- add IPP subsystem framework and its-based device drivers.\n  . This patch set includes fimc, rotator and gsc drivers to perform\n    image scaling, rotation and color space conversion.\n- add runtime pm support to hdmi driver.\n- And fixups and cleanups.\"\n\n* \u0027exynos-drm-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos: (30 commits)\n  drm/exynos: add gsc ipp driver\n  drm/exynos: add rotator ipp driver\n  drm/exynos: add fimc ipp driver\n  drm/exynos: add iommu support for ipp\n  drm/exynos: add ipp subsystem\n  drm/exynos: support device tree for fimd\n  drm/exynos: support extended screen coordinate of fimd\n  drm/exynos: fix x, y coordinates for right bottom pixel\n  drm/exynos: fix fb offset calculation for plane\n  drm/exynos: hdmi: Fix potential NULL pointer dereference error\n  drm/exynos: hdmi: Add CONFIG_OF and use of_match_ptr() macro\n  drm/exynos: add support for hdmiphy power control for exynos5\n  drm/exynos: add runtime pm support for mixer\n  drm/exynos: added runtime pm support for hdmi\n  drm/exynos: fix allocation and cache mapping type\n  drm/exynos: reorder framebuffer init sequence\n  drm/exynos/iommu: fix return value check in drm_create_iommu_mapping()\n  drm/exynos: remove unused vaddr member\n  drm/exynos: use DMA_ATTR_NO_KERNEL_MAPPING attribute\n  drm/exynos: add exception codes to exynos_drm_fbdev_create()\n  ...\n"
    },
    {
      "commit": "cb471f14b5eebfed22bb9f2d0f06601f171c574a",
      "tree": "955334335ef7d041553dc6d6b1351b9a8f3fa593",
      "parents": [
        "d636ead86fb806085de4ce98693e8d91c419d8f3"
      ],
      "author": {
        "name": "Eunchul Kim",
        "email": "chulspro.kim@samsung.com",
        "time": "Fri Dec 14 18:10:31 2012 +0900"
      },
      "committer": {
        "name": "Inki Dae",
        "email": "daeinki@gmail.com",
        "time": "Sat Dec 15 02:29:08 2012 +0900"
      },
      "message": "drm/exynos: add ipp subsystem\n\nThis patch adds Image Post Processing(IPP) support for exynos drm driver.\n\nIPP supports image scaler/rotator and input/output DMA operations\nusing IPP subsystem framework to control FIMC, Rotator and GSC hardware\nand supports some user interfaces for user side.\n\nAnd each IPP-based drivers support Memory to Memory operations\nwith various converting. And in case of FIMC hardware, it also supports\nWriteback and Display output operations through local path.\n\nFeatures:\n- Memory to Memory operation support.\n- Various pixel formats support.\n- Image scaling support.\n- Color Space Conversion support.\n- Image crop operation support.\n- Rotate operation support to 90, 180 or 270 degree.\n- Flip operation support to vertical, horizontal or both.\n- Writeback operation support to display blended image of FIMD fifo on screen\n\nA summary to IPP Subsystem operations:\nFirst of all, user should get property capabilities from IPP subsystem\nand set these properties to hardware registers for desired operations.\nThe properties could be pixel format, position, rotation degree and\nflip operation.\n\nAnd next, user should set source and destination buffer data using\nDRM_EXYNOS_IPP_QUEUE_BUF ioctl command with gem handles to source and\ndestinition buffers.\n\nAnd next, user can control user-desired hardware with desired operations\nsuch as play, stop, pause and resume controls.\n\nAnd finally, user can aware of dma operation completion and also get\ndestination buffer that it contains user-desried result through dequeue\ncommand.\n\nIOCTL commands:\n- DRM_EXYNOS_IPP_GET_PROPERTY\n  . get ipp driver capabilitis and id.\n- DRM_EXYNOS_IPP_SET_PROPERTY\n  . set format, position, rotation, flip to source and destination buffers\n- DRM_EXYNOS_IPP_QUEUE_BUF\n  . enqueue/dequeue buffer and make event list.\n- DRM_EXYNOS_IPP_CMD_CTRL\n  . play/stop/pause/resume control.\n\nEvent:\n- DRM_EXYNOS_IPP_EVENT\n  . a event to notify dma operation completion to user side.\n\nBasic control flow:\nOpen -\u003e Get properties -\u003e User choose desired IPP sub driver(FIMC, Rotator\nor GSCALER) -\u003e Set Property -\u003e Create gem handle -\u003e Enqueue to source and\ndestination buffers -\u003e Command control(Play) -\u003e Event is notified to User\n-\u003e User gets destinition buffer complated -\u003e (Enqueue to source and\ndestination buffers -\u003e Event is notified to User) * N -\u003e Queue/Dequeue to\nsource and destination buffers -\u003e Command control(Stop) -\u003e Free gem handle\n-\u003e Close\n\nChangelog v1 ~ v5:\n- added comments, code fixups and cleanups.\n\nSigned-off-by: Eunchul Kim \u003cchulspro.kim@samsung.com\u003e\nSigned-off-by: Jinyoung Jeon \u003cjy0.jeon@samsung.com\u003e\nSigned-off-by: Inki Dae \u003cinki.dae@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\n"
    },
    {
      "commit": "278a334cbc96d3da66d56235b8ce84081e9a1892",
      "tree": "b5359119856453cdd69277003861e0a9a9e2b408",
      "parents": [
        "cd459e525f4faeefa0bf78e1bcba3e04496b2cb5"
      ],
      "author": {
        "name": "Alex Deucher",
        "email": "alexander.deucher@amd.com",
        "time": "Thu Dec 13 12:27:28 2012 -0500"
      },
      "committer": {
        "name": "Alex Deucher",
        "email": "alexander.deucher@amd.com",
        "time": "Fri Dec 14 10:45:26 2012 -0500"
      },
      "message": "drm/radeon: enable the async DMA rings in the CS ioctl\n\nThis enables the functionality added in the previous\npatches.  Userspace acceleration drivers can use the\nCS ioctl to submit command buffers to the async DMA\nrings.\n\nSigned-off-by: Alex Deucher \u003calexander.deucher@amd.com\u003e\n"
    },
    {
      "commit": "1a1494def7eacbd25db05185aa2e81ef90892460",
      "tree": "40911f075b1fe527c6d20bf8c3070d4cdca11e97",
      "parents": [
        "8de9e417757fb9f130f55a38f4ee7027b60de1c7",
        "71bfe916ebe6d026cd3d0e41c398574fc1228e03"
      ],
      "author": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Sat Dec 08 13:17:07 2012 +1000"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Mon Dec 10 20:03:58 2012 +1000"
      },
      "message": "Merge branch \u0027drm-next-3.8\u0027 of git://people.freedesktop.org/~agd5f/linux into drm-next\n\nAlex writes:\nPretty minor -next pull request.  We some additional new bits waiting\ninternally for release.  Hopefully Monday we can get at least some of\nthem out.  The others will probably take a few more weeks.\n\nHighlights of the current request:\n- ELD registers for passing audio information to the sound hardware\n- Handle GPUVM page faults more gracefully\n- Misc fixes\n\nMerge radeon test\n* \u0027drm-next-3.8\u0027 of git://people.freedesktop.org/~agd5f/linux: (483 commits)\n  drm/radeon: bump driver version for new info ioctl requests\n  drm/radeon: fix eDP clk and lane setup for scaled modes\n  drm/radeon: add new INFO ioctl requests\n  drm/radeon/dce32+: use fractional fb dividers for high clocks\n  drm/radeon: use cached memory when evicting for vram on non agp\n  drm/radeon: add a CS flag END_OF_FRAME\n  drm/radeon: stop page faults from hanging the system (v2)\n  drm/radeon/dce4/5: add registers for ELD handling\n  drm/radeon/dce3.2: add registers for ELD handling\n  radeon: fix pll/ctrc mapping on dce2 and dce3 hardware\n  Linux 3.7-rc7\n  powerpc/eeh: Do not invalidate PE properly\n  Revert \"drm/i915: enable rc6 on ilk again\"\n  ALSA: hda - Fix build without CONFIG_PM\n  of/address: sparc: Declare of_iomap as an extern function for sparc again\n  PM / QoS: fix wrong error-checking condition\n  bnx2x: remove redundant warning log\n  vxlan: fix command usage in its doc\n  8139cp: revert \"set ring address before enabling receiver\"\n  MPI: Fix compilation on MIPS with GCC 4.4 and newer\n  ...\n\nConflicts:\n\tdrivers/gpu/drm/exynos/exynos_drm_encoder.c\n\tdrivers/gpu/drm/exynos/exynos_drm_fbdev.c\n\tdrivers/gpu/drm/nouveau/core/engine/disp/nv50.c\n"
    },
    {
      "commit": "2e1a7674f65eb2c9118ab59d9c8aa9c731da6b85",
      "tree": "6a4a881d05fe1cdb5a4d2781f7c91e8a8111c3dd",
      "parents": [
        "a02dc74b317d78298cb0587b9b1f6f741fd5c139"
      ],
      "author": {
        "name": "Alex Deucher",
        "email": "alexander.deucher@amd.com",
        "time": "Tue Dec 04 12:55:37 2012 -0500"
      },
      "committer": {
        "name": "Alex Deucher",
        "email": "alexander.deucher@amd.com",
        "time": "Fri Dec 07 19:48:22 2012 -0500"
      },
      "message": "drm/radeon: add new INFO ioctl requests\n\nAdd requests to get the number of shader engines (SE) and\nthe number of SH per SE.  These are needed for geometry\nand tesselation shaders in the 3D driver as well as setting\nup PA_SC_RASTER_CONFIG on SI asics.\n\nSigned-off-by: Alex Deucher \u003calexander.deucher@amd.com\u003e\n"
    },
    {
      "commit": "57f570838341507682b7705f1d950608ef2182bd",
      "tree": "678bdcf5f76dfa3fc3143681b6cd5e70a38586f7",
      "parents": [
        "ae133a1129790ec288b429b5f08ab4701633844a"
      ],
      "author": {
        "name": "Marek Olšák",
        "email": "maraeo@gmail.com",
        "time": "Sun Dec 02 21:03:33 2012 +0100"
      },
      "committer": {
        "name": "Alex Deucher",
        "email": "alexander.deucher@amd.com",
        "time": "Fri Dec 07 19:48:20 2012 -0500"
      },
      "message": "drm/radeon: add a CS flag END_OF_FRAME\n\nNo version bump is required because setting the flag on older DRM has\nno effect.\n\nThis only reserves the bit and doesn\u0027t use it. I assume we will use it\nfor buffer eviction heuristics.\n\nSigned-off-by: Marek Olšák \u003cmaraeo@gmail.com\u003e\n"
    },
    {
      "commit": "2a3098ff6c2109557868f9f230f4725312dcb882",
      "tree": "cb8ae0355a46c48602bb4df2c7b56ed25eb77f65",
      "parents": [
        "1119707e225c1627ed3f413a569e297883946fb2"
      ],
      "author": {
        "name": "Inki Dae",
        "email": "inki.dae@samsung.com",
        "time": "Sun Nov 04 05:48:52 2012 -0800"
      },
      "committer": {
        "name": "Inki Dae",
        "email": "inki.dae@samsung.com",
        "time": "Tue Dec 04 14:46:01 2012 +0900"
      },
      "message": "drm/exynos: add userptr feature for g2d module\n\nThis patch adds userptr feautre for G2D module.\n\nThe userptr means user space address allocated by malloc().\nAnd the purpose of this feature is to make G2D\u0027s dma able\nto access the user space region.\n\nTo user this feature, user should flag G2D_BUF_USRPTR to\noffset variable of struct drm_exynos_g2d_cmd and fill\nstruct drm_exynos_g2d_userptr with user space address\nand size for it and then should set a pointer to\ndrm_exynos_g2d_userptr object to data variable of struct\ndrm_exynos_g2d_cmd. The last bit of offset variable is used\nto check if the cmdlist\u0027s buffer type is userptr or not.\nIf userptr, the g2d driver gets user space address and size\nand then gets pages through get_user_pages().\n(another case is counted as gem handle)\n\nBelow is sample codes:\n\nstatic void set_cmd(struct drm_exynos_g2d_cmd *cmd,\n\t\tunsigned long offset, unsigned long data)\n{\n\tcmd-\u003eoffset \u003d offset;\n\tcmd-\u003edata \u003d data;\n}\n\nstatic int solid_fill_test(int x, int y, unsigned long userptr)\n{\n\tstruct drm_exynos_g2d_cmd cmd_gem[5];\n\tstruct drm_exynos_g2d_userptr g2d_userptr;\n\tunsigned int gem_nr \u003d 0;\n\t...\n\n\tg2d_userptr.userptr \u003d userptr;\n\tg2d_userptr.size \u003d x * y * 4;\n\n\tset_cmd(\u0026cmd_gem[gem_nr++], DST_BASE_ADDR_REG |\n\t\t\t\t\tG2D_BUF_USERPTR,\n\t\t\t(unsigned long)\u0026g2d_userptr);\n\t...\n}\n\nint main(int argc, char **argv)\n{\n\tunsigned long addr;\n\t...\n\n\taddr \u003d malloc(x * y * 4);\n\t...\n\n\tsolid_fill_test(x, y, addr);\n\t...\n}\n\nAnd next, the pages are mapped with iommu table and the device\naddress is set to cmdlist so that G2D\u0027s dma can access it.\nAs you may know, the pages from get_user_pages() are pinned.\nIn other words, they CAN NOT be migrated and also swapped out.\nSo the dma access would be safe.\n\nBut the use of userptr feature has performance overhead so\nthis patch also has memory pool to the userptr feature.\nPlease, assume that user sends cmdlist filled with userptr\nand size every time to g2d driver, and the get_user_pages\nfuncion will be called every time.\n\nThe memory pool has maximum 64MB size and the userptr that\nuser had ever sent, is holded in the memory pool.\nThis meaning is that if the userptr from user is same as one\nin the memory pool, device address to the userptr in the memory\npool is set to cmdlist.\n\nAnd last, the pages from get_user_pages() will be freed once\nuser calls free() and the dma access is completed. Actually,\nget_user_pages() takes 2 reference counts if the user process\nhas never accessed user region allocated by malloc(). Then, if\nthe user calls free(), the page reference count becomes 1 and\nbecomes 0 with put_page() call. And the reverse holds as well.\nThis means how the pages backed are used by dma and freed.\n\nThis patch is based on \"drm/exynos: add iommu support for g2d\",\n\thttps://patchwork.kernel.org/patch/1629481/\n\nSigned-off-by: Inki Dae \u003cinki.dae@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\n"
    },
    {
      "commit": "c61eef726a78ae77b6ce223d01ea2130f465fe5c",
      "tree": "7bd310556195005b5c4c1cbadadc9da1fbf5163c",
      "parents": [
        "e62f2f5acba1d466da047983ae16f6b96b68b310"
      ],
      "author": {
        "name": "Imre Deak",
        "email": "imre.deak@intel.com",
        "time": "Tue Oct 23 18:53:26 2012 +0000"
      },
      "committer": {
        "name": "Dave Airlie",
        "email": "airlied@redhat.com",
        "time": "Tue Nov 20 16:06:16 2012 +1000"
      },
      "message": "drm: add support for monotonic vblank timestamps\n\nJumps in the vblank and page flip event timestamps cause trouble for\nclients, so we should avoid them. The timestamp we get currently with\ngettimeofday can jump, so use instead monotonic timestamps.\n\nFor backward compatibility use a module flag to revert back to using\ngettimeofday timestamps. Add also a DRM_CAP_TIMESTAMP_MONOTONIC flag\nthat is simply a read only version of the module flag, so that clients\ncan query this without depending on sysfs.\n\nSigned-off-by: Imre Deak \u003cimre.deak@intel.com\u003e\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\n"
    },
    {
      "commit": "c2fb7916927e989ea424e61ce5fe617e54878827",
      "tree": "02f9d5482075f8931637d82bb697a6470270136a",
      "parents": [
        "29de6ce574870a0d3fd157afdbf51c0282e2bf63",
        "6f0c0580b70c89094b3422ba81118c7b959c7556"
      ],
      "author": {
        "name": "Daniel Vetter",
        "email": "daniel.vetter@ffwll.ch",
        "time": "Mon Oct 22 14:34:51 2012 +0200"
      },
      "committer": {
        "name": "Daniel Vetter",
        "email": "daniel.vetter@ffwll.ch",
        "time": "Mon Oct 22 14:34:51 2012 +0200"
      },
      "message": "Merge tag \u0027v3.7-rc2\u0027 into drm-intel-next-queued\n\nLinux 3.7-rc2\n\nBackmerge to solve two ugly conflicts:\n- uapi. We\u0027ve already added new ioctl definitions for -next. Do I need to say more?\n- wc support gtt ptes. We\u0027ve had to revert this for snb+ for 3.7 and\n  also fix a few other things in the code. Now we know how to make it\n  work on snb+, but to avoid losing the other fixes do the backmerge\n  first before re-enabling wc gtt ptes on snb+.\n\nAnd a few other minor things, among them git getting confused in\nintel_dp.c and seemingly causing a conflict out of nothing ...\n\nConflicts:\n\tdrivers/gpu/drm/i915/i915_reg.h\n\tdrivers/gpu/drm/i915/intel_display.c\n\tdrivers/gpu/drm/i915/intel_dp.c\n\tdrivers/gpu/drm/i915/intel_modes.c\n\tinclude/drm/i915_drm.h\n\nSigned-off-by: Daniel Vetter \u003cdaniel.vetter@ffwll.ch\u003e\n"
    },
    {
      "commit": "718dcedd7e87f448a1eeeda4d1a986284c243110",
      "tree": "48bd3730e4eea9c359d94ae4e990c2d9c574931b",
      "parents": [
        "f3dfd599af993385b40fc7a1c947afc12729bc4d"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Oct 04 18:21:50 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Oct 04 18:21:50 2012 +0100"
      },
      "message": "UAPI: (Scripted) Disintegrate include/drm\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "4413e16d9d21673bb5048a2e542f1aaa00015c2e",
      "tree": "603b591283d5d5025840832a2987cfa3167cb794",
      "parents": [
        "abbf1590de22a6d2240a59383477da50d1402f6a"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 02 18:01:35 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 02 18:01:35 2012 +0100"
      },
      "message": "UAPI: (Scripted) Set up UAPI Kbuild files\n\nSet up empty UAPI Kbuild files to be populated by the header splitter.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    }
  ]
}
