)]}'
{
  "commit": "13bb26ae8850ede9cfb5ba20e646fe08e23aca97",
  "tree": "dc3038dcd1135bd00bb7e2e2d4529a81d944d6de",
  "parents": [
    "8005c49d9aea74d382f474ce11afbbc7d7130bec"
  ],
  "author": {
    "name": "Robert Jarzmik",
    "email": "robert.jarzmik@free.fr",
    "time": "Tue Oct 13 21:54:28 2015 +0200"
  },
  "committer": {
    "name": "Vinod Koul",
    "email": "vinod.koul@intel.com",
    "time": "Mon Nov 16 08:32:16 2015 +0530"
  },
  "message": "dmaengine: virt-dma: don\u0027t always free descriptor upon completion\n\nThis patch attempts to enhance the case of a transfer submitted multiple\ntimes, and where the cost of creating the descriptors chain is not\nnegligible.\n\nThis happens with big video buffers (several megabytes, ie. several\nthousands of linked descriptors in one scatter-gather list). In these\ncases, a video driver would want to do :\n - tx \u003d dmaengine_prep_slave_sg()\n - dma_engine_submit(tx);\n - dma_async_issue_pending()\n - wait for video completion\n - read video data (or not, skipping a frame is also possible)\n - dma_engine_submit(tx)\n   \u003d\u003e here, the descriptors chain recalculation will take time\n   \u003d\u003e the dma coherent allocation over and over might create holes in\n      the dma pool, which is counter-productive.\n - dma_async_issue_pending()\n - etc ...\n\nIn order to cope with this case, virt-dma is modified to prevent freeing\nthe descriptors upon completion if DMA_CTRL_REUSE flag is set in the\ntransfer.\n\nThis patch is a respin of the former DMA_CTRL_ACK approach, which was\nreverted due to a regression in audio drivers.\n\nSigned-off-by: Robert Jarzmik \u003crobert.jarzmik@free.fr\u003e\nSigned-off-by: Vinod Koul \u003cvinod.koul@intel.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6f80432a3f0a3d74bf9a4612712ad6edf4875edc",
      "old_mode": 33188,
      "old_path": "drivers/dma/virt-dma.c",
      "new_id": "a35c211857dd61f7679aabe652a32bb6220fb27c",
      "new_mode": 33188,
      "new_path": "drivers/dma/virt-dma.c"
    },
    {
      "type": "modify",
      "old_id": "2fa47745a41f1ae9a4f2b834604127b0bca0e06f",
      "old_mode": 33188,
      "old_path": "drivers/dma/virt-dma.h",
      "new_id": "bff8c39dd7167723b3481f2ce75b27428575f022",
      "new_mode": 33188,
      "new_path": "drivers/dma/virt-dma.h"
    }
  ]
}
