From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kamil Debski Subject: [RFC 3/6] adv7604: add cec support. Date: Tue, 23 Dec 2014 15:32:19 +0100 Message-ID: <1419345142-3364-4-git-send-email-k.debski@samsung.com> References: <1419345142-3364-1-git-send-email-k.debski@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mailout4.samsung.com (mailout4.samsung.com [203.254.224.34]) by gabe.freedesktop.org (Postfix) with ESMTP id E38576E4A3 for ; Tue, 23 Dec 2014 06:33:06 -0800 (PST) Received: from epcpsbgm2.samsung.com (epcpsbgm2 [203.254.230.27]) by mailout4.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0NH1007LIHR5XAA0@mailout4.samsung.com> for dri-devel@lists.freedesktop.org; Tue, 23 Dec 2014 23:33:05 +0900 (KST) In-reply-to: <1419345142-3364-1-git-send-email-k.debski@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org Cc: Hans Verkuil , mchehab@osg.samsung.com, kyungmin.park@samsung.com, m.szyprowski@samsung.com List-Id: dri-devel@lists.freedesktop.org RnJvbTogSGFucyBWZXJrdWlsIDxoYW5zdmVya0BjaXNjby5jb20+CgpBZGQgQ0VDIHN1cHBvcnQg b3QgdGhlIGFkdjc2MDQgZHJpdmVyLgoKU2lnbmVkLW9mZi1ieTogSGFucyBWZXJrdWlsIDxoYW5z dmVya0BjaXNjby5jb20+CltrLmRlYnNraUBzYW1zdW5nLmNvbTogTWVyZ2VkIGNoYW5nZXMgZnJv bSBDRUMgVXBkYXRlcyBjb21taXQgYnkgSGFucyBWZXJrdWlsXQpTaWduZWQtb2ZmLWJ5OiBLYW1p bCBEZWJza2kgPGsuZGVic2tpQHNhbXN1bmcuY29tPgotLS0KIGRyaXZlcnMvbWVkaWEvaTJjL2Fk djc2MDQuYyB8ICAxODIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KwogMSBmaWxlIGNoYW5nZWQsIDE4MiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9tZWRpYS9pMmMvYWR2NzYwNC5jIGIvZHJpdmVycy9tZWRpYS9pMmMvYWR2NzYwNC5jCmluZGV4 IGU0M2RkMmUuLmYwZWE5MjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvaTJjL2Fkdjc2MDQu YworKysgYi9kcml2ZXJzL21lZGlhL2kyYy9hZHY3NjA0LmMKQEAgLTQyLDYgKzQyLDcgQEAKICNp bmNsdWRlIDxtZWRpYS92NGwyLWRldmljZS5oPgogI2luY2x1ZGUgPG1lZGlhL3Y0bDItZHYtdGlt aW5ncy5oPgogI2luY2x1ZGUgPG1lZGlhL3Y0bDItb2YuaD4KKyNpbmNsdWRlIDxtZWRpYS9jZWMu aD4KIAogc3RhdGljIGludCBkZWJ1ZzsKIG1vZHVsZV9wYXJhbShkZWJ1ZywgaW50LCAwNjQ0KTsK QEAgLTE1OCw2ICsxNTksMTAgQEAgc3RydWN0IGFkdjc2MDRfc3RhdGUgewogCXUxNiBzcGFfcG9y dF9hWzJdOwogCXN0cnVjdCB2NGwyX2ZyYWN0IGFzcGVjdF9yYXRpbzsKIAl1MzIgcmdiX3F1YW50 aXphdGlvbl9yYW5nZTsKKwl1OCAgIGNlY19hZGRyWzNdOworCXU4ICAgY2VjX3ZhbGlkX2FkZHJz OworCWJvb2wgY2VjX2VuYWJsZWRfYWRhcDsKKwogCXN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3 b3JrX3F1ZXVlczsKIAlzdHJ1Y3QgZGVsYXllZF93b3JrIGRlbGF5ZWRfd29ya19lbmFibGVfaG90 cGx1ZzsKIAlib29sIHJlc3RhcnRfc3RkaV9vbmNlOwpAQCAtMTkzNSw2ICsxOTQwLDE3NiBAQCBz dGF0aWMgaW50IGFkdjc2MDRfc2V0X2Zvcm1hdChzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkLCBzdHJ1 Y3QgdjRsMl9zdWJkZXZfZmggKmZoLAogCXJldHVybiAwOwogfQogCitzdGF0aWMgdm9pZCBhZHY3 NjA0X2NlY190eF9yYXdfc3RhdHVzKHN0cnVjdCB2NGwyX3N1YmRldiAqc2QsIHU4IHR4X3Jhd19z dGF0dXMpCit7CisJaWYgKChjZWNfcmVhZChzZCwgMHgxMSkgJiAweDAxKSA9PSAwKSB7CisJCXY0 bDJfZGJnKDEsIGRlYnVnLCBzZCwgIiVzOiB0eCByYXc6IHR4IGRpc2FibGVkXG4iLCBfX2Z1bmNf Xyk7CisJCXJldHVybjsKKwl9CisKKwlpZiAodHhfcmF3X3N0YXR1cyAmIDB4MDIpIHsKKwkJdjRs Ml9kYmcoMSwgZGVidWcsIHNkLCAiJXM6IHR4IHJhdzogYXJiaXRyYXRpb24gbG9zdFxuIiwgX19m dW5jX18pOworCQl2NGwyX3N1YmRldl9ub3RpZnkoc2QsIFY0TDJfU1VCREVWX0NFQ19UWF9ET05F LCAodm9pZCAqKUNFQ19UWF9TVEFUVVNfQVJCX0xPU1QpOworCQlyZXR1cm47CisJfQorCWlmICh0 eF9yYXdfc3RhdHVzICYgMHgwNCkgeworCQl2NGwyX2RiZygxLCBkZWJ1Zywgc2QsICIlczogdHgg cmF3OiByZXRyeSBmYWlsZWRcbiIsIF9fZnVuY19fKTsKKwkJdjRsMl9zdWJkZXZfbm90aWZ5KHNk LCBWNEwyX1NVQkRFVl9DRUNfVFhfRE9ORSwgKHZvaWQgKilDRUNfVFhfU1RBVFVTX1JFVFJZX1RJ TUVPVVQpOworCQlyZXR1cm47CisJfQorCWlmICh0eF9yYXdfc3RhdHVzICYgMHgwMSkgeworCQl2 NGwyX2RiZygxLCBkZWJ1Zywgc2QsICIlczogdHggcmF3OiByZWFkeSBva1xuIiwgX19mdW5jX18p OworCQl2NGwyX3N1YmRldl9ub3RpZnkoc2QsIFY0TDJfU1VCREVWX0NFQ19UWF9ET05FLCAodm9p ZCAqKUNFQ19UWF9TVEFUVVNfT0spOworCQlyZXR1cm47CisJfQorfQorCitzdGF0aWMgdm9pZCBh ZHY3NjA0X2NlY19pc3Ioc3RydWN0IHY0bDJfc3ViZGV2ICpzZCwgYm9vbCAqaGFuZGxlZCkKK3sK KwlzdHJ1Y3QgY2VjX21zZyBtc2c7CisJdTggY2VjX2lycTsKKworCS8qIGNlYyBjb250cm9sbGVy ICovCisJY2VjX2lycSA9IGlvX3JlYWQoc2QsIDB4NGQpICYgMHgwZjsKKwlpZiAoIWNlY19pcnEp CisJCXJldHVybjsKKworCXY0bDJfZGJnKDEsIGRlYnVnLCBzZCwgIiVzOiBjZWM6IGlycSAweCV4 XG4iLCBfX2Z1bmNfXywgY2VjX2lycSk7CisJYWR2NzYwNF9jZWNfdHhfcmF3X3N0YXR1cyhzZCwg Y2VjX2lycSk7CisJaWYgKGNlY19pcnEgJiAweDA4KSB7CisJCW1zZy5sZW4gPSBjZWNfcmVhZChz ZCwgMHgyNSkgJiAweDFmOworCQlpZiAobXNnLmxlbiA+IDE2KQorCQkJbXNnLmxlbiA9IDE2Owor CisJCWlmIChtc2cubGVuKSB7CisJCQl1OCBpOworCisJCQlmb3IgKGkgPSAwOyBpIDwgbXNnLmxl bjsgaSsrKQorCQkJCW1zZy5tc2dbaV0gPSBjZWNfcmVhZChzZCwgaSArIDB4MTUpOworCQkJY2Vj X3dyaXRlKHNkLCAweDI2LCAweDAxKTsgLyogcmUtZW5hYmxlIHJ4ICovCisJCQl2NGwyX3N1YmRl dl9ub3RpZnkoc2QsIFY0TDJfU1VCREVWX0NFQ19SWF9NU0csICZtc2cpOworCQl9CisJfQorCisJ Lyogbm90ZTogdGhlIGJpdCBvcmRlciBpcyBzd2FwcGVkIGJldHdlZW4gMHg0ZCBhbmQgMHg0ZSAq LworCWNlY19pcnEgPSAoKGNlY19pcnEgJiAweDA4KSA+PiAzKSB8ICgoY2VjX2lycSAmIDB4MDQp ID4+IDEpIHwKKwkJICAoKGNlY19pcnEgJiAweDAyKSA8PCAxKSB8ICgoY2VjX2lycSAmIDB4MDEp IDw8IDMpOworCWlvX3dyaXRlKHNkLCAweDRlLCBjZWNfaXJxKTsKKworCWlmIChoYW5kbGVkKQor CQkqaGFuZGxlZCA9IHRydWU7Cit9CisKK3N0YXRpYyBpbnQgYWR2NzYwNF9jZWNfZW5hYmxlKHN0 cnVjdCB2NGwyX3N1YmRldiAqc2QsIGJvb2wgZW5hYmxlKQoreworCXN0cnVjdCBhZHY3NjA0X3N0 YXRlICpzdGF0ZSA9IHRvX3N0YXRlKHNkKTsKKwkKKwlpZiAoIXN0YXRlLT5jZWNfZW5hYmxlZF9h ZGFwICYmIGVuYWJsZSkgeworCQljZWNfd3JpdGVfYW5kX29yKHNkLCAweDJhLCAweGZlLCAweDAx KTsJLyogcG93ZXIgdXAgY2VjICovCisJCWNlY193cml0ZShzZCwgMHgyYywgMHgwMSk7CS8qIGNl YyBzb2Z0IHJlc2V0ICovCisJCWNlY193cml0ZV9hbmRfb3Ioc2QsIDB4MTEsIDB4ZmUsIDApOyAg LyogaW5pdGlhbGx5IGRpc2FibGUgdHggKi8KKwkJLyogZW5hYmxlZCBpcnFzOiAqLworCQkvKiB0 eDogcmVhZHkgKi8KKwkJLyogdHg6IGFyYml0cmF0aW9uIGxvc3QgKi8KKwkJLyogdHg6IHJldHJ5 IHRpbWVvdXQgKi8KKwkJLyogcng6IHJlYWR5ICovCisJCWlvX3dyaXRlX2FuZF9vcihzZCwgMHg1 MCwgMHhmMCwgMHgwZik7CisJCWNlY193cml0ZShzZCwgMHgyNiwgMHgwMSk7ICAgICAgICAgICAg LyogZW5hYmxlIHJ4ICovCisJfSBlbHNlIGlmIChzdGF0ZS0+Y2VjX2VuYWJsZWRfYWRhcCAmJiAh ZW5hYmxlKSB7CisJCWlvX3dyaXRlX2FuZF9vcihzZCwgMHg1MCwgMHhmMCwgMHgwMCk7ICAvKiBk aXNhYmxlIGNlYyBpbnRlcnJ1cHRzICovCisJCWNlY193cml0ZV9hbmRfb3Ioc2QsIDB4MjcsIDB4 OGYsIDB4NzApOyAvKiBkaXNhYmxlIGFkZHJlc3MgbWFzayAxLTMgKi8KKwkJY2VjX3dyaXRlX2Fu ZF9vcihzZCwgMHgyYSwgMHhmZSwgMHgwMCk7IC8qIHBvd2VyIGRvd24gY2VjIHNlY3Rpb24gKi8K KwkJc3RhdGUtPmNlY192YWxpZF9hZGRycyA9IDA7CisJfQorCXN0YXRlLT5jZWNfZW5hYmxlZF9h ZGFwID0gZW5hYmxlOworCXJldHVybiAwOworfQorCisjZGVmaW5lIEFEVjc2MDRfTUFYX0FERFJT ICgzKQorCitzdGF0aWMgaW50IGFkdjc2MDRfY2VjX2xvZ19hZGRyKHN0cnVjdCB2NGwyX3N1YmRl diAqc2QsIHU4IGFkZHIpCit7CisJc3RydWN0IGFkdjc2MDRfc3RhdGUgKnN0YXRlID0gdG9fc3Rh dGUoc2QpOworCXVuc2lnbmVkIGksIGZyZWVfaWR4ID0gQURWNzYwNF9NQVhfQUREUlM7CisJCisJ aWYgKCFzdGF0ZS0+Y2VjX2VuYWJsZWRfYWRhcCkKKwkJcmV0dXJuIC1FSU87CisKKwlmb3IgKGkg PSAwOyBpIDwgQURWNzYwNF9NQVhfQUREUlM7IGkrKykgeworCQlib29sIGlzX3ZhbGlkID0gc3Rh dGUtPmNlY192YWxpZF9hZGRycyAmICgxIDw8IGkpOworCisJCWlmIChmcmVlX2lkeCA9PSBBRFY3 NjA0X01BWF9BRERSUyAmJiAhaXNfdmFsaWQpCisJCQlmcmVlX2lkeCA9IGk7CisJCWlmIChpc192 YWxpZCAmJiBzdGF0ZS0+Y2VjX2FkZHJbaV0gPT0gYWRkcikKKwkJCXJldHVybiAwOworCX0KKwlp ZiAoaSA9PSBBRFY3NjA0X01BWF9BRERSUykgeworCQlpID0gZnJlZV9pZHg7CisJCWlmIChpID09 IEFEVjc2MDRfTUFYX0FERFJTKQorCQkJcmV0dXJuIC1FTlhJTzsKKwl9CisJc3RhdGUtPmNlY19h ZGRyW2ldID0gYWRkcjsKKwlzdGF0ZS0+Y2VjX3ZhbGlkX2FkZHJzIHw9IDEgPDwgaTsKKworCXN3 aXRjaCAoaSkgeworCWNhc2UgMDoKKwkJLyogZW5hYmxlIGFkZHJlc3MgbWFzayAwICovCisJCWNl Y193cml0ZV9hbmRfb3Ioc2QsIDB4MjcsIDB4ZWYsIDB4MTApOworCQkvKiBzZXQgYWRkcmVzcyBm b3IgbWFzayAwICovCisJCWNlY193cml0ZV9hbmRfb3Ioc2QsIDB4MjgsIDB4ZjAsIGFkZHIpOwor CQlicmVhazsKKwljYXNlIDE6CisJCS8qIGVuYWJsZSBhZGRyZXNzIG1hc2sgMSAqLworCQljZWNf d3JpdGVfYW5kX29yKHNkLCAweDI3LCAweGRmLCAweDIwKTsKKwkJLyogc2V0IGFkZHJlc3MgZm9y IG1hc2sgMSAqLworCQljZWNfd3JpdGVfYW5kX29yKHNkLCAweDI4LCAweDBmLCBhZGRyIDw8IDQp OworCQlicmVhazsKKwljYXNlIDI6CisJCS8qIGVuYWJsZSBhZGRyZXNzIG1hc2sgMiAqLworCQlj ZWNfd3JpdGVfYW5kX29yKHNkLCAweDI3LCAweGJmLCAweDQwKTsKKwkJLyogc2V0IGFkZHJlc3Mg Zm9yIG1hc2sgMSAqLworCQljZWNfd3JpdGVfYW5kX29yKHNkLCAweDI5LCAweGYwLCBhZGRyKTsK KwkJYnJlYWs7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGFkdjc2MDRfY2VjX3Ry YW5zbWl0KHN0cnVjdCB2NGwyX3N1YmRldiAqc2QsIHN0cnVjdCBjZWNfbXNnICptc2cpCit7CisJ dTggbGVuID0gbXNnLT5sZW47CisJdW5zaWduZWQgaTsKKworCWlmIChsZW4gPT0gMSkKKwkJY2Vj X3dyaXRlX2FuZF9vcihzZCwgMHgxMiwgMHhmOCwgMSk7ICAvKiBhbGxvdyBmb3Igb25lIHJldHJ5 IGZvciBwb2xsaW5nICovCisJZWxzZQorCQljZWNfd3JpdGVfYW5kX29yKHNkLCAweDEyLCAweGY4 LCAzKTsgIC8qIGFsbG93IGZvciB0aHJlZSByZXRyaWVzICovCisKKwlpZiAobGVuID4gMTYpIHsK KwkJdjRsMl9lcnIoc2QsICIlczogbGVuIGV4Y2VlZGVkIDE2ICglZClcbiIsIF9fZnVuY19fLCBs ZW4pOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiB3cml0ZSBkYXRhICovCisJZm9yIChp ID0gMDsgaSA8IGxlbjsgaSsrKQorCQljZWNfd3JpdGUoc2QsIGksIG1zZy0+bXNnW2ldKTsKKwor CS8qIHNldCBsZW5ndGggKGRhdGEgKyBoZWFkZXIpICovCisJY2VjX3dyaXRlKHNkLCAweDEwLCBs ZW4pOworCS8qIHN0YXJ0IHRyYW5zbWl0LCBlbmFibGUgdHggKi8KKwljZWNfd3JpdGUoc2QsIDB4 MTEsIDB4MDEpOworCS8qIEZvciBzb21lIHJlYXNvbiBzb21ldGltZXMgdGhlCisJICogdHJhbnNt aXQgd29uJ3Qgc3RhcnQuCisJICogRG9pbmcgaXQgdHdpY2Ugc2VlbXMgdG8gaGVscCA/CisJKi8K KwljZWNfd3JpdGUoc2QsIDB4MTEsIDB4MDEpOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9p ZCBhZHY3NjA0X2NlY190cmFuc21pdF90aW1lZF9vdXQoc3RydWN0IHY0bDJfc3ViZGV2ICpzZCkK K3sKKwljZWNfd3JpdGVfYW5kX29yKHNkLCAweDExLCAweGZlLCAwKTsgIC8qIGRpc2FibGUgdHgg Ki8KK30KKwogc3RhdGljIGludCBhZHY3NjA0X2lzcihzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkLCB1 MzIgc3RhdHVzLCBib29sICpoYW5kbGVkKQogewogCXN0cnVjdCBhZHY3NjA0X3N0YXRlICpzdGF0 ZSA9IHRvX3N0YXRlKHNkKTsKQEAgLTE5ODAsNiArMjE1NSw5IEBAIHN0YXRpYyBpbnQgYWR2NzYw NF9pc3Ioc3RydWN0IHY0bDJfc3ViZGV2ICpzZCwgdTMyIHN0YXR1cywgYm9vbCAqaGFuZGxlZCkK IAkJCSpoYW5kbGVkID0gdHJ1ZTsKIAl9CiAKKyAJLyogY2VjICovCisgCWFkdjc2MDRfY2VjX2lz cihzZCwgaGFuZGxlZCk7CisKIAkvKiB0eCA1diBkZXRlY3QgKi8KIAl0eF81diA9IGlvX3JlYWQo c2QsIDB4NzApICYgaW5mby0+Y2FibGVfZGV0X21hc2s7CiAJaWYgKHR4XzV2KSB7CkBAIC0yMzc0 LDYgKzI1NTIsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2NGwyX3N1YmRldl92aWRlb19vcHMg YWR2NzYwNF92aWRlb19vcHMgPSB7CiAJLnNfZHZfdGltaW5ncyA9IGFkdjc2MDRfc19kdl90aW1p bmdzLAogCS5nX2R2X3RpbWluZ3MgPSBhZHY3NjA0X2dfZHZfdGltaW5ncywKIAkucXVlcnlfZHZf dGltaW5ncyA9IGFkdjc2MDRfcXVlcnlfZHZfdGltaW5ncywKKwkuY2VjX2VuYWJsZSA9IGFkdjc2 MDRfY2VjX2VuYWJsZSwKKwkuY2VjX2xvZ19hZGRyID0gYWR2NzYwNF9jZWNfbG9nX2FkZHIsCisJ LmNlY190cmFuc21pdCA9IGFkdjc2MDRfY2VjX3RyYW5zbWl0LAorCS5jZWNfdHJhbnNtaXRfdGlt ZWRfb3V0ID0gYWR2NzYwNF9jZWNfdHJhbnNtaXRfdGltZWRfb3V0LAogfTsKIAogc3RhdGljIGNv bnN0IHN0cnVjdCB2NGwyX3N1YmRldl9wYWRfb3BzIGFkdjc2MDRfcGFkX29wcyA9IHsKLS0gCjEu Ny45LjUKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==