From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alan Cox Subject: [PATCH 07/12] gma500: Add the i2c bus support Date: Thu, 03 Nov 2011 18:21:53 +0000 Message-ID: <20111103182153.29503.112.stgit@bob.linux.org.uk> References: <20111103182046.29503.60288.stgit@bob.linux.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from lxorguk.ukuu.org.uk (lxorguk.ukuu.org.uk [81.2.110.251]) by gabe.freedesktop.org (Postfix) with ESMTP id D34B19EFA3 for ; Thu, 3 Nov 2011 11:10:59 -0700 (PDT) In-Reply-To: <20111103182046.29503.60288.stgit@bob.linux.org.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: airlied@linux.ie, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogQWxhbiBDb3ggPGFsYW5AbGludXguaW50ZWwuY29tPgoKQWdhaW4gdGhpcyBtaWdodCBi ZSBhIGNhbmRpZGF0ZSBmb3Igc2hhcmluZyBsYXRlci4KClNpZ25lZC1vZmYtYnk6IEFsYW4gQ294 IDxhbGFuQGxpbnV4LmludGVsLmNvbT4KLS0tCgogZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9pbnRl bF9pMmMuYyB8ICAxNjkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZp bGVzIGNoYW5nZWQsIDE2OSBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1v ZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9nbWE1MDAvaW50ZWxfaTJjLmMKCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9pbnRlbF9pMmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9n bWE1MDAvaW50ZWxfaTJjLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTMz NDMyZAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvaW50ZWxfaTJj LmMKQEAgLTAsMCArMSwxNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAwNi0yMDA3IEludGVs IENvcnBvcmF0aW9uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBh bmQgY29uZGl0aW9ucyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCisgKiB2ZXJz aW9uIDIsIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoK KyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSBpdCB3aWxsIGJlIHVz ZWZ1bCwgYnV0IFdJVEhPVVQKKyAqIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvcgorICogRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvcgor ICogbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nIHdpdGgKKyAqIHRoaXMgcHJv Z3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu LAorICogNTEgRnJhbmtsaW4gU3QgLSBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAx IFVTQS4KKyAqCisgKiBBdXRob3JzOgorICoJRXJpYyBBbmhvbHQgPGVyaWNAYW5ob2x0Lm5ldD4K KyAqLworCisjaW5jbHVkZSA8bGludXgvaTJjLmg+CisjaW5jbHVkZSA8bGludXgvaTJjLWFsZ28t Yml0Lmg+CisKKyNpbmNsdWRlICJwc2JfZHJ2LmgiCisjaW5jbHVkZSAicHNiX2ludGVsX3JlZy5o IgorCisvKgorICogSW50ZWwgR1BJTyBhY2Nlc3MgZnVuY3Rpb25zCisgKi8KKworI2RlZmluZSBJ MkNfUklTRUZBTExfVElNRSAyMAorCitzdGF0aWMgaW50IGdldF9jbG9jayh2b2lkICpkYXRhKQor eworCXN0cnVjdCBwc2JfaW50ZWxfaTJjX2NoYW4gKmNoYW4gPSBkYXRhOworCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjaGFuLT5kcm1fZGV2OworCXUzMiB2YWw7CisKKwl2YWwgPSBSRUdfUkVB RChjaGFuLT5yZWcpOworCXJldHVybiAodmFsICYgR1BJT19DTE9DS19WQUxfSU4pICE9IDA7Cit9 CisKK3N0YXRpYyBpbnQgZ2V0X2RhdGEodm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgcHNiX2ludGVs X2kyY19jaGFuICpjaGFuID0gZGF0YTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY2hhbi0+ ZHJtX2RldjsKKwl1MzIgdmFsOworCisJdmFsID0gUkVHX1JFQUQoY2hhbi0+cmVnKTsKKwlyZXR1 cm4gKHZhbCAmIEdQSU9fREFUQV9WQUxfSU4pICE9IDA7Cit9CisKK3N0YXRpYyB2b2lkIHNldF9j bG9jayh2b2lkICpkYXRhLCBpbnQgc3RhdGVfaGlnaCkKK3sKKwlzdHJ1Y3QgcHNiX2ludGVsX2ky Y19jaGFuICpjaGFuID0gZGF0YTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY2hhbi0+ZHJt X2RldjsKKwl1MzIgcmVzZXJ2ZWQgPSAwLCBjbG9ja19iaXRzOworCisJLyogT24gbW9zdCBjaGlw cywgdGhlc2UgYml0cyBtdXN0IGJlIHByZXNlcnZlZCBpbiBzb2Z0d2FyZS4gKi8KKwlyZXNlcnZl ZCA9CisJCSAgICBSRUdfUkVBRChjaGFuLT5yZWcpICYgKEdQSU9fREFUQV9QVUxMVVBfRElTQUJM RSB8CisJCQkJCSAgIEdQSU9fQ0xPQ0tfUFVMTFVQX0RJU0FCTEUpOworCisJaWYgKHN0YXRlX2hp Z2gpCisJCWNsb2NrX2JpdHMgPSBHUElPX0NMT0NLX0RJUl9JTiB8IEdQSU9fQ0xPQ0tfRElSX01B U0s7CisJZWxzZQorCQljbG9ja19iaXRzID0gR1BJT19DTE9DS19ESVJfT1VUIHwgR1BJT19DTE9D S19ESVJfTUFTSyB8CisJCSAgICBHUElPX0NMT0NLX1ZBTF9NQVNLOworCVJFR19XUklURShjaGFu LT5yZWcsIHJlc2VydmVkIHwgY2xvY2tfYml0cyk7CisJdWRlbGF5KEkyQ19SSVNFRkFMTF9USU1F KTsJLyogd2FpdCBmb3IgdGhlIGxpbmUgdG8gY2hhbmdlIHN0YXRlICovCit9CisKK3N0YXRpYyB2 b2lkIHNldF9kYXRhKHZvaWQgKmRhdGEsIGludCBzdGF0ZV9oaWdoKQoreworCXN0cnVjdCBwc2Jf aW50ZWxfaTJjX2NoYW4gKmNoYW4gPSBkYXRhOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBj aGFuLT5kcm1fZGV2OworCXUzMiByZXNlcnZlZCA9IDAsIGRhdGFfYml0czsKKworCS8qIE9uIG1v c3QgY2hpcHMsIHRoZXNlIGJpdHMgbXVzdCBiZSBwcmVzZXJ2ZWQgaW4gc29mdHdhcmUuICovCisJ cmVzZXJ2ZWQgPQorCQkgICAgUkVHX1JFQUQoY2hhbi0+cmVnKSAmIChHUElPX0RBVEFfUFVMTFVQ X0RJU0FCTEUgfAorCQkJCQkgICBHUElPX0NMT0NLX1BVTExVUF9ESVNBQkxFKTsKKworCWlmIChz dGF0ZV9oaWdoKQorCQlkYXRhX2JpdHMgPSBHUElPX0RBVEFfRElSX0lOIHwgR1BJT19EQVRBX0RJ Ul9NQVNLOworCWVsc2UKKwkJZGF0YV9iaXRzID0KKwkJICAgIEdQSU9fREFUQV9ESVJfT1VUIHwg R1BJT19EQVRBX0RJUl9NQVNLIHwKKwkJICAgIEdQSU9fREFUQV9WQUxfTUFTSzsKKworCVJFR19X UklURShjaGFuLT5yZWcsIHJlc2VydmVkIHwgZGF0YV9iaXRzKTsKKwl1ZGVsYXkoSTJDX1JJU0VG QUxMX1RJTUUpOwkvKiB3YWl0IGZvciB0aGUgbGluZSB0byBjaGFuZ2Ugc3RhdGUgKi8KK30KKwor LyoqCisgKiBwc2JfaW50ZWxfaTJjX2NyZWF0ZSAtIGluc3RhbnRpYXRlIGFuIEludGVsIGkyYyBi dXMgdXNpbmcgdGhlIHNwZWNpZmllZCBHUElPIHJlZworICogQGRldjogRFJNIGRldmljZQorICog QG91dHB1dDogZHJpdmVyIHNwZWNpZmljIG91dHB1dCBkZXZpY2UKKyAqIEByZWc6IEdQSU8gcmVn IHRvIHVzZQorICogQG5hbWU6IG5hbWUgZm9yIHRoaXMgYnVzCisgKgorICogQ3JlYXRlcyBhbmQg cmVnaXN0ZXJzIGEgbmV3IGkyYyBidXMgd2l0aCB0aGUgTGludXggaTJjIGxheWVyLCBmb3IgdXNl CisgKiBpbiBvdXRwdXQgcHJvYmluZyBhbmQgY29udHJvbCAoZS5nLiBEREMgb3IgU0RWTyBjb250 cm9sIGZ1bmN0aW9ucykuCisgKgorICogUG9zc2libGUgdmFsdWVzIGZvciBAcmVnIGluY2x1ZGU6 CisgKiAgICVHUElPQQorICogICAlR1BJT0IKKyAqICAgJUdQSU9DCisgKiAgICVHUElPRAorICog ICAlR1BJT0UKKyAqICAgJUdQSU9GCisgKiAgICVHUElPRworICogICAlR1BJT0gKKyAqIHNlZSBQ Uk0gZm9yIGRldGFpbHMgb24gaG93IHRoZXNlIGRpZmZlcmVudCBidXNzZXMgYXJlIHVzZWQuCisg Ki8KK3N0cnVjdCBwc2JfaW50ZWxfaTJjX2NoYW4gKnBzYl9pbnRlbF9pMmNfY3JlYXRlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCisJCQkJCWNvbnN0IHUzMiByZWcsIGNvbnN0IGNoYXIgKm5hbWUp Cit7CisJc3RydWN0IHBzYl9pbnRlbF9pMmNfY2hhbiAqY2hhbjsKKworCWNoYW4gPSBremFsbG9j KHNpemVvZihzdHJ1Y3QgcHNiX2ludGVsX2kyY19jaGFuKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFj aGFuKQorCQlnb3RvIG91dF9mcmVlOworCisJY2hhbi0+ZHJtX2RldiA9IGRldjsKKwljaGFuLT5y ZWcgPSByZWc7CisJc25wcmludGYoY2hhbi0+YWRhcHRlci5uYW1lLCBJMkNfTkFNRV9TSVpFLCAi aW50ZWwgZHJtICVzIiwgbmFtZSk7CisJY2hhbi0+YWRhcHRlci5vd25lciA9IFRISVNfTU9EVUxF OworCWNoYW4tPmFkYXB0ZXIuYWxnb19kYXRhID0gJmNoYW4tPmFsZ287CisJY2hhbi0+YWRhcHRl ci5kZXYucGFyZW50ID0gJmRldi0+cGRldi0+ZGV2OworCWNoYW4tPmFsZ28uc2V0c2RhID0gc2V0 X2RhdGE7CisJY2hhbi0+YWxnby5zZXRzY2wgPSBzZXRfY2xvY2s7CisJY2hhbi0+YWxnby5nZXRz ZGEgPSBnZXRfZGF0YTsKKwljaGFuLT5hbGdvLmdldHNjbCA9IGdldF9jbG9jazsKKwljaGFuLT5h bGdvLnVkZWxheSA9IDIwOworCWNoYW4tPmFsZ28udGltZW91dCA9IHVzZWNzX3RvX2ppZmZpZXMo MjIwMCk7CisJY2hhbi0+YWxnby5kYXRhID0gY2hhbjsKKworCWkyY19zZXRfYWRhcGRhdGEoJmNo YW4tPmFkYXB0ZXIsIGNoYW4pOworCisJaWYgKGkyY19iaXRfYWRkX2J1cygmY2hhbi0+YWRhcHRl cikpCisJCWdvdG8gb3V0X2ZyZWU7CisKKwkvKiBKSko6ICByYWlzZSBTQ0wgYW5kIFNEQT8gKi8K KwlzZXRfZGF0YShjaGFuLCAxKTsKKwlzZXRfY2xvY2soY2hhbiwgMSk7CisJdWRlbGF5KDIwKTsK KworCXJldHVybiBjaGFuOworCitvdXRfZnJlZToKKwlrZnJlZShjaGFuKTsKKwlyZXR1cm4gTlVM TDsKK30KKworLyoqCisgKiBwc2JfaW50ZWxfaTJjX2Rlc3Ryb3kgLSB1bnJlZ2lzdGVyIGFuZCBm cmVlIGkyYyBidXMgcmVzb3VyY2VzCisgKiBAb3V0cHV0OiBjaGFubmVsIHRvIGZyZWUKKyAqCisg KiBVbnJlZ2lzdGVyIHRoZSBhZGFwdGVyIGZyb20gdGhlIGkyYyBsYXllciwgdGhlbiBmcmVlIHRo ZSBzdHJ1Y3R1cmUuCisgKi8KK3ZvaWQgcHNiX2ludGVsX2kyY19kZXN0cm95KHN0cnVjdCBwc2Jf aW50ZWxfaTJjX2NoYW4gKmNoYW4pCit7CisJaWYgKCFjaGFuKQorCQlyZXR1cm47CisKKwlpMmNf ZGVsX2FkYXB0ZXIoJmNoYW4tPmFkYXB0ZXIpOworCWtmcmVlKGNoYW4pOworfQoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK