From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH] dmabuf: allow exporter to define customs ioctls Date: Wed, 9 Mar 2016 10:18:23 +0100 Message-ID: <56DFEA5F.4000405@vodafone.de> References: <1457513642-10859-1-git-send-email-benjamin.gaignard@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from pegasos-out.vodafone.de (pegasos-out.vodafone.de [80.84.1.38]) by gabe.freedesktop.org (Postfix) with ESMTP id 3BCE86E04D for ; Wed, 9 Mar 2016 09:18:29 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter , Benjamin Gaignard Cc: dri-devel , "linux-media@vger.kernel.org" List-Id: dri-devel@lists.freedesktop.org QW0gMDkuMDMuMjAxNiB1bSAxMDowMyBzY2hyaWViIERhbmllbCBWZXR0ZXI6Cj4gT24gV2VkLCBN YXIgOSwgMjAxNiBhdCA5OjU0IEFNLCBCZW5qYW1pbiBHYWlnbmFyZAo+IDxiZW5qYW1pbi5nYWln bmFyZEBsaW5hcm8ub3JnPiB3cm90ZToKPj4gSW4gYWRkaXRpb24gb2YgdGhlIGFscmVhZHkgZXhp c3Rpbmcgb3BlcmF0aW9ucyBhbGxvdyBleHBvcnRlcgo+PiB0byB1c2UgaXQgb3duIGN1c3RvbSBp b2N0bHMuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IEJlbmphbWluIEdhaWduYXJkIDxiZW5qYW1pbi5n YWlnbmFyZEBsaW5hcm8ub3JnPgo+IEZpcnN0IHJlYWN0aW9uOiBObyB3YXkgZXZlciEgTW9yZSBz ZXJpb3VzbHksIHBsZWFzZSBzdGFydCBieQo+IGV4cGxhaW5pbmcgd2h5IHlvdSBuZWVkIHRoaXMu CgpJIHdhcyBhYm91dCB0byBjb21wbGFpbiBhcyB3ZWxsLiBEZXZpY2Ugc3BlY2lmaWMgSU9DVExz IHNob3VsZCBwcm9iYWJseSAKYmV0dGVyIGRlZmluZWQgYXMgb3BlcmF0aW9uIG9uIHRoZSBkZXZp Y2Ugd2hpY2ggdGFrZXMgdGhlIERNQS1CdWYgZmlsZSAKZGVzY3JpcHRvciBhcyBhIHBhcmFtZXRl ci4KCklmIHlvdSByZWFsbHkgbmVlZCB0aGlzICh3aGljaCBJIGRvdWJ0KSB0aGVuIHBsZWFzZSBk ZWZpbmUgYSByYW5nZSBvZiAKSU9DVEwgbnVtYmVycyBmb3Igd2hpY2ggaXQgc2hvdWxkIGFwcGx5 LgoKUmVnYXJkcywKQ2hyaXN0aWFuLgoKPiAtRGFuaWVsCj4KPj4gLS0tCj4+ICAgZHJpdmVycy9k bWEtYnVmL2RtYS1idWYuYyB8IDMgKysrCj4+ICAgaW5jbHVkZS9saW51eC9kbWEtYnVmLmggICB8 IDUgKysrKysKPj4gICAyIGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKQo+Pgo+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEt YnVmLmMKPj4gaW5kZXggOTgxMGQxZC4uNmFiZDEyOSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9k bWEtYnVmL2RtYS1idWYuYwo+PiArKysgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jCj4+IEBA IC0yOTEsNiArMjkxLDkgQEAgc3RhdGljIGxvbmcgZG1hX2J1Zl9pb2N0bChzdHJ1Y3QgZmlsZSAq ZmlsZSwKPj4KPj4gICAgICAgICAgICAgICAgICByZXR1cm4gMDsKPj4gICAgICAgICAgZGVmYXVs dDoKPj4gKyAgICAgICAgICAgICAgIGlmIChkbWFidWYtPm9wcy0+aW9jdGwpCj4+ICsgICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiBkbWFidWYtPm9wcy0+aW9jdGwoZG1hYnVmLCBjbWQsIGFy Zyk7Cj4+ICsKPj4gICAgICAgICAgICAgICAgICByZXR1cm4gLUVOT1RUWTsKPj4gICAgICAgICAg fQo+PiAgIH0KPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZG1hLWJ1Zi5oIGIvaW5jbHVk ZS9saW51eC9kbWEtYnVmLmgKPj4gaW5kZXggNTMyMTA4ZS4uYjZmOTgzNyAxMDA2NDQKPj4gLS0t IGEvaW5jbHVkZS9saW51eC9kbWEtYnVmLmgKPj4gKysrIGIvaW5jbHVkZS9saW51eC9kbWEtYnVm LmgKPj4gQEAgLTcwLDYgKzcwLDkgQEAgc3RydWN0IGRtYV9idWZfYXR0YWNobWVudDsKPj4gICAg KiBAdm1hcDogW29wdGlvbmFsXSBjcmVhdGVzIGEgdmlydHVhbCBtYXBwaW5nIGZvciB0aGUgYnVm ZmVyIGludG8ga2VybmVsCj4+ICAgICogICAgICAgYWRkcmVzcyBzcGFjZS4gU2FtZSByZXN0cmlj dGlvbnMgYXMgZm9yIHZtYXAgYW5kIGZyaWVuZHMgYXBwbHkuCj4+ICAgICogQHZ1bm1hcDogW29w dGlvbmFsXSB1bm1hcHMgYSB2bWFwIGZyb20gdGhlIGJ1ZmZlcgo+PiArICogQGlvY3RsOiBbb3B0 aW9uYWxdIGlvY3RscyBzdXBwb3J0ZWQgYnkgdGhlIGV4cG9ydGVyLgo+PiArICogICAgICAgIEl0 IGlzIHVwIHRvIHRoZSBleHBvcnRlciB0byBkbyB0aGUgcHJvcGVyIGNvcHlfe2Zyb20vdG99X3Vz ZXIKPj4gKyAqICAgICAgICBjYWxscy4gU2hvdWxkIHJldHVybiAtRUlOVkFMIGluIGNhc2Ugb2Yg ZXJyb3IuCj4+ICAgICovCj4+ICAgc3RydWN0IGRtYV9idWZfb3BzIHsKPj4gICAgICAgICAgaW50 ICgqYXR0YWNoKShzdHJ1Y3QgZG1hX2J1ZiAqLCBzdHJ1Y3QgZGV2aWNlICosCj4+IEBAIC0xMDQs NiArMTA3LDggQEAgc3RydWN0IGRtYV9idWZfb3BzIHsKPj4KPj4gICAgICAgICAgdm9pZCAqKCp2 bWFwKShzdHJ1Y3QgZG1hX2J1ZiAqKTsKPj4gICAgICAgICAgdm9pZCAoKnZ1bm1hcCkoc3RydWN0 IGRtYV9idWYgKiwgdm9pZCAqdmFkZHIpOwo+PiArCj4+ICsgICAgICAgaW50ICgqaW9jdGwpKHN0 cnVjdCBkbWFfYnVmICosIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKTsKPj4g ICB9Owo+Pgo+PiAgIC8qKgo+PiAtLQo+PiAxLjkuMQo+Pgo+PiBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4+ IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKPgo+CgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from pegasos-out.vodafone.de ([80.84.1.38]:44022 "EHLO pegasos-out.vodafone.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751599AbcCIJ0r (ORCPT ); Wed, 9 Mar 2016 04:26:47 -0500 Subject: Re: [PATCH] dmabuf: allow exporter to define customs ioctls To: Daniel Vetter , Benjamin Gaignard References: <1457513642-10859-1-git-send-email-benjamin.gaignard@linaro.org> Cc: dri-devel , "linux-media@vger.kernel.org" From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <56DFEA5F.4000405@vodafone.de> Date: Wed, 9 Mar 2016 10:18:23 +0100 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-media-owner@vger.kernel.org List-ID: Am 09.03.2016 um 10:03 schrieb Daniel Vetter: > On Wed, Mar 9, 2016 at 9:54 AM, Benjamin Gaignard > wrote: >> In addition of the already existing operations allow exporter >> to use it own custom ioctls. >> >> Signed-off-by: Benjamin Gaignard > First reaction: No way ever! More seriously, please start by > explaining why you need this. I was about to complain as well. Device specific IOCTLs should probably better defined as operation on the device which takes the DMA-Buf file descriptor as a parameter. If you really need this (which I doubt) then please define a range of IOCTL numbers for which it should apply. Regards, Christian. > -Daniel > >> --- >> drivers/dma-buf/dma-buf.c | 3 +++ >> include/linux/dma-buf.h | 5 +++++ >> 2 files changed, 8 insertions(+) >> >> diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c >> index 9810d1d..6abd129 100644 >> --- a/drivers/dma-buf/dma-buf.c >> +++ b/drivers/dma-buf/dma-buf.c >> @@ -291,6 +291,9 @@ static long dma_buf_ioctl(struct file *file, >> >> return 0; >> default: >> + if (dmabuf->ops->ioctl) >> + return dmabuf->ops->ioctl(dmabuf, cmd, arg); >> + >> return -ENOTTY; >> } >> } >> diff --git a/include/linux/dma-buf.h b/include/linux/dma-buf.h >> index 532108e..b6f9837 100644 >> --- a/include/linux/dma-buf.h >> +++ b/include/linux/dma-buf.h >> @@ -70,6 +70,9 @@ struct dma_buf_attachment; >> * @vmap: [optional] creates a virtual mapping for the buffer into kernel >> * address space. Same restrictions as for vmap and friends apply. >> * @vunmap: [optional] unmaps a vmap from the buffer >> + * @ioctl: [optional] ioctls supported by the exporter. >> + * It is up to the exporter to do the proper copy_{from/to}_user >> + * calls. Should return -EINVAL in case of error. >> */ >> struct dma_buf_ops { >> int (*attach)(struct dma_buf *, struct device *, >> @@ -104,6 +107,8 @@ struct dma_buf_ops { >> >> void *(*vmap)(struct dma_buf *); >> void (*vunmap)(struct dma_buf *, void *vaddr); >> + >> + int (*ioctl)(struct dma_buf *, unsigned int cmd, unsigned long arg); >> }; >> >> /** >> -- >> 1.9.1 >> >> _______________________________________________ >> dri-devel mailing list >> dri-devel@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/dri-devel > >