From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] cec: add cec_adapter to cec_notifier_cec_adap_unregister() Date: Fri, 4 Oct 2019 15:55:41 +0300 Message-ID: <20191004125541.GW1208@intel.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9BF2289C6E for ; Fri, 4 Oct 2019 12:55:45 +0000 (UTC) Content-Disposition: inline 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: Hans Verkuil Cc: Mauro Carvalho Chehab , Dariusz Marcinkiewicz , Maling list - DRI developers , Linux Media Mailing List List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBPY3QgMDQsIDIwMTkgYXQgMDE6MDQ6MjRQTSArMDIwMCwgSGFucyBWZXJrdWlsIHdy b3RlOgo+IEl0IGlzIHBvc3NpYmxlIGZvciBvbmUgSERNSSBjb25uZWN0b3IgdG8gaGF2ZSBtdWx0 aXBsZSBDRUMgYWRhcHRlcnMuIFRoZQo+IHR5cGljYWwgcmVhbC13b3JsZCBzY2VuYXJpbyBpcyB0 aGF0IHdoZXJlIG9uZSBhZGFwdGVyIGlzIHVzZWQgd2hlbiB0aGUgZGV2aWNlCj4gaXMgaW4gc3Rh bmRieSwgYW5kIG9uZSB0aGF0J3MgYmV0dGVyL3NtYXJ0ZXIgd2hlbiB0aGUgZGV2aWNlIGlzIHBv d2VyZWQgdXAuCj4gCj4gVGhlIGNlYy1ub3RpZmllciBjaGFuZ2VzIHdlcmUgbWFkZSB3aXRoIHRo YXQgaW4gbWluZCwgYnV0IEkgbWlzc2VkIHRoYXQgaW4KPiBvcmRlciB0byBzdXBwb3J0IHRoaXMg eW91IG5lZWQgdG8gdGVsbCBjZWNfbm90aWZpZXJfY2VjX2FkYXBfdW5yZWdpc3RlcigpCj4gd2hp Y2ggYWRhcHRlciB5b3UgYXJlIHVucmVnaXN0ZXJpbmcgZnJvbSB0aGUgbm90aWZpZXIuCj4gCj4g QWRkIHRoaXMgYWRkaXRpb25hbCBhcmd1bWVudC4gSXQgaXMgY3VycmVudGx5IHVudXNlZCwgYnV0 IG9uY2UgYWxsIGRyaXZlcnMKPiB1c2UgdGhpcywgdGhlIENFQyBjb3JlIHdpbGwgYmUgYWRhcHRl ZCBmb3IgdGhlc2UgdXNlLWNhc2VzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEhhbnMgVmVya3VpbCA8 aHZlcmt1aWwtY2lzY29AeHM0YWxsLm5sPgo+IC0tLQo+IFRoaXMgcGF0Y2ggc2hvdWxkIGdvIGlu IHZpYSB0aGUgZHJtIHN1YnN5c3RlbSBzaW5jZSBhbGwgQ0VDIGFkYXB0ZXJzIGluIHRoZQo+IGRy bSBzdWJzeXN0ZW0gaGF2ZSBiZWVuIGNvbnZlcnRlZCB0byB1c2UgY2VjX25vdGlmaWVyX2NlY19h ZGFwX3VucmVnaXN0ZXIoKS4KPiBUaGUgbWVkaWEgc3Vic3lzdGVtIHN0aWxsIGhhcyBvbGRlciBk cm0gZHJpdmVycyB0aGF0IHdlcmVuJ3QgY29udmVydGVkIHRvIHVzZQo+IGNlY19ub3RpZmllcl9j ZWNfYWRhcF91bnJlZ2lzdGVyKCkuCj4gCj4gVGhpcyB3aWxsIG9ubHkgYmUgYSBwcm9ibGVtIGlm IGEgbmV3IENFQyBhZGFwdGVyIGRyaXZlciBpcyBhZGRlZCB0byB0aGUgbWVkaWEKPiBzdWJzeXN0 ZW0gZm9yIHY1LjUsIGJ1dCBJIGFtIG5vdCBhd2FyZSBvZiBhbnkgcGxhbnMgZm9yIHRoYXQuIFNo b3VsZCBpdCBoYXBwZW4sCj4gdGhlbiB0aGF0IGp1c3QgbWVhbnMgdGhhdCB0aGUgbWVkaWEgc3Vi c3lzdGVtIG5lZWRzIHRvIHJlc29sdmUgYSBmYWlybHkgdHJpdmlhbAo+IG1lcmdlIGNvbmZsaWN0 Lgo+IAo+IFZpbGxlLCBNYXVybywgY2FuIHlvdSByZXZpZXcvYWNrPwoKTG9va3MgaGFybWxlc3Mg ZW5vdWdoIHRvIG1lIDopCgpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KCj4gLS0tCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9icmlkZ2Uvc3lub3BzeXMvZHctaGRtaS1jZWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uv c3lub3BzeXMvZHctaGRtaS1jZWMuYwo+IGluZGV4IGFjMWUwMDFkMDg4Mi4uNzBhYjRmYmRjMjNl IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRtaS1j ZWMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRtaS1jZWMu Ywo+IEBAIC0yODUsNyArMjg1LDcgQEAgc3RhdGljIGludCBkd19oZG1pX2NlY19wcm9iZShzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+IAo+ICAJcmV0ID0gY2VjX3JlZ2lzdGVyX2FkYXB0 ZXIoY2VjLT5hZGFwLCBwZGV2LT5kZXYucGFyZW50KTsKPiAgCWlmIChyZXQgPCAwKSB7Cj4gLQkJ Y2VjX25vdGlmaWVyX2NlY19hZGFwX3VucmVnaXN0ZXIoY2VjLT5ub3RpZnkpOwo+ICsJCWNlY19u b3RpZmllcl9jZWNfYWRhcF91bnJlZ2lzdGVyKGNlYy0+bm90aWZ5LCBjZWMtPmFkYXApOwo+ICAJ CXJldHVybiByZXQ7Cj4gIAl9Cj4gCj4gQEAgLTMwMiw3ICszMDIsNyBAQCBzdGF0aWMgaW50IGR3 X2hkbWlfY2VjX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICB7Cj4gIAlz dHJ1Y3QgZHdfaGRtaV9jZWMgKmNlYyA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwo+IAo+ IC0JY2VjX25vdGlmaWVyX2NlY19hZGFwX3VucmVnaXN0ZXIoY2VjLT5ub3RpZnkpOwo+ICsJY2Vj X25vdGlmaWVyX2NlY19hZGFwX3VucmVnaXN0ZXIoY2VjLT5ub3RpZnksIGNlYy0+YWRhcCk7Cj4g IAljZWNfdW5yZWdpc3Rlcl9hZGFwdGVyKGNlYy0+YWRhcCk7Cj4gCj4gIAlyZXR1cm4gMDsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2kyYy90ZGE5OTUwLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTJjL3RkYTk5NTAuYwo+IGluZGV4IGE1YTc1YmRlYjdhNS4uNWIwM2ZkZDFlYWE0IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pMmMvdGRhOTk1MC5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2kyYy90ZGE5OTUwLmMKPiBAQCAtNDY1LDcgKzQ2NSw3IEBAIHN0YXRpYyBpbnQgdGRh OTk1MF9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAo+IAo+ICAJcmV0ID0gY2VjX3Jl Z2lzdGVyX2FkYXB0ZXIocHJpdi0+YWRhcCwgcHJpdi0+aGRtaSk7Cj4gIAlpZiAocmV0IDwgMCkg ewo+IC0JCWNlY19ub3RpZmllcl9jZWNfYWRhcF91bnJlZ2lzdGVyKHByaXYtPm5vdGlmeSk7Cj4g KwkJY2VjX25vdGlmaWVyX2NlY19hZGFwX3VucmVnaXN0ZXIocHJpdi0+bm90aWZ5LCBwcml2LT5h ZGFwKTsKPiAgCQlyZXR1cm4gcmV0Owo+ICAJfQo+IAo+IEBAIC00ODIsNyArNDgyLDcgQEAgc3Rh dGljIGludCB0ZGE5OTUwX3JlbW92ZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQo+ICB7Cj4g IAlzdHJ1Y3QgdGRhOTk1MF9wcml2ICpwcml2ID0gaTJjX2dldF9jbGllbnRkYXRhKGNsaWVudCk7 Cj4gCj4gLQljZWNfbm90aWZpZXJfY2VjX2FkYXBfdW5yZWdpc3Rlcihwcml2LT5ub3RpZnkpOwo+ ICsJY2VjX25vdGlmaWVyX2NlY19hZGFwX3VucmVnaXN0ZXIocHJpdi0+bm90aWZ5LCBwcml2LT5h ZGFwKTsKPiAgCWNlY191bnJlZ2lzdGVyX2FkYXB0ZXIocHJpdi0+YWRhcCk7Cj4gCj4gIAlyZXR1 cm4gMDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9jZWMvY2VjLW5vdGlmaWVyLmMgYi9k cml2ZXJzL21lZGlhL2NlYy9jZWMtbm90aWZpZXIuYwo+IGluZGV4IDRkODJhNTUyMjA3Mi4uN2Nm NDJiMTMzZGJjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbWVkaWEvY2VjL2NlYy1ub3RpZmllci5j Cj4gKysrIGIvZHJpdmVycy9tZWRpYS9jZWMvY2VjLW5vdGlmaWVyLmMKPiBAQCAtMTUzLDEzICsx NTMsMTQgQEAgY2VjX25vdGlmaWVyX2NlY19hZGFwX3JlZ2lzdGVyKHN0cnVjdCBkZXZpY2UgKmhk bWlfZGV2LCBjb25zdCBjaGFyICpjb25uX25hbWUsCj4gIH0KPiAgRVhQT1JUX1NZTUJPTF9HUEwo Y2VjX25vdGlmaWVyX2NlY19hZGFwX3JlZ2lzdGVyKTsKPiAKPiAtdm9pZCBjZWNfbm90aWZpZXJf Y2VjX2FkYXBfdW5yZWdpc3RlcihzdHJ1Y3QgY2VjX25vdGlmaWVyICpuKQo+ICt2b2lkIGNlY19u b3RpZmllcl9jZWNfYWRhcF91bnJlZ2lzdGVyKHN0cnVjdCBjZWNfbm90aWZpZXIgKm4sCj4gKwkJ CQkgICAgICBzdHJ1Y3QgY2VjX2FkYXB0ZXIgKmFkYXApCj4gIHsKPiAgCWlmICghbikKPiAgCQly ZXR1cm47Cj4gCj4gIAltdXRleF9sb2NrKCZuLT5sb2NrKTsKPiAtCW4tPmNlY19hZGFwLT5ub3Rp ZmllciA9IE5VTEw7Cj4gKwlhZGFwLT5ub3RpZmllciA9IE5VTEw7CgpNYXliZSBhc3NlcnQgdGhh dCB0aGUgbm90aWZpZXIgYW5kIGFkYXB0ZXIga25vdyBlYWNoIG90aGVyPwoKPiAgCW4tPmNlY19h ZGFwID0gTlVMTDsKPiAgCW4tPmNhbGxiYWNrID0gTlVMTDsKPiAgCW11dGV4X3VubG9jaygmbi0+ bG9jayk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vY3Jvcy1lYy1jZWMv Y3Jvcy1lYy1jZWMuYyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vY3Jvcy1lYy1jZWMvY3Jvcy1l Yy1jZWMuYwo+IGluZGV4IDRhM2IzODEwZmQ4OS4uZjA0OGU4OTk0Nzg1IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vY3Jvcy1lYy1jZWMvY3Jvcy1lYy1jZWMuYwo+ICsrKyBi L2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vY3Jvcy1lYy1jZWMvY3Jvcy1lYy1jZWMuYwo+IEBAIC0z MTQsNyArMzE0LDggQEAgc3RhdGljIGludCBjcm9zX2VjX2NlY19wcm9iZShzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2KQo+ICAJcmV0dXJuIDA7Cj4gCj4gIG91dF9wcm9iZV9ub3RpZnk6Cj4g LQljZWNfbm90aWZpZXJfY2VjX2FkYXBfdW5yZWdpc3Rlcihjcm9zX2VjX2NlYy0+bm90aWZ5KTsK PiArCWNlY19ub3RpZmllcl9jZWNfYWRhcF91bnJlZ2lzdGVyKGNyb3NfZWNfY2VjLT5ub3RpZnks Cj4gKwkJCQkJIGNyb3NfZWNfY2VjLT5hZGFwKTsKPiAgb3V0X3Byb2JlX2FkYXB0ZXI6Cj4gIAlj ZWNfZGVsZXRlX2FkYXB0ZXIoY3Jvc19lY19jZWMtPmFkYXApOwo+ICAJcmV0dXJuIHJldDsKPiBA QCAtMzM1LDcgKzMzNiw4IEBAIHN0YXRpYyBpbnQgY3Jvc19lY19jZWNfcmVtb3ZlKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIAkJcmV0dXJuIHJldDsKPiAgCX0KPiAKPiAtCWNlY19u b3RpZmllcl9jZWNfYWRhcF91bnJlZ2lzdGVyKGNyb3NfZWNfY2VjLT5ub3RpZnkpOwo+ICsJY2Vj X25vdGlmaWVyX2NlY19hZGFwX3VucmVnaXN0ZXIoY3Jvc19lY19jZWMtPm5vdGlmeSwKPiArCQkJ CQkgY3Jvc19lY19jZWMtPmFkYXApOwo+ICAJY2VjX3VucmVnaXN0ZXJfYWRhcHRlcihjcm9zX2Vj X2NlYy0+YWRhcCk7Cj4gCj4gIAlyZXR1cm4gMDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRp YS9wbGF0Zm9ybS9tZXNvbi9hby1jZWMtZzEyYS5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9t ZXNvbi9hby1jZWMtZzEyYS5jCj4gaW5kZXggM2IzOWU4NzUyOTJlLi43MGY4NzViNGEwMWUgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9tZXNvbi9hby1jZWMtZzEyYS5jCj4g KysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9tZXNvbi9hby1jZWMtZzEyYS5jCj4gQEAgLTcz Niw3ICs3MzYsNyBAQCBzdGF0aWMgaW50IG1lc29uX2FvX2NlY19nMTJhX3Byb2JlKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIAljbGtfZGlzYWJsZV91bnByZXBhcmUoYW9fY2VjLT5j b3JlKTsKPiAKPiAgb3V0X3Byb2JlX25vdGlmeToKPiAtCWNlY19ub3RpZmllcl9jZWNfYWRhcF91 bnJlZ2lzdGVyKGFvX2NlYy0+bm90aWZ5KTsKPiArCWNlY19ub3RpZmllcl9jZWNfYWRhcF91bnJl Z2lzdGVyKGFvX2NlYy0+bm90aWZ5LCBhb19jZWMtPmFkYXApOwo+IAo+ICBvdXRfcHJvYmVfYWRh cHRlcjoKPiAgCWNlY19kZWxldGVfYWRhcHRlcihhb19jZWMtPmFkYXApOwo+IEBAIC03NTIsNyAr NzUyLDcgQEAgc3RhdGljIGludCBtZXNvbl9hb19jZWNfZzEyYV9yZW1vdmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKPiAKPiAgCWNsa19kaXNhYmxlX3VucHJlcGFyZShhb19jZWMtPmNv cmUpOwo+IAo+IC0JY2VjX25vdGlmaWVyX2NlY19hZGFwX3VucmVnaXN0ZXIoYW9fY2VjLT5ub3Rp ZnkpOwo+ICsJY2VjX25vdGlmaWVyX2NlY19hZGFwX3VucmVnaXN0ZXIoYW9fY2VjLT5ub3RpZnks IGFvX2NlYy0+YWRhcCk7Cj4gCj4gIAljZWNfdW5yZWdpc3Rlcl9hZGFwdGVyKGFvX2NlYy0+YWRh cCk7Cj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vbWVzb24vYW8tY2Vj LmMgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL21lc29uL2FvLWNlYy5jCj4gaW5kZXggNjRlZDU0 OWJmMDEyLi45Mjg1OWE2ZDAwNmYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9y bS9tZXNvbi9hby1jZWMuYwo+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vbWVzb24vYW8t Y2VjLmMKPiBAQCAtNjg4LDcgKzY4OCw3IEBAIHN0YXRpYyBpbnQgbWVzb25fYW9fY2VjX3Byb2Jl KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIAljbGtfZGlzYWJsZV91bnByZXBhcmUo YW9fY2VjLT5jb3JlKTsKPiAKPiAgb3V0X3Byb2JlX25vdGlmeToKPiAtCWNlY19ub3RpZmllcl9j ZWNfYWRhcF91bnJlZ2lzdGVyKGFvX2NlYy0+bm90aWZ5KTsKPiArCWNlY19ub3RpZmllcl9jZWNf YWRhcF91bnJlZ2lzdGVyKGFvX2NlYy0+bm90aWZ5LCBhb19jZWMtPmFkYXApOwo+IAo+ICBvdXRf cHJvYmVfYWRhcHRlcjoKPiAgCWNlY19kZWxldGVfYWRhcHRlcihhb19jZWMtPmFkYXApOwo+IEBA IC03MDQsNyArNzA0LDcgQEAgc3RhdGljIGludCBtZXNvbl9hb19jZWNfcmVtb3ZlKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gCj4gIAljbGtfZGlzYWJsZV91bnByZXBhcmUoYW9fY2Vj LT5jb3JlKTsKPiAKPiAtCWNlY19ub3RpZmllcl9jZWNfYWRhcF91bnJlZ2lzdGVyKGFvX2NlYy0+ bm90aWZ5KTsKPiArCWNlY19ub3RpZmllcl9jZWNfYWRhcF91bnJlZ2lzdGVyKGFvX2NlYy0+bm90 aWZ5LCBhb19jZWMtPmFkYXApOwo+ICAJY2VjX3VucmVnaXN0ZXJfYWRhcHRlcihhb19jZWMtPmFk YXApOwo+IAo+ICAJcmV0dXJuIDA7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZv cm0vczVwLWNlYy9zNXBfY2VjLmMgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3M1cC1jZWMvczVw X2NlYy5jCj4gaW5kZXggNmRkY2MzNWIwYmJkLi4yYTNlN2ZmZWZlMGEgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zNXAtY2VjL3M1cF9jZWMuYwo+ICsrKyBiL2RyaXZlcnMv bWVkaWEvcGxhdGZvcm0vczVwLWNlYy9zNXBfY2VjLmMKPiBAQCAtMjM5LDcgKzIzOSw3IEBAIHN0 YXRpYyBpbnQgczVwX2NlY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAJ cmV0dXJuIDA7Cj4gCj4gIGVycl9ub3RpZmllcjoKPiAtCWNlY19ub3RpZmllcl9jZWNfYWRhcF91 bnJlZ2lzdGVyKGNlYy0+bm90aWZpZXIpOwo+ICsJY2VjX25vdGlmaWVyX2NlY19hZGFwX3VucmVn aXN0ZXIoY2VjLT5ub3RpZmllciwgY2VjLT5hZGFwKTsKPiAKPiAgZXJyX2RlbGV0ZV9hZGFwdGVy Ogo+ICAJY2VjX2RlbGV0ZV9hZGFwdGVyKGNlYy0+YWRhcCk7Cj4gQEAgLTI1MCw3ICsyNTAsNyBA QCBzdGF0aWMgaW50IHM1cF9jZWNfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp Cj4gIHsKPiAgCXN0cnVjdCBzNXBfY2VjX2RldiAqY2VjID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEo cGRldik7Cj4gCj4gLQljZWNfbm90aWZpZXJfY2VjX2FkYXBfdW5yZWdpc3RlcihjZWMtPm5vdGlm aWVyKTsKPiArCWNlY19ub3RpZmllcl9jZWNfYWRhcF91bnJlZ2lzdGVyKGNlYy0+bm90aWZpZXIs IGNlYy0+YWRhcCk7Cj4gIAljZWNfdW5yZWdpc3Rlcl9hZGFwdGVyKGNlYy0+YWRhcCk7Cj4gIAlw bV9ydW50aW1lX2Rpc2FibGUoJnBkZXYtPmRldik7Cj4gIAlyZXR1cm4gMDsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zZWNvLWNlYy9zZWNvLWNlYy5jIGIvZHJpdmVycy9t ZWRpYS9wbGF0Zm9ybS9zZWNvLWNlYy9zZWNvLWNlYy5jCj4gaW5kZXggOWNkNjBmZTE4NjdjLi41 NGIwZDUxZTljNTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zZWNvLWNl Yy9zZWNvLWNlYy5jCj4gKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9zZWNvLWNlYy9zZWNv LWNlYy5jCj4gQEAgLTY3MSw3ICs2NzEsNyBAQCBzdGF0aWMgaW50IHNlY29jZWNfcHJvYmUoc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgCXJldHVybiByZXQ7Cj4gCj4gIGVycl9ub3Rp ZmllcjoKPiAtCWNlY19ub3RpZmllcl9jZWNfYWRhcF91bnJlZ2lzdGVyKHNlY29jZWMtPm5vdGlm aWVyKTsKPiArCWNlY19ub3RpZmllcl9jZWNfYWRhcF91bnJlZ2lzdGVyKHNlY29jZWMtPm5vdGlm aWVyLCBzZWNvY2VjLT5jZWNfYWRhcCk7Cj4gIGVycl9kZWxldGVfYWRhcHRlcjoKPiAgCWNlY19k ZWxldGVfYWRhcHRlcihzZWNvY2VjLT5jZWNfYWRhcCk7Cj4gIGVycjoKPiBAQCAtNjkyLDcgKzY5 Miw3IEBAIHN0YXRpYyBpbnQgc2Vjb2NlY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKPiAKPiAgCQlkZXZfZGJnKCZwZGV2LT5kZXYsICJJUiBkaXNhYmxlZCIpOwo+ICAJfQo+ IC0JY2VjX25vdGlmaWVyX2NlY19hZGFwX3VucmVnaXN0ZXIoc2Vjb2NlYy0+bm90aWZpZXIpOwo+ ICsJY2VjX25vdGlmaWVyX2NlY19hZGFwX3VucmVnaXN0ZXIoc2Vjb2NlYy0+bm90aWZpZXIsIHNl Y29jZWMtPmNlY19hZGFwKTsKPiAgCWNlY191bnJlZ2lzdGVyX2FkYXB0ZXIoc2Vjb2NlYy0+Y2Vj X2FkYXApOwo+IAo+ICAJcmVsZWFzZV9yZWdpb24oQlJBX1NNQl9CQVNFX0FERFIsIDcpOwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N0aS9jZWMvc3RpaC1jZWMuYyBiL2Ry aXZlcnMvbWVkaWEvcGxhdGZvcm0vc3RpL2NlYy9zdGloLWNlYy5jCj4gaW5kZXggODExOGM3MzY1 ZDNmLi5mMGM3M2U2NGI1ODYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9z dGkvY2VjL3N0aWgtY2VjLmMKPiArKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3N0aS9jZWMv c3RpaC1jZWMuYwo+IEBAIC0zNTksNyArMzU5LDcgQEAgc3RhdGljIGludCBzdGloX2NlY19wcm9i ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAJcmV0dXJuIDA7Cj4gCj4gIGVycl9u b3RpZmllcjoKPiAtCWNlY19ub3RpZmllcl9jZWNfYWRhcF91bnJlZ2lzdGVyKGNlYy0+bm90aWZp ZXIpOwo+ICsJY2VjX25vdGlmaWVyX2NlY19hZGFwX3VucmVnaXN0ZXIoY2VjLT5ub3RpZmllciwg Y2VjLT5hZGFwKTsKPiAKPiAgZXJyX2RlbGV0ZV9hZGFwdGVyOgo+ICAJY2VjX2RlbGV0ZV9hZGFw dGVyKGNlYy0+YWRhcCk7Cj4gQEAgLTM3MCw3ICszNzAsNyBAQCBzdGF0aWMgaW50IHN0aWhfY2Vj X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICB7Cj4gIAlzdHJ1Y3Qgc3Rp aF9jZWMgKmNlYyA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwo+IAo+IC0JY2VjX25vdGlm aWVyX2NlY19hZGFwX3VucmVnaXN0ZXIoY2VjLT5ub3RpZmllcik7Cj4gKwljZWNfbm90aWZpZXJf Y2VjX2FkYXBfdW5yZWdpc3RlcihjZWMtPm5vdGlmaWVyLCBjZWMtPmFkYXApOwo+ICAJY2VjX3Vu cmVnaXN0ZXJfYWRhcHRlcihjZWMtPmFkYXApOwo+IAo+ICAJcmV0dXJuIDA7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vdGVncmEtY2VjL3RlZ3JhX2NlYy5jIGIvZHJpdmVy cy9tZWRpYS9wbGF0Zm9ybS90ZWdyYS1jZWMvdGVncmFfY2VjLmMKPiBpbmRleCBhNjMyNjAyMTMx ZjIuLmE5OWNhYWM1OWY0NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3Rl Z3JhLWNlYy90ZWdyYV9jZWMuYwo+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vdGVncmEt Y2VjL3RlZ3JhX2NlYy5jCj4gQEAgLTQwOSw3ICs0MDksNyBAQCBzdGF0aWMgaW50IHRlZ3JhX2Nl Y19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAJcmV0dXJuIDA7Cj4gCj4g IGVycl9ub3RpZmllcjoKPiAtCWNlY19ub3RpZmllcl9jZWNfYWRhcF91bnJlZ2lzdGVyKGNlYy0+ bm90aWZpZXIpOwo+ICsJY2VjX25vdGlmaWVyX2NlY19hZGFwX3VucmVnaXN0ZXIoY2VjLT5ub3Rp ZmllciwgY2VjLT5hZGFwKTsKPiAgZXJyX2FkYXB0ZXI6Cj4gIAljZWNfZGVsZXRlX2FkYXB0ZXIo Y2VjLT5hZGFwKTsKPiAgZXJyX2NsazoKPiBAQCAtNDIzLDcgKzQyMyw3IEBAIHN0YXRpYyBpbnQg dGVncmFfY2VjX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+IAo+ICAJY2xr X2Rpc2FibGVfdW5wcmVwYXJlKGNlYy0+Y2xrKTsKPiAKPiAtCWNlY19ub3RpZmllcl9jZWNfYWRh cF91bnJlZ2lzdGVyKGNlYy0+bm90aWZpZXIpOwo+ICsJY2VjX25vdGlmaWVyX2NlY19hZGFwX3Vu cmVnaXN0ZXIoY2VjLT5ub3RpZmllciwgY2VjLT5hZGFwKTsKPiAgCWNlY191bnJlZ2lzdGVyX2Fk YXB0ZXIoY2VjLT5hZGFwKTsKPiAKPiAgCXJldHVybiAwOwo+IGRpZmYgLS1naXQgYS9pbmNsdWRl L21lZGlhL2NlYy1ub3RpZmllci5oIGIvaW5jbHVkZS9tZWRpYS9jZWMtbm90aWZpZXIuaAo+IGlu ZGV4IGYxNjFmOGE0OTNhYy4uOTg1YWZlYTFlZTM2IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvbWVk aWEvY2VjLW5vdGlmaWVyLmgKPiArKysgYi9pbmNsdWRlL21lZGlhL2NlYy1ub3RpZmllci5oCj4g QEAgLTkzLDggKzkzLDEwIEBAIGNlY19ub3RpZmllcl9jZWNfYWRhcF9yZWdpc3RlcihzdHJ1Y3Qg ZGV2aWNlICpoZG1pX2RldiwgY29uc3QgY2hhciAqY29ubl9uYW1lLAo+ICAgKiBjZWNfbm90aWZp ZXJfY2VjX2FkYXBfdW5yZWdpc3RlciAtIGRlY3JlYXNlIHJlZmNvdW50IGFuZCBkZWxldGUgd2hl biB0aGUKPiAgICogcmVmY291bnQgcmVhY2hlcyAwLgo+ICAgKiBAbjogbm90aWZpZXIuIElmIE5V TEwsIHRoZW4gdGhpcyBmdW5jdGlvbiBkb2VzIG5vdGhpbmcuCj4gKyAqIEBhZGFwOiB0aGUgY2Vj IGFkYXB0ZXIgdGhhdCByZWdpc3RlcmVkIHRoaXMgbm90aWZpZXIuCj4gICAqLwo+IC12b2lkIGNl Y19ub3RpZmllcl9jZWNfYWRhcF91bnJlZ2lzdGVyKHN0cnVjdCBjZWNfbm90aWZpZXIgKm4pOwo+ ICt2b2lkIGNlY19ub3RpZmllcl9jZWNfYWRhcF91bnJlZ2lzdGVyKHN0cnVjdCBjZWNfbm90aWZp ZXIgKm4sCj4gKwkJCQkgICAgICBzdHJ1Y3QgY2VjX2FkYXB0ZXIgKmFkYXApOwo+IAo+ICAvKioK PiAgICogY2VjX25vdGlmaWVyX3NldF9waHlzX2FkZHIgLSBzZXQgYSBuZXcgcGh5c2ljYWwgYWRk cmVzcy4KPiBAQCAtMTYwLDcgKzE2Miw4IEBAIGNlY19ub3RpZmllcl9jZWNfYWRhcF9yZWdpc3Rl cihzdHJ1Y3QgZGV2aWNlICpoZG1pX2RldiwgY29uc3QgY2hhciAqY29ubl9uYW1lLAo+ICAJcmV0 dXJuIChzdHJ1Y3QgY2VjX25vdGlmaWVyICopMHhkZWFkZmVlZDsKPiAgfQo+IAo+IC1zdGF0aWMg aW5saW5lIHZvaWQgY2VjX25vdGlmaWVyX2NlY19hZGFwX3VucmVnaXN0ZXIoc3RydWN0IGNlY19u b3RpZmllciAqbikKPiArc3RhdGljIGlubGluZSB2b2lkIGNlY19ub3RpZmllcl9jZWNfYWRhcF91 bnJlZ2lzdGVyKHN0cnVjdCBjZWNfbm90aWZpZXIgKm4sCj4gKwkJCQkJCSAgICBzdHJ1Y3QgY2Vj X2FkYXB0ZXIgKmFkYXApCj4gIHsKPiAgfQoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFp bGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 87DBFC47404 for ; Fri, 4 Oct 2019 12:55:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 48742222BE for ; Fri, 4 Oct 2019 12:55:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387616AbfJDMzp (ORCPT ); Fri, 4 Oct 2019 08:55:45 -0400 Received: from mga01.intel.com ([192.55.52.88]:36540 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387440AbfJDMzp (ORCPT ); Fri, 4 Oct 2019 08:55:45 -0400 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Oct 2019 05:55:45 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.67,256,1566889200"; d="scan'208";a="276036565" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.174]) by orsmga001.jf.intel.com with SMTP; 04 Oct 2019 05:55:41 -0700 Received: by stinkbox (sSMTP sendmail emulation); Fri, 04 Oct 2019 15:55:41 +0300 Date: Fri, 4 Oct 2019 15:55:41 +0300 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Hans Verkuil Cc: Maling list - DRI developers , Linux Media Mailing List , Dariusz Marcinkiewicz , Mauro Carvalho Chehab Subject: Re: [PATCH] cec: add cec_adapter to cec_notifier_cec_adap_unregister() Message-ID: <20191004125541.GW1208@intel.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org On Fri, Oct 04, 2019 at 01:04:24PM +0200, Hans Verkuil wrote: > It is possible for one HDMI connector to have multiple CEC adapters. The > typical real-world scenario is that where one adapter is used when the device > is in standby, and one that's better/smarter when the device is powered up. > > The cec-notifier changes were made with that in mind, but I missed that in > order to support this you need to tell cec_notifier_cec_adap_unregister() > which adapter you are unregistering from the notifier. > > Add this additional argument. It is currently unused, but once all drivers > use this, the CEC core will be adapted for these use-cases. > > Signed-off-by: Hans Verkuil > --- > This patch should go in via the drm subsystem since all CEC adapters in the > drm subsystem have been converted to use cec_notifier_cec_adap_unregister(). > The media subsystem still has older drm drivers that weren't converted to use > cec_notifier_cec_adap_unregister(). > > This will only be a problem if a new CEC adapter driver is added to the media > subsystem for v5.5, but I am not aware of any plans for that. Should it happen, > then that just means that the media subsystem needs to resolve a fairly trivial > merge conflict. > > Ville, Mauro, can you review/ack? Looks harmless enough to me :) Reviewed-by: Ville Syrjälä > --- > diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c > index ac1e001d0882..70ab4fbdc23e 100644 > --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c > +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c > @@ -285,7 +285,7 @@ static int dw_hdmi_cec_probe(struct platform_device *pdev) > > ret = cec_register_adapter(cec->adap, pdev->dev.parent); > if (ret < 0) { > - cec_notifier_cec_adap_unregister(cec->notify); > + cec_notifier_cec_adap_unregister(cec->notify, cec->adap); > return ret; > } > > @@ -302,7 +302,7 @@ static int dw_hdmi_cec_remove(struct platform_device *pdev) > { > struct dw_hdmi_cec *cec = platform_get_drvdata(pdev); > > - cec_notifier_cec_adap_unregister(cec->notify); > + cec_notifier_cec_adap_unregister(cec->notify, cec->adap); > cec_unregister_adapter(cec->adap); > > return 0; > diff --git a/drivers/gpu/drm/i2c/tda9950.c b/drivers/gpu/drm/i2c/tda9950.c > index a5a75bdeb7a5..5b03fdd1eaa4 100644 > --- a/drivers/gpu/drm/i2c/tda9950.c > +++ b/drivers/gpu/drm/i2c/tda9950.c > @@ -465,7 +465,7 @@ static int tda9950_probe(struct i2c_client *client, > > ret = cec_register_adapter(priv->adap, priv->hdmi); > if (ret < 0) { > - cec_notifier_cec_adap_unregister(priv->notify); > + cec_notifier_cec_adap_unregister(priv->notify, priv->adap); > return ret; > } > > @@ -482,7 +482,7 @@ static int tda9950_remove(struct i2c_client *client) > { > struct tda9950_priv *priv = i2c_get_clientdata(client); > > - cec_notifier_cec_adap_unregister(priv->notify); > + cec_notifier_cec_adap_unregister(priv->notify, priv->adap); > cec_unregister_adapter(priv->adap); > > return 0; > diff --git a/drivers/media/cec/cec-notifier.c b/drivers/media/cec/cec-notifier.c > index 4d82a5522072..7cf42b133dbc 100644 > --- a/drivers/media/cec/cec-notifier.c > +++ b/drivers/media/cec/cec-notifier.c > @@ -153,13 +153,14 @@ cec_notifier_cec_adap_register(struct device *hdmi_dev, const char *conn_name, > } > EXPORT_SYMBOL_GPL(cec_notifier_cec_adap_register); > > -void cec_notifier_cec_adap_unregister(struct cec_notifier *n) > +void cec_notifier_cec_adap_unregister(struct cec_notifier *n, > + struct cec_adapter *adap) > { > if (!n) > return; > > mutex_lock(&n->lock); > - n->cec_adap->notifier = NULL; > + adap->notifier = NULL; Maybe assert that the notifier and adapter know each other? > n->cec_adap = NULL; > n->callback = NULL; > mutex_unlock(&n->lock); > diff --git a/drivers/media/platform/cros-ec-cec/cros-ec-cec.c b/drivers/media/platform/cros-ec-cec/cros-ec-cec.c > index 4a3b3810fd89..f048e8994785 100644 > --- a/drivers/media/platform/cros-ec-cec/cros-ec-cec.c > +++ b/drivers/media/platform/cros-ec-cec/cros-ec-cec.c > @@ -314,7 +314,8 @@ static int cros_ec_cec_probe(struct platform_device *pdev) > return 0; > > out_probe_notify: > - cec_notifier_cec_adap_unregister(cros_ec_cec->notify); > + cec_notifier_cec_adap_unregister(cros_ec_cec->notify, > + cros_ec_cec->adap); > out_probe_adapter: > cec_delete_adapter(cros_ec_cec->adap); > return ret; > @@ -335,7 +336,8 @@ static int cros_ec_cec_remove(struct platform_device *pdev) > return ret; > } > > - cec_notifier_cec_adap_unregister(cros_ec_cec->notify); > + cec_notifier_cec_adap_unregister(cros_ec_cec->notify, > + cros_ec_cec->adap); > cec_unregister_adapter(cros_ec_cec->adap); > > return 0; > diff --git a/drivers/media/platform/meson/ao-cec-g12a.c b/drivers/media/platform/meson/ao-cec-g12a.c > index 3b39e875292e..70f875b4a01e 100644 > --- a/drivers/media/platform/meson/ao-cec-g12a.c > +++ b/drivers/media/platform/meson/ao-cec-g12a.c > @@ -736,7 +736,7 @@ static int meson_ao_cec_g12a_probe(struct platform_device *pdev) > clk_disable_unprepare(ao_cec->core); > > out_probe_notify: > - cec_notifier_cec_adap_unregister(ao_cec->notify); > + cec_notifier_cec_adap_unregister(ao_cec->notify, ao_cec->adap); > > out_probe_adapter: > cec_delete_adapter(ao_cec->adap); > @@ -752,7 +752,7 @@ static int meson_ao_cec_g12a_remove(struct platform_device *pdev) > > clk_disable_unprepare(ao_cec->core); > > - cec_notifier_cec_adap_unregister(ao_cec->notify); > + cec_notifier_cec_adap_unregister(ao_cec->notify, ao_cec->adap); > > cec_unregister_adapter(ao_cec->adap); > > diff --git a/drivers/media/platform/meson/ao-cec.c b/drivers/media/platform/meson/ao-cec.c > index 64ed549bf012..92859a6d006f 100644 > --- a/drivers/media/platform/meson/ao-cec.c > +++ b/drivers/media/platform/meson/ao-cec.c > @@ -688,7 +688,7 @@ static int meson_ao_cec_probe(struct platform_device *pdev) > clk_disable_unprepare(ao_cec->core); > > out_probe_notify: > - cec_notifier_cec_adap_unregister(ao_cec->notify); > + cec_notifier_cec_adap_unregister(ao_cec->notify, ao_cec->adap); > > out_probe_adapter: > cec_delete_adapter(ao_cec->adap); > @@ -704,7 +704,7 @@ static int meson_ao_cec_remove(struct platform_device *pdev) > > clk_disable_unprepare(ao_cec->core); > > - cec_notifier_cec_adap_unregister(ao_cec->notify); > + cec_notifier_cec_adap_unregister(ao_cec->notify, ao_cec->adap); > cec_unregister_adapter(ao_cec->adap); > > return 0; > diff --git a/drivers/media/platform/s5p-cec/s5p_cec.c b/drivers/media/platform/s5p-cec/s5p_cec.c > index 6ddcc35b0bbd..2a3e7ffefe0a 100644 > --- a/drivers/media/platform/s5p-cec/s5p_cec.c > +++ b/drivers/media/platform/s5p-cec/s5p_cec.c > @@ -239,7 +239,7 @@ static int s5p_cec_probe(struct platform_device *pdev) > return 0; > > err_notifier: > - cec_notifier_cec_adap_unregister(cec->notifier); > + cec_notifier_cec_adap_unregister(cec->notifier, cec->adap); > > err_delete_adapter: > cec_delete_adapter(cec->adap); > @@ -250,7 +250,7 @@ static int s5p_cec_remove(struct platform_device *pdev) > { > struct s5p_cec_dev *cec = platform_get_drvdata(pdev); > > - cec_notifier_cec_adap_unregister(cec->notifier); > + cec_notifier_cec_adap_unregister(cec->notifier, cec->adap); > cec_unregister_adapter(cec->adap); > pm_runtime_disable(&pdev->dev); > return 0; > diff --git a/drivers/media/platform/seco-cec/seco-cec.c b/drivers/media/platform/seco-cec/seco-cec.c > index 9cd60fe1867c..54b0d51e9c55 100644 > --- a/drivers/media/platform/seco-cec/seco-cec.c > +++ b/drivers/media/platform/seco-cec/seco-cec.c > @@ -671,7 +671,7 @@ static int secocec_probe(struct platform_device *pdev) > return ret; > > err_notifier: > - cec_notifier_cec_adap_unregister(secocec->notifier); > + cec_notifier_cec_adap_unregister(secocec->notifier, secocec->cec_adap); > err_delete_adapter: > cec_delete_adapter(secocec->cec_adap); > err: > @@ -692,7 +692,7 @@ static int secocec_remove(struct platform_device *pdev) > > dev_dbg(&pdev->dev, "IR disabled"); > } > - cec_notifier_cec_adap_unregister(secocec->notifier); > + cec_notifier_cec_adap_unregister(secocec->notifier, secocec->cec_adap); > cec_unregister_adapter(secocec->cec_adap); > > release_region(BRA_SMB_BASE_ADDR, 7); > diff --git a/drivers/media/platform/sti/cec/stih-cec.c b/drivers/media/platform/sti/cec/stih-cec.c > index 8118c7365d3f..f0c73e64b586 100644 > --- a/drivers/media/platform/sti/cec/stih-cec.c > +++ b/drivers/media/platform/sti/cec/stih-cec.c > @@ -359,7 +359,7 @@ static int stih_cec_probe(struct platform_device *pdev) > return 0; > > err_notifier: > - cec_notifier_cec_adap_unregister(cec->notifier); > + cec_notifier_cec_adap_unregister(cec->notifier, cec->adap); > > err_delete_adapter: > cec_delete_adapter(cec->adap); > @@ -370,7 +370,7 @@ static int stih_cec_remove(struct platform_device *pdev) > { > struct stih_cec *cec = platform_get_drvdata(pdev); > > - cec_notifier_cec_adap_unregister(cec->notifier); > + cec_notifier_cec_adap_unregister(cec->notifier, cec->adap); > cec_unregister_adapter(cec->adap); > > return 0; > diff --git a/drivers/media/platform/tegra-cec/tegra_cec.c b/drivers/media/platform/tegra-cec/tegra_cec.c > index a632602131f2..a99caac59f44 100644 > --- a/drivers/media/platform/tegra-cec/tegra_cec.c > +++ b/drivers/media/platform/tegra-cec/tegra_cec.c > @@ -409,7 +409,7 @@ static int tegra_cec_probe(struct platform_device *pdev) > return 0; > > err_notifier: > - cec_notifier_cec_adap_unregister(cec->notifier); > + cec_notifier_cec_adap_unregister(cec->notifier, cec->adap); > err_adapter: > cec_delete_adapter(cec->adap); > err_clk: > @@ -423,7 +423,7 @@ static int tegra_cec_remove(struct platform_device *pdev) > > clk_disable_unprepare(cec->clk); > > - cec_notifier_cec_adap_unregister(cec->notifier); > + cec_notifier_cec_adap_unregister(cec->notifier, cec->adap); > cec_unregister_adapter(cec->adap); > > return 0; > diff --git a/include/media/cec-notifier.h b/include/media/cec-notifier.h > index f161f8a493ac..985afea1ee36 100644 > --- a/include/media/cec-notifier.h > +++ b/include/media/cec-notifier.h > @@ -93,8 +93,10 @@ cec_notifier_cec_adap_register(struct device *hdmi_dev, const char *conn_name, > * cec_notifier_cec_adap_unregister - decrease refcount and delete when the > * refcount reaches 0. > * @n: notifier. If NULL, then this function does nothing. > + * @adap: the cec adapter that registered this notifier. > */ > -void cec_notifier_cec_adap_unregister(struct cec_notifier *n); > +void cec_notifier_cec_adap_unregister(struct cec_notifier *n, > + struct cec_adapter *adap); > > /** > * cec_notifier_set_phys_addr - set a new physical address. > @@ -160,7 +162,8 @@ cec_notifier_cec_adap_register(struct device *hdmi_dev, const char *conn_name, > return (struct cec_notifier *)0xdeadfeed; > } > > -static inline void cec_notifier_cec_adap_unregister(struct cec_notifier *n) > +static inline void cec_notifier_cec_adap_unregister(struct cec_notifier *n, > + struct cec_adapter *adap) > { > } -- Ville Syrjälä Intel