From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dmitry Osipenko Subject: Re: [PATCH 08/14] staging: media: tegra-vde: Track struct device * Date: Sat, 18 Aug 2018 18:39:14 +0300 Message-ID: <930d8dcf-0647-f41e-2bd4-4a753835dd1a@gmail.com> References: <20180813145027.16346-1-thierry.reding@gmail.com> <20180813145027.16346-9-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180813145027.16346-9-thierry.reding@gmail.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: driverdev-devel-bounces@linuxdriverproject.org Sender: "devel" To: Thierry Reding , Mauro Carvalho Chehab Cc: linux-tegra@vger.kernel.org, Greg Kroah-Hartman , linux-media@vger.kernel.org, devel@driverdev.osuosl.org, Jonathan Hunter List-Id: linux-tegra@vger.kernel.org T24gMTMuMDguMjAxOCAxNzo1MCwgVGhpZXJyeSBSZWRpbmcgd3JvdGU6Cj4gRnJvbTogVGhpZXJy eSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KPiAKPiBUaGUgcG9pbnRlciB0byB0aGUgc3Ry dWN0IGRldmljZSBpcyBmcmVxdWVudGx5IHVzZWQsIHNvIHN0b3JlIGl0IGluCj4gc3RydWN0IHRl Z3JhX3ZkZS4gQWxzbywgcGFzcyBhcm91bmQgYSBwb2ludGVyIHRvIGEgc3RydWN0IHRlZ3JhX3Zk ZQo+IGluc3RlYWQgb2Ygc3RydWN0IGRldmljZSBpbiBzb21lIGNhc2VzIHRvIHByZXBhcmUgZm9y IHN1YnNlcXVlbnQKPiBwYXRjaGVzIHJlZmVyZW5jaW5nIGFkZGl0aW9uYWwgZGF0YSBmcm9tIHRo YXQgc3RydWN0dXJlLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFRoaWVycnkgUmVkaW5nIDx0cmVkaW5n QG52aWRpYS5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvc3RhZ2luZy9tZWRpYS90ZWdyYS12ZGUvdGVn cmEtdmRlLmMgfCA2MyArKysrKysrKysrKystLS0tLS0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDM2 IGluc2VydGlvbnMoKyksIDI3IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L3N0YWdpbmcvbWVkaWEvdGVncmEtdmRlL3RlZ3JhLXZkZS5jIGIvZHJpdmVycy9zdGFnaW5nL21l ZGlhL3RlZ3JhLXZkZS90ZWdyYS12ZGUuYwo+IGluZGV4IDQxY2Y4NmRjNWRiZC4uMjQ5NmEwM2Zk MTU4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS90ZWdyYS12ZGUvdGVncmEt dmRlLmMKPiArKysgYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvdGVncmEtdmRlL3RlZ3JhLXZkZS5j Cj4gQEAgLTcxLDYgKzcxLDcgQEAgc3RydWN0IHRlZ3JhX3ZkZV9zb2Mgewo+ICB9Owo+ICAKPiAg c3RydWN0IHRlZ3JhX3ZkZSB7Cj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXY7Cj4gIAljb25zdCBzdHJ1 Y3QgdGVncmFfdmRlX3NvYyAqc29jOwo+ICAJdm9pZCBfX2lvbWVtICpzeGU7Cj4gIAl2b2lkIF9f aW9tZW0gKmJzZXY7Cj4gQEAgLTY0NCw3ICs2NDUsNyBAQCBzdGF0aWMgdm9pZCB0ZWdyYV92ZGVf ZGV0YWNoX2FuZF9wdXRfZG1hYnVmKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmEsCj4gIAlk bWFfYnVmX3B1dChkbWFidWYpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IHRlZ3JhX3ZkZV9hdHRh Y2hfZG1hYnVmKHN0cnVjdCBkZXZpY2UgKmRldiwKPiArc3RhdGljIGludCB0ZWdyYV92ZGVfYXR0 YWNoX2RtYWJ1ZihzdHJ1Y3QgdGVncmFfdmRlICp2ZGUsCj4gIAkJCQkgICBpbnQgZmQsCj4gIAkJ CQkgICB1bnNpZ25lZCBsb25nIG9mZnNldCwKPiAgCQkJCSAgIHNpemVfdCBtaW5fc2l6ZSwKPiBA QCAtNjYyLDM4ICs2NjMsNDAgQEAgc3RhdGljIGludCB0ZWdyYV92ZGVfYXR0YWNoX2RtYWJ1Zihz dHJ1Y3QgZGV2aWNlICpkZXYsCj4gIAo+ICAJZG1hYnVmID0gZG1hX2J1Zl9nZXQoZmQpOwo+ICAJ aWYgKElTX0VSUihkbWFidWYpKSB7Cj4gLQkJZGV2X2VycihkZXYsICJJbnZhbGlkIGRtYWJ1ZiBG RDogJWRcbiIsIGZkKTsKPiArCQlkZXZfZXJyKHZkZS0+ZGV2LCAiSW52YWxpZCBkbWFidWYgRkQ6 ICVkXG4iLCBmZCk7Cj4gIAkJcmV0dXJuIFBUUl9FUlIoZG1hYnVmKTsKPiAgCX0KPiAgCj4gIAlp ZiAoZG1hYnVmLT5zaXplICYgKGFsaWduX3NpemUgLSAxKSkgewo+IC0JCWRldl9lcnIoZGV2LCAi VW5hbGlnbmVkIGRtYWJ1ZiAweCV6WCwgc2hvdWxkIGJlIGFsaWduZWQgdG8gMHglelhcbiIsCj4g KwkJZGV2X2Vycih2ZGUtPmRldiwKPiArCQkJIlVuYWxpZ25lZCBkbWFidWYgMHglelgsIHNob3Vs ZCBiZSBhbGlnbmVkIHRvIDB4JXpYXG4iLAo+ICAJCQlkbWFidWYtPnNpemUsIGFsaWduX3NpemUp Owo+ICAJCXJldHVybiAtRUlOVkFMOwo+ICAJfQo+ICAKPiAgCWlmICgodTY0KW9mZnNldCArIG1p bl9zaXplID4gZG1hYnVmLT5zaXplKSB7Cj4gLQkJZGV2X2VycihkZXYsICJUb28gc21hbGwgZG1h YnVmIHNpemUgJXp1IEAweCVsWCwgc2hvdWxkIGJlIGF0IGxlYXN0ICV6dVxuIiwKPiArCQlkZXZf ZXJyKHZkZS0+ZGV2LAo+ICsJCQkiVG9vIHNtYWxsIGRtYWJ1ZiBzaXplICV6dSBAMHglbFgsIHNo b3VsZCBiZSBhdCBsZWFzdCAlenVcbiIsCj4gIAkJCWRtYWJ1Zi0+c2l6ZSwgb2Zmc2V0LCBtaW5f c2l6ZSk7Cj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAl9Cj4gIAo+IC0JYXR0YWNobWVudCA9IGRt YV9idWZfYXR0YWNoKGRtYWJ1ZiwgZGV2KTsKPiArCWF0dGFjaG1lbnQgPSBkbWFfYnVmX2F0dGFj aChkbWFidWYsIHZkZS0+ZGV2KTsKPiAgCWlmIChJU19FUlIoYXR0YWNobWVudCkpIHsKPiAtCQlk ZXZfZXJyKGRldiwgIkZhaWxlZCB0byBhdHRhY2ggZG1hYnVmXG4iKTsKPiArCQlkZXZfZXJyKHZk ZS0+ZGV2LCAiRmFpbGVkIHRvIGF0dGFjaCBkbWFidWZcbiIpOwo+ICAJCWVyciA9IFBUUl9FUlIo YXR0YWNobWVudCk7Cj4gIAkJZ290byBlcnJfcHV0Owo+ICAJfQo+ICAKPiAgCXNndCA9IGRtYV9i dWZfbWFwX2F0dGFjaG1lbnQoYXR0YWNobWVudCwgZG1hX2Rpcik7Cj4gIAlpZiAoSVNfRVJSKHNn dCkpIHsKPiAtCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBnZXQgZG1hYnVmcyBzZ190YWJsZVxu Iik7Cj4gKwkJZGV2X2Vycih2ZGUtPmRldiwgIkZhaWxlZCB0byBnZXQgZG1hYnVmcyBzZ190YWJs ZVxuIik7Cj4gIAkJZXJyID0gUFRSX0VSUihzZ3QpOwo+ICAJCWdvdG8gZXJyX2RldGFjaDsKPiAg CX0KPiAgCj4gIAlpZiAoc2d0LT5uZW50cyAhPSAxKSB7Cj4gLQkJZGV2X2VycihkZXYsICJTcGFy c2UgRE1BIHJlZ2lvbiBpcyB1bnN1cHBvcnRlZFxuIik7Cj4gKwkJZGV2X2Vycih2ZGUtPmRldiwg IlNwYXJzZSBETUEgcmVnaW9uIGlzIHVuc3VwcG9ydGVkXG4iKTsKPiAgCQllcnIgPSAtRUlOVkFM Owo+ICAJCWdvdG8gZXJyX3VubWFwOwo+ICAJfQo+IEBAIC03MTcsNyArNzIwLDcgQEAgc3RhdGlj IGludCB0ZWdyYV92ZGVfYXR0YWNoX2RtYWJ1ZihzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gIAlyZXR1 cm4gZXJyOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IHRlZ3JhX3ZkZV9hdHRhY2hfZG1hYnVmc190 b19mcmFtZShzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gK3N0YXRpYyBpbnQgdGVncmFfdmRlX2F0dGFj aF9kbWFidWZzX3RvX2ZyYW1lKHN0cnVjdCB0ZWdyYV92ZGUgKnZkZSwKPiAgCQkJCQkgICAgIHN0 cnVjdCB2aWRlb19mcmFtZSAqZnJhbWUsCj4gIAkJCQkJICAgICBzdHJ1Y3QgdGVncmFfdmRlX2gy NjRfZnJhbWUgKnNyYywKPiAgCQkJCQkgICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRtYV9k aXIsCj4gQEAgLTcyNiw3ICs3MjksNyBAQCBzdGF0aWMgaW50IHRlZ3JhX3ZkZV9hdHRhY2hfZG1h YnVmc190b19mcmFtZShzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gIHsKPiAgCWludCBlcnI7Cj4gIAo+ IC0JZXJyID0gdGVncmFfdmRlX2F0dGFjaF9kbWFidWYoZGV2LCBzcmMtPnlfZmQsCj4gKwllcnIg PSB0ZWdyYV92ZGVfYXR0YWNoX2RtYWJ1Zih2ZGUsIHNyYy0+eV9mZCwKPiAgCQkJCSAgICAgIHNy Yy0+eV9vZmZzZXQsIGxzaXplLCBTWl8yNTYsCj4gIAkJCQkgICAgICAmZnJhbWUtPnlfZG1hYnVm X2F0dGFjaG1lbnQsCj4gIAkJCQkgICAgICAmZnJhbWUtPnlfYWRkciwKPiBAQCAtNzM1LDcgKzcz OCw3IEBAIHN0YXRpYyBpbnQgdGVncmFfdmRlX2F0dGFjaF9kbWFidWZzX3RvX2ZyYW1lKHN0cnVj dCBkZXZpY2UgKmRldiwKPiAgCWlmIChlcnIpCj4gIAkJcmV0dXJuIGVycjsKPiAgCj4gLQllcnIg PSB0ZWdyYV92ZGVfYXR0YWNoX2RtYWJ1ZihkZXYsIHNyYy0+Y2JfZmQsCj4gKwllcnIgPSB0ZWdy YV92ZGVfYXR0YWNoX2RtYWJ1Zih2ZGUsIHNyYy0+Y2JfZmQsCj4gIAkJCQkgICAgICBzcmMtPmNi X29mZnNldCwgY3NpemUsIFNaXzI1NiwKPiAgCQkJCSAgICAgICZmcmFtZS0+Y2JfZG1hYnVmX2F0 dGFjaG1lbnQsCj4gIAkJCQkgICAgICAmZnJhbWUtPmNiX2FkZHIsCj4gQEAgLTc0NCw3ICs3NDcs NyBAQCBzdGF0aWMgaW50IHRlZ3JhX3ZkZV9hdHRhY2hfZG1hYnVmc190b19mcmFtZShzdHJ1Y3Qg ZGV2aWNlICpkZXYsCj4gIAlpZiAoZXJyKQo+ICAJCWdvdG8gZXJyX3JlbGVhc2VfeTsKPiAgCj4g LQllcnIgPSB0ZWdyYV92ZGVfYXR0YWNoX2RtYWJ1ZihkZXYsIHNyYy0+Y3JfZmQsCj4gKwllcnIg PSB0ZWdyYV92ZGVfYXR0YWNoX2RtYWJ1Zih2ZGUsIHNyYy0+Y3JfZmQsCj4gIAkJCQkgICAgICBz cmMtPmNyX29mZnNldCwgY3NpemUsIFNaXzI1NiwKPiAgCQkJCSAgICAgICZmcmFtZS0+Y3JfZG1h YnVmX2F0dGFjaG1lbnQsCj4gIAkJCQkgICAgICAmZnJhbWUtPmNyX2FkZHIsCj4gQEAgLTc1OCw3 ICs3NjEsNyBAQCBzdGF0aWMgaW50IHRlZ3JhX3ZkZV9hdHRhY2hfZG1hYnVmc190b19mcmFtZShz dHJ1Y3QgZGV2aWNlICpkZXYsCj4gIAkJcmV0dXJuIDA7Cj4gIAl9Cj4gIAo+IC0JZXJyID0gdGVn cmFfdmRlX2F0dGFjaF9kbWFidWYoZGV2LCBzcmMtPmF1eF9mZCwKPiArCWVyciA9IHRlZ3JhX3Zk ZV9hdHRhY2hfZG1hYnVmKHZkZSwgc3JjLT5hdXhfZmQsCj4gIAkJCQkgICAgICBzcmMtPmF1eF9v ZmZzZXQsIGNzaXplLCBTWl8yNTYsCj4gIAkJCQkgICAgICAmZnJhbWUtPmF1eF9kbWFidWZfYXR0 YWNobWVudCwKPiAgCQkJCSAgICAgICZmcmFtZS0+YXV4X2FkZHIsCj4gQEAgLTc3MCwzMyArNzcz LDM1IEBAIHN0YXRpYyBpbnQgdGVncmFfdmRlX2F0dGFjaF9kbWFidWZzX3RvX2ZyYW1lKHN0cnVj dCBkZXZpY2UgKmRldiwKPiAgCXJldHVybiAwOwo+ICAKPiAgZXJyX3JlbGVhc2VfY3I6Cj4gLQl0 ZWdyYV92ZGVfZGV0YWNoX2FuZF9wdXRfZG1hYnVmKGZyYW1lLT5jcl9kbWFidWZfYXR0YWNobWVu dCwKPiArCXRlZ3JhX3ZkZV9kZXRhY2hfYW5kX3B1dF9kbWFidWYodmRlLCBmcmFtZS0+Y3JfZG1h YnVmX2F0dGFjaG1lbnQsCj4gIAkJCQkJZnJhbWUtPmNyX3NndCwgZG1hX2Rpcik7Cj4gIGVycl9y ZWxlYXNlX2NiOgo+IC0JdGVncmFfdmRlX2RldGFjaF9hbmRfcHV0X2RtYWJ1ZihmcmFtZS0+Y2Jf ZG1hYnVmX2F0dGFjaG1lbnQsCj4gKwl0ZWdyYV92ZGVfZGV0YWNoX2FuZF9wdXRfZG1hYnVmKHZk ZSwgZnJhbWUtPmNiX2RtYWJ1Zl9hdHRhY2htZW50LAo+ICAJCQkJCWZyYW1lLT5jYl9zZ3QsIGRt YV9kaXIpOwo+ICBlcnJfcmVsZWFzZV95Ogo+IC0JdGVncmFfdmRlX2RldGFjaF9hbmRfcHV0X2Rt YWJ1ZihmcmFtZS0+eV9kbWFidWZfYXR0YWNobWVudCwKPiArCXRlZ3JhX3ZkZV9kZXRhY2hfYW5k X3B1dF9kbWFidWYodmRlLCBmcmFtZS0+eV9kbWFidWZfYXR0YWNobWVudCwKPiAgCQkJCQlmcmFt ZS0+eV9zZ3QsIGRtYV9kaXIpOwo+ICAKPiAgCXJldHVybiBlcnI7Cj4gIH0KPiAgCj4gLXN0YXRp YyB2b2lkIHRlZ3JhX3ZkZV9yZWxlYXNlX2ZyYW1lX2RtYWJ1ZnMoc3RydWN0IHZpZGVvX2ZyYW1l ICpmcmFtZSwKPiArc3RhdGljIHZvaWQgdGVncmFfdmRlX3JlbGVhc2VfZnJhbWVfZG1hYnVmcyhz dHJ1Y3QgdGVncmFfdmRlICp2ZGUsCj4gKwkJCQkJICAgIHN0cnVjdCB2aWRlb19mcmFtZSAqZnJh bWUsCj4gIAkJCQkJICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRtYV9kaXIsCj4gIAkJCQkJ ICAgIGJvb2wgYmFzZWxpbmVfcHJvZmlsZSkKPiAgewo+ICAJaWYgKCFiYXNlbGluZV9wcm9maWxl KQo+IC0JCXRlZ3JhX3ZkZV9kZXRhY2hfYW5kX3B1dF9kbWFidWYoZnJhbWUtPmF1eF9kbWFidWZf YXR0YWNobWVudCwKPiArCQl0ZWdyYV92ZGVfZGV0YWNoX2FuZF9wdXRfZG1hYnVmKHZkZSwKPiAr CQkJCQkJZnJhbWUtPmF1eF9kbWFidWZfYXR0YWNobWVudCwKPiAgCQkJCQkJZnJhbWUtPmF1eF9z Z3QsIGRtYV9kaXIpOwo+ICAKPiAtCXRlZ3JhX3ZkZV9kZXRhY2hfYW5kX3B1dF9kbWFidWYoZnJh bWUtPmNyX2RtYWJ1Zl9hdHRhY2htZW50LAo+ICsJdGVncmFfdmRlX2RldGFjaF9hbmRfcHV0X2Rt YWJ1Zih2ZGUsIGZyYW1lLT5jcl9kbWFidWZfYXR0YWNobWVudCwKPiAgCQkJCQlmcmFtZS0+Y3Jf c2d0LCBkbWFfZGlyKTsKPiAgCj4gLQl0ZWdyYV92ZGVfZGV0YWNoX2FuZF9wdXRfZG1hYnVmKGZy YW1lLT5jYl9kbWFidWZfYXR0YWNobWVudCwKPiArCXRlZ3JhX3ZkZV9kZXRhY2hfYW5kX3B1dF9k bWFidWYodmRlLCBmcmFtZS0+Y2JfZG1hYnVmX2F0dGFjaG1lbnQsCj4gIAkJCQkJZnJhbWUtPmNi X3NndCwgZG1hX2Rpcik7Cj4gIAo+IC0JdGVncmFfdmRlX2RldGFjaF9hbmRfcHV0X2RtYWJ1Zihm cmFtZS0+eV9kbWFidWZfYXR0YWNobWVudCwKPiArCXRlZ3JhX3ZkZV9kZXRhY2hfYW5kX3B1dF9k bWFidWYodmRlLCBmcmFtZS0+eV9kbWFidWZfYXR0YWNobWVudCwKPiAgCQkJCQlmcmFtZS0+eV9z Z3QsIGRtYV9kaXIpOwo+ICB9Cj4gIAo+IEBAIC05MzcsNyArOTQyLDcgQEAgc3RhdGljIGludCB0 ZWdyYV92ZGVfaW9jdGxfZGVjb2RlX2gyNjQoc3RydWN0IHRlZ3JhX3ZkZSAqdmRlLAo+ICAJaWYg KHJldCkKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiAtCXJldCA9IHRlZ3JhX3ZkZV9hdHRhY2hfZG1h YnVmKGRldiwgY3R4LmJpdHN0cmVhbV9kYXRhX2ZkLAo+ICsJcmV0ID0gdGVncmFfdmRlX2F0dGFj aF9kbWFidWYodmRlLCBjdHguYml0c3RyZWFtX2RhdGFfZmQsCj4gIAkJCQkgICAgICBjdHguYml0 c3RyZWFtX2RhdGFfb2Zmc2V0LAo+ICAJCQkJICAgICAgU1pfMTZLLCBTWl8xNkssCj4gIAkJCQkg ICAgICAmYml0c3RyZWFtX2RhdGFfZG1hYnVmX2F0dGFjaG1lbnQsCj4gQEAgLTk0OSw3ICs5NTQs NyBAQCBzdGF0aWMgaW50IHRlZ3JhX3ZkZV9pb2N0bF9kZWNvZGVfaDI2NChzdHJ1Y3QgdGVncmFf dmRlICp2ZGUsCj4gIAkJcmV0dXJuIHJldDsKPiAgCj4gIAlpZiAodmRlLT5zb2MtPnN1cHBvcnRz X3JlZl9waWNfbWFya2luZykgewo+IC0JCXJldCA9IHRlZ3JhX3ZkZV9hdHRhY2hfZG1hYnVmKGRl diwgY3R4LnNlY3VyZV9mZCwKPiArCQlyZXQgPSB0ZWdyYV92ZGVfYXR0YWNoX2RtYWJ1Zih2ZGUs IGN0eC5zZWN1cmVfZmQsCj4gIAkJCQkJICAgICAgY3R4LnNlY3VyZV9vZmZzZXQsIDAsIFNaXzI1 NiwKPiAgCQkJCQkgICAgICAmc2VjdXJlX2F0dGFjaG1lbnQsCj4gIAkJCQkJICAgICAgJnNlY3Vy ZV9hZGRyLAo+IEBAIC05OTIsNyArOTk3LDcgQEAgc3RhdGljIGludCB0ZWdyYV92ZGVfaW9jdGxf ZGVjb2RlX2gyNjQoc3RydWN0IHRlZ3JhX3ZkZSAqdmRlLAo+ICAKPiAgCQlkbWFfZGlyID0gKGkg PT0gMCkgPyBETUFfRlJPTV9ERVZJQ0UgOiBETUFfVE9fREVWSUNFOwo+ICAKPiAtCQlyZXQgPSB0 ZWdyYV92ZGVfYXR0YWNoX2RtYWJ1ZnNfdG9fZnJhbWUoZGV2LCAmZHBiX2ZyYW1lc1tpXSwKPiAr CQlyZXQgPSB0ZWdyYV92ZGVfYXR0YWNoX2RtYWJ1ZnNfdG9fZnJhbWUodmRlLCAmZHBiX2ZyYW1l c1tpXSwKPiAgCQkJCQkJCSZmcmFtZSwgZG1hX2RpciwKPiAgCQkJCQkJCWN0eC5iYXNlbGluZV9w cm9maWxlLAo+ICAJCQkJCQkJbHNpemUsIGNzaXplKTsKPiBAQCAtMTA4MSw3ICsxMDg2LDcgQEAg c3RhdGljIGludCB0ZWdyYV92ZGVfaW9jdGxfZGVjb2RlX2gyNjQoc3RydWN0IHRlZ3JhX3ZkZSAq dmRlLAo+ICAJd2hpbGUgKGktLSkgewo+ICAJCWRtYV9kaXIgPSAoaSA9PSAwKSA/IERNQV9GUk9N X0RFVklDRSA6IERNQV9UT19ERVZJQ0U7Cj4gIAo+IC0JCXRlZ3JhX3ZkZV9yZWxlYXNlX2ZyYW1l X2RtYWJ1ZnMoJmRwYl9mcmFtZXNbaV0sIGRtYV9kaXIsCj4gKwkJdGVncmFfdmRlX3JlbGVhc2Vf ZnJhbWVfZG1hYnVmcyh2ZGUsICZkcGJfZnJhbWVzW2ldLCBkbWFfZGlyLAo+ICAJCQkJCQljdHgu YmFzZWxpbmVfcHJvZmlsZSk7Cj4gIAl9Cj4gIAo+IEBAIC0xMDg5LDEwICsxMDk0LDEyIEBAIHN0 YXRpYyBpbnQgdGVncmFfdmRlX2lvY3RsX2RlY29kZV9oMjY0KHN0cnVjdCB0ZWdyYV92ZGUgKnZk ZSwKPiAgCj4gIHJlbGVhc2VfYml0c3RyZWFtX2RtYWJ1ZjoKPiAgCWlmIChzZWN1cmVfYXR0YWNo bWVudCkKPiAtCQl0ZWdyYV92ZGVfZGV0YWNoX2FuZF9wdXRfZG1hYnVmKHNlY3VyZV9hdHRhY2ht ZW50LCBzZWN1cmVfc2d0LAo+ICsJCXRlZ3JhX3ZkZV9kZXRhY2hfYW5kX3B1dF9kbWFidWYodmRl LCBzZWN1cmVfYXR0YWNobWVudCwKPiArCQkJCQkJc2VjdXJlX3NndCwKPiAgCQkJCQkJRE1BX1RP X0RFVklDRSk7Cj4gIAo+IC0JdGVncmFfdmRlX2RldGFjaF9hbmRfcHV0X2RtYWJ1ZihiaXRzdHJl YW1fZGF0YV9kbWFidWZfYXR0YWNobWVudCwKPiArCXRlZ3JhX3ZkZV9kZXRhY2hfYW5kX3B1dF9k bWFidWYodmRlLAo+ICsJCQkJCWJpdHN0cmVhbV9kYXRhX2RtYWJ1Zl9hdHRhY2htZW50LAo+ICAJ CQkJCWJpdHN0cmVhbV9zZ3QsIERNQV9UT19ERVZJQ0UpOwo+ICAKPiAgCXJldHVybiByZXQ7Cj4g QEAgLTExOTAsNiArMTE5Nyw4IEBAIHN0YXRpYyBpbnQgdGVncmFfdmRlX3Byb2JlKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIAlpZiAoIXZkZSkKPiAgCQlyZXR1cm4gLUVOT01FTTsK PiAgCj4gKwl2ZGUtPmRldiA9ICZwZGV2LT5kZXY7Cj4gKwo+ICAJcGxhdGZvcm1fc2V0X2RydmRh dGEocGRldiwgdmRlKTsKPiAgCj4gIAl2ZGUtPnNvYyA9IG9mX2RldmljZV9nZXRfbWF0Y2hfZGF0 YSgmcGRldi0+ZGV2KTsKPiAKClRoaXMgcGF0Y2ggZmFpbHMgdG8gY29tcGlsZS4KCmRyaXZlcnMv c3RhZ2luZy9tZWRpYS90ZWdyYS12ZGUvdGVncmEtdmRlLmM6IEluIGZ1bmN0aW9uCuKAmHRlZ3Jh X3ZkZV9hdHRhY2hfZG1hYnVmc190b19mcmFtZeKAmToKZHJpdmVycy9zdGFnaW5nL21lZGlhL3Rl Z3JhLXZkZS90ZWdyYS12ZGUuYzo3NzY6MzQ6IGVycm9yOiBwYXNzaW5nIGFyZ3VtZW50IDEgb2YK 4oCYdGVncmFfdmRlX2RldGFjaF9hbmRfcHV0X2RtYWJ1ZuKAmSBmcm9tIGluY29tcGF0aWJsZSBw b2ludGVyIHR5cGUKWy1XZXJyb3I9aW5jb21wYXRpYmxlLXBvaW50ZXItdHlwZXNdCiAgdGVncmFf dmRlX2RldGFjaF9hbmRfcHV0X2RtYWJ1Zih2ZGUsIGZyYW1lLT5jcl9kbWFidWZfYXR0YWNobWVu dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fgpkcml2ZXJzL3N0YWdpbmcv bWVkaWEvdGVncmEtdmRlL3RlZ3JhLXZkZS5jOjYzNzoxMzogbm90ZTogZXhwZWN0ZWQg4oCYc3Ry dWN0CmRtYV9idWZfYXR0YWNobWVudCAq4oCZIGJ1dCBhcmd1bWVudCBpcyBvZiB0eXBlIOKAmHN0 cnVjdCB0ZWdyYV92ZGUgKuKAmQogc3RhdGljIHZvaWQgdGVncmFfdmRlX2RldGFjaF9hbmRfcHV0 X2RtYWJ1ZihzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphCi4uLgoKWW91IG5lZWQgdG8gcmVi YXNlIHRoaXMgcGF0Y2ggcHJvcGVybHkuCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmRldmVsIG1haWxpbmcgbGlzdApkZXZlbEBsaW51eGRyaXZlcnByb2pl Y3Qub3JnCmh0dHA6Ly9kcml2ZXJkZXYubGludXhkcml2ZXJwcm9qZWN0Lm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaXZlcmRldi1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-ed1-f68.google.com ([209.85.208.68]:45506 "EHLO mail-ed1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726088AbeHRSrZ (ORCPT ); Sat, 18 Aug 2018 14:47:25 -0400 Subject: Re: [PATCH 08/14] staging: media: tegra-vde: Track struct device * To: Thierry Reding , Mauro Carvalho Chehab Cc: Greg Kroah-Hartman , Jonathan Hunter , linux-media@vger.kernel.org, linux-tegra@vger.kernel.org, devel@driverdev.osuosl.org References: <20180813145027.16346-1-thierry.reding@gmail.com> <20180813145027.16346-9-thierry.reding@gmail.com> From: Dmitry Osipenko Message-ID: <930d8dcf-0647-f41e-2bd4-4a753835dd1a@gmail.com> Date: Sat, 18 Aug 2018 18:39:14 +0300 MIME-Version: 1.0 In-Reply-To: <20180813145027.16346-9-thierry.reding@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-media-owner@vger.kernel.org List-ID: On 13.08.2018 17:50, Thierry Reding wrote: > From: Thierry Reding > > The pointer to the struct device is frequently used, so store it in > struct tegra_vde. Also, pass around a pointer to a struct tegra_vde > instead of struct device in some cases to prepare for subsequent > patches referencing additional data from that structure. > > Signed-off-by: Thierry Reding > --- > drivers/staging/media/tegra-vde/tegra-vde.c | 63 ++++++++++++--------- > 1 file changed, 36 insertions(+), 27 deletions(-) > > diff --git a/drivers/staging/media/tegra-vde/tegra-vde.c b/drivers/staging/media/tegra-vde/tegra-vde.c > index 41cf86dc5dbd..2496a03fd158 100644 > --- a/drivers/staging/media/tegra-vde/tegra-vde.c > +++ b/drivers/staging/media/tegra-vde/tegra-vde.c > @@ -71,6 +71,7 @@ struct tegra_vde_soc { > }; > > struct tegra_vde { > + struct device *dev; > const struct tegra_vde_soc *soc; > void __iomem *sxe; > void __iomem *bsev; > @@ -644,7 +645,7 @@ static void tegra_vde_detach_and_put_dmabuf(struct dma_buf_attachment *a, > dma_buf_put(dmabuf); > } > > -static int tegra_vde_attach_dmabuf(struct device *dev, > +static int tegra_vde_attach_dmabuf(struct tegra_vde *vde, > int fd, > unsigned long offset, > size_t min_size, > @@ -662,38 +663,40 @@ static int tegra_vde_attach_dmabuf(struct device *dev, > > dmabuf = dma_buf_get(fd); > if (IS_ERR(dmabuf)) { > - dev_err(dev, "Invalid dmabuf FD: %d\n", fd); > + dev_err(vde->dev, "Invalid dmabuf FD: %d\n", fd); > return PTR_ERR(dmabuf); > } > > if (dmabuf->size & (align_size - 1)) { > - dev_err(dev, "Unaligned dmabuf 0x%zX, should be aligned to 0x%zX\n", > + dev_err(vde->dev, > + "Unaligned dmabuf 0x%zX, should be aligned to 0x%zX\n", > dmabuf->size, align_size); > return -EINVAL; > } > > if ((u64)offset + min_size > dmabuf->size) { > - dev_err(dev, "Too small dmabuf size %zu @0x%lX, should be at least %zu\n", > + dev_err(vde->dev, > + "Too small dmabuf size %zu @0x%lX, should be at least %zu\n", > dmabuf->size, offset, min_size); > return -EINVAL; > } > > - attachment = dma_buf_attach(dmabuf, dev); > + attachment = dma_buf_attach(dmabuf, vde->dev); > if (IS_ERR(attachment)) { > - dev_err(dev, "Failed to attach dmabuf\n"); > + dev_err(vde->dev, "Failed to attach dmabuf\n"); > err = PTR_ERR(attachment); > goto err_put; > } > > sgt = dma_buf_map_attachment(attachment, dma_dir); > if (IS_ERR(sgt)) { > - dev_err(dev, "Failed to get dmabufs sg_table\n"); > + dev_err(vde->dev, "Failed to get dmabufs sg_table\n"); > err = PTR_ERR(sgt); > goto err_detach; > } > > if (sgt->nents != 1) { > - dev_err(dev, "Sparse DMA region is unsupported\n"); > + dev_err(vde->dev, "Sparse DMA region is unsupported\n"); > err = -EINVAL; > goto err_unmap; > } > @@ -717,7 +720,7 @@ static int tegra_vde_attach_dmabuf(struct device *dev, > return err; > } > > -static int tegra_vde_attach_dmabufs_to_frame(struct device *dev, > +static int tegra_vde_attach_dmabufs_to_frame(struct tegra_vde *vde, > struct video_frame *frame, > struct tegra_vde_h264_frame *src, > enum dma_data_direction dma_dir, > @@ -726,7 +729,7 @@ static int tegra_vde_attach_dmabufs_to_frame(struct device *dev, > { > int err; > > - err = tegra_vde_attach_dmabuf(dev, src->y_fd, > + err = tegra_vde_attach_dmabuf(vde, src->y_fd, > src->y_offset, lsize, SZ_256, > &frame->y_dmabuf_attachment, > &frame->y_addr, > @@ -735,7 +738,7 @@ static int tegra_vde_attach_dmabufs_to_frame(struct device *dev, > if (err) > return err; > > - err = tegra_vde_attach_dmabuf(dev, src->cb_fd, > + err = tegra_vde_attach_dmabuf(vde, src->cb_fd, > src->cb_offset, csize, SZ_256, > &frame->cb_dmabuf_attachment, > &frame->cb_addr, > @@ -744,7 +747,7 @@ static int tegra_vde_attach_dmabufs_to_frame(struct device *dev, > if (err) > goto err_release_y; > > - err = tegra_vde_attach_dmabuf(dev, src->cr_fd, > + err = tegra_vde_attach_dmabuf(vde, src->cr_fd, > src->cr_offset, csize, SZ_256, > &frame->cr_dmabuf_attachment, > &frame->cr_addr, > @@ -758,7 +761,7 @@ static int tegra_vde_attach_dmabufs_to_frame(struct device *dev, > return 0; > } > > - err = tegra_vde_attach_dmabuf(dev, src->aux_fd, > + err = tegra_vde_attach_dmabuf(vde, src->aux_fd, > src->aux_offset, csize, SZ_256, > &frame->aux_dmabuf_attachment, > &frame->aux_addr, > @@ -770,33 +773,35 @@ static int tegra_vde_attach_dmabufs_to_frame(struct device *dev, > return 0; > > err_release_cr: > - tegra_vde_detach_and_put_dmabuf(frame->cr_dmabuf_attachment, > + tegra_vde_detach_and_put_dmabuf(vde, frame->cr_dmabuf_attachment, > frame->cr_sgt, dma_dir); > err_release_cb: > - tegra_vde_detach_and_put_dmabuf(frame->cb_dmabuf_attachment, > + tegra_vde_detach_and_put_dmabuf(vde, frame->cb_dmabuf_attachment, > frame->cb_sgt, dma_dir); > err_release_y: > - tegra_vde_detach_and_put_dmabuf(frame->y_dmabuf_attachment, > + tegra_vde_detach_and_put_dmabuf(vde, frame->y_dmabuf_attachment, > frame->y_sgt, dma_dir); > > return err; > } > > -static void tegra_vde_release_frame_dmabufs(struct video_frame *frame, > +static void tegra_vde_release_frame_dmabufs(struct tegra_vde *vde, > + struct video_frame *frame, > enum dma_data_direction dma_dir, > bool baseline_profile) > { > if (!baseline_profile) > - tegra_vde_detach_and_put_dmabuf(frame->aux_dmabuf_attachment, > + tegra_vde_detach_and_put_dmabuf(vde, > + frame->aux_dmabuf_attachment, > frame->aux_sgt, dma_dir); > > - tegra_vde_detach_and_put_dmabuf(frame->cr_dmabuf_attachment, > + tegra_vde_detach_and_put_dmabuf(vde, frame->cr_dmabuf_attachment, > frame->cr_sgt, dma_dir); > > - tegra_vde_detach_and_put_dmabuf(frame->cb_dmabuf_attachment, > + tegra_vde_detach_and_put_dmabuf(vde, frame->cb_dmabuf_attachment, > frame->cb_sgt, dma_dir); > > - tegra_vde_detach_and_put_dmabuf(frame->y_dmabuf_attachment, > + tegra_vde_detach_and_put_dmabuf(vde, frame->y_dmabuf_attachment, > frame->y_sgt, dma_dir); > } > > @@ -937,7 +942,7 @@ static int tegra_vde_ioctl_decode_h264(struct tegra_vde *vde, > if (ret) > return ret; > > - ret = tegra_vde_attach_dmabuf(dev, ctx.bitstream_data_fd, > + ret = tegra_vde_attach_dmabuf(vde, ctx.bitstream_data_fd, > ctx.bitstream_data_offset, > SZ_16K, SZ_16K, > &bitstream_data_dmabuf_attachment, > @@ -949,7 +954,7 @@ static int tegra_vde_ioctl_decode_h264(struct tegra_vde *vde, > return ret; > > if (vde->soc->supports_ref_pic_marking) { > - ret = tegra_vde_attach_dmabuf(dev, ctx.secure_fd, > + ret = tegra_vde_attach_dmabuf(vde, ctx.secure_fd, > ctx.secure_offset, 0, SZ_256, > &secure_attachment, > &secure_addr, > @@ -992,7 +997,7 @@ static int tegra_vde_ioctl_decode_h264(struct tegra_vde *vde, > > dma_dir = (i == 0) ? DMA_FROM_DEVICE : DMA_TO_DEVICE; > > - ret = tegra_vde_attach_dmabufs_to_frame(dev, &dpb_frames[i], > + ret = tegra_vde_attach_dmabufs_to_frame(vde, &dpb_frames[i], > &frame, dma_dir, > ctx.baseline_profile, > lsize, csize); > @@ -1081,7 +1086,7 @@ static int tegra_vde_ioctl_decode_h264(struct tegra_vde *vde, > while (i--) { > dma_dir = (i == 0) ? DMA_FROM_DEVICE : DMA_TO_DEVICE; > > - tegra_vde_release_frame_dmabufs(&dpb_frames[i], dma_dir, > + tegra_vde_release_frame_dmabufs(vde, &dpb_frames[i], dma_dir, > ctx.baseline_profile); > } > > @@ -1089,10 +1094,12 @@ static int tegra_vde_ioctl_decode_h264(struct tegra_vde *vde, > > release_bitstream_dmabuf: > if (secure_attachment) > - tegra_vde_detach_and_put_dmabuf(secure_attachment, secure_sgt, > + tegra_vde_detach_and_put_dmabuf(vde, secure_attachment, > + secure_sgt, > DMA_TO_DEVICE); > > - tegra_vde_detach_and_put_dmabuf(bitstream_data_dmabuf_attachment, > + tegra_vde_detach_and_put_dmabuf(vde, > + bitstream_data_dmabuf_attachment, > bitstream_sgt, DMA_TO_DEVICE); > > return ret; > @@ -1190,6 +1197,8 @@ static int tegra_vde_probe(struct platform_device *pdev) > if (!vde) > return -ENOMEM; > > + vde->dev = &pdev->dev; > + > platform_set_drvdata(pdev, vde); > > vde->soc = of_device_get_match_data(&pdev->dev); > This patch fails to compile. drivers/staging/media/tegra-vde/tegra-vde.c: In function ‘tegra_vde_attach_dmabufs_to_frame’: drivers/staging/media/tegra-vde/tegra-vde.c:776:34: error: passing argument 1 of ‘tegra_vde_detach_and_put_dmabuf’ from incompatible pointer type [-Werror=incompatible-pointer-types] tegra_vde_detach_and_put_dmabuf(vde, frame->cr_dmabuf_attachment, ^~~ drivers/staging/media/tegra-vde/tegra-vde.c:637:13: note: expected ‘struct dma_buf_attachment *’ but argument is of type ‘struct tegra_vde *’ static void tegra_vde_detach_and_put_dmabuf(struct dma_buf_attachment *a ... You need to rebase this patch properly.