Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752701AbZJGVQN (ORCPT ); Wed, 7 Oct 2009 17:16:13 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751872AbZJGVQN (ORCPT ); Wed, 7 Oct 2009 17:16:13 -0400 Received: from mail-bw0-f210.google.com ([209.85.218.210]:56915 "EHLO mail-bw0-f210.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751696AbZJGVQL (ORCPT ); Wed, 7 Oct 2009 17:16:11 -0400 MIME-Version: 1.0 From: Mike Lothian Date: Wed, 7 Oct 2009 22:14:37 +0100 Message-ID: Subject: Samsung Backlight Patch To: linux-kernel Cc: Greg KH , Matthias Hopf , Matthew Garrett Content-Type: multipart/mixed; boundary=0003255597fec1de5904755ed641 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 22075 Lines: 303 --0003255597fec1de5904755ed641 Content-Type: text/plain; charset=ISO-8859-1 Hi I was hoping the following patch could be included in 2.6.32 so it would hopefully end up in the next round of distros It adds backlight support for some Samsung laptops Regards Mike --0003255597fec1de5904755ed641 Content-Type: text/x-patch; charset=US-ASCII; name="Backlight.patch" Content-Disposition: attachment; filename="Backlight.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g0iksd600 ZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGxhdGZvcm0veDg2L0tjb25maWcgYi9kcml2ZXJzL3BsYXRm b3JtL3g4Ni9LY29uZmlnCmluZGV4IDc3YzYwOTcuLjY4MTA2MjUgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvcGxhdGZvcm0veDg2L0tjb25maWcKKysrIGIvZHJpdmVycy9wbGF0Zm9ybS94ODYvS2NvbmZp ZwpAQCAtNDI1LDQgKzQyNSwxNiBAQCBjb25maWcgQUNQSV9UT1NISUJBCiAKIAkgIElmIHlvdSBo YXZlIGEgbGVnYWN5IGZyZWUgVG9zaGliYSBsYXB0b3AgKHN1Y2ggYXMgdGhlIExpYnJldHRvIEwx CiAJICBzZXJpZXMpLCBzYXkgWS4KKworY29uZmlnIFNBTVNVTkdfTEFQVE9QCisgICAgICAgIHRy aXN0YXRlICJTYW1zdW5nIExhcHRvcCBkcml2ZXIiCisgICAgICAgIGRlcGVuZHMgb24gQkFDS0xJ R0hUX0NMQVNTX0RFVklDRQorICAgICAgICBkZXBlbmRzIG9uIERNSQorICAgICAgICAtLS1oZWxw LS0tCisgICAgICAgICAgVGhpcyBkcml2ZXIgYWRkcyBzdXBwb3J0IHRvIGNvbnRyb2wgdGhlIGJh Y2tsaWdodCBvbiBhIG51bWJlciBvZgorICAgICAgICAgIFNhbXN1bmcgbGFwdG9wcywgbGlrZSB0 aGUgTjEzMCwgYW5kIGNvbnRyb2wgZm9yIHNvbWUgb2YgdGhlIExFRHMKKworICAgICAgICAgIEl0 IHdpbGwgb25seSBiZSBsb2FkZWQgb24gbGFwdG9wcyB0aGF0IHByb3Blcmx5IG5lZWQgaXQsIHNv IGl0IGlzCisgICAgICAgICAgc2FmZSB0byBzYXkgWSBoZXJlLgorCiBlbmRpZiAjIFg4Nl9QTEFU Rk9STV9ERVZJQ0VTCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9NYWtlZmlsZSBi L2RyaXZlcnMvcGxhdGZvcm0veDg2L01ha2VmaWxlCmluZGV4IDY0MWI4YmYuLjhjY2ZhZGMgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvcGxhdGZvcm0veDg2L01ha2VmaWxlCisrKyBiL2RyaXZlcnMvcGxh dGZvcm0veDg2L01ha2VmaWxlCkBAIC0yMCwzICsyMCw0IEBAIG9iai0kKENPTkZJR19JTlRFTF9N RU5MT1cpCSs9IGludGVsX21lbmxvdy5vCiBvYmotJChDT05GSUdfQUNQSV9XTUkpCQkrPSB3bWku bwogb2JqLSQoQ09ORklHX0FDUElfQVNVUykJCSs9IGFzdXNfYWNwaS5vCiBvYmotJChDT05GSUdf QUNQSV9UT1NISUJBKQkrPSB0b3NoaWJhX2FjcGkubworb2JqLSQoQ09ORklHX1NBTVNVTkdfTEFQ VE9QKSAgICArPSBzYW1zdW5nLWxhcHRvcC5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BsYXRmb3Jt L3g4Ni9zYW1zdW5nLWxhcHRvcC5jIGIvZHJpdmVycy9wbGF0Zm9ybS94ODYvc2Ftc3VuZy1sYXB0 b3AuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MmRmMzVlCi0tLSAvZGV2 L251bGwKKysrIGIvZHJpdmVycy9wbGF0Zm9ybS94ODYvc2Ftc3VuZy1sYXB0b3AuYwpAQCAtMCww ICsxLDQyMCBAQAorLyoKKyAqIFNhbXN1bmcgTjEzMCBhbmQgTkMxMjAgTGFwdG9wIGRyaXZlcgor ICoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBHcmVnIEtyb2FoLUhhcnRtYW4gKGdyZWdraEBzdXNl LmRlKQorICogQ29weXJpZ2h0IChDKSAyMDA5IE5vdmVsbCBJbmMuCisgKgorICogVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgdmVyc2lvbiAyIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbi4KKyAqCisgKi8KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51 eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcGNp Lmg+CisjaW5jbHVkZSA8bGludXgvYmFja2xpZ2h0Lmg+CisjaW5jbHVkZSA8bGludXgvZmIuaD4K KyNpbmNsdWRlIDxsaW51eC9kbWkuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2Uu aD4KKworLyoKKyAqIFRoaXMgZHJpdmVyIGlzIG5lZWRlZCBiZWNhdXNlIGEgbnVtYmVyIG9mIFNh bXN1bmcgbGFwdG9wcyBkbyBub3QgaG9vaworICogdGhlaXIgY29udHJvbCBzZXR0aW5ncyB0aHJv dWdoIEFDUEkuICBTbyB3ZSBoYXZlIHRvIHBva2UgYXJvdW5kIGluIHRoZQorICogQklPUyB0byBk byB0aGluZ3MgbGlrZSBicmlnaHRuZXNzIHZhbHVlcywgYW5kICJzcGVjaWFsIiBrZXkgY29udHJv bHMuCisgKi8KKworCisvKgorICogV2UgaGF2ZSAwIC0gOCBhcyB2YWxpZCBicmlnaHRuZXNzIGxl dmVscy4gIFRoZSBzcGVjcyBzYXkgdGhhdCBsZXZlbCAwIHNob3VsZAorICogYmUgcmVzZXJ2ZWQg YnkgdGhlIEJJT1MgKHdoaWNoIHJlYWxseSBkb2Vzbid0IG1ha2UgbXVjaCBzZW5zZSksIHdlIHRl bGwKKyAqIHVzZXJzcGFjZSB0aGF0IHRoZSB2YWx1ZSBpcyAwIC0gNyBhbmQgdGhlbiBqdXN0IHRl bGwgdGhlIGhhcmR3YXJlIDEgLSA4CisgKi8KKyNkZWZpbmUgTUFYX0JSSUdIVCAgICAgMHgwNwor CisvKiBnZXQgbW9kZWwgcmV0dXJucyA0IGNoYXJhY3RlcnMgdGhhdCBkZXNjcmliZSB0aGUgbW9k ZWwgb2YgdGhlIGxhcHRvcCAqLworI2RlZmluZSBTQUJJX0dFVF9NT0RFTCAgICAgICAgICAgICAg ICAgMHgwNAorCisvKiBCcmlnaHRuZXNzIGlzIDAgLSA4LCBhcyBkZXNjcmliZWQgYWJvdmUuICBW YWx1ZSAwIGlzIGZvciB0aGUgQklPUyB0byB1c2UgKi8KKyNkZWZpbmUgU0FCSV9HRVRfQlJJR0hU TkVTUyAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgU0FCSV9TRVRfQlJJR0hUTkVTUyAgICAgICAg ICAgIDB4MTEKKworLyogMCBpcyBvZmYsIDEgaXMgb24sIGFuZCAyIGlzIGEgc2Vjb25kIHVzZXIt ZGVmaW5lZCBrZXk/ICovCisjZGVmaW5lIFNBQklfR0VUX1dJUkVMRVNTX0JVVFRPTiAgICAgICAw eDEyCisjZGVmaW5lIFNBQklfU0VUX1dJUkVMRVNTX0JVVFRPTiAgICAgICAweDEzCisKKy8qIFRl bXBlcmF0dXJlIGlzIHJldHVybmVkIGluIGRlZ3Jlc3MgQ2Vsc2l1cyBmcm9tIHdoYXQgSSBjYW4g Z3Vlc3MuICovCisjZGVmaW5lIFNBQklfR0VUX0NQVV9URU1QICAgICAgICAgICAgICAweDI5CisK Ky8qIDAgaXMgb2ZmLCAxIGlzIG9uLiAgRG9lc24ndCBzZWVtIHRvIHdvcmsgb24gYSBOMTMwIGZv ciBzb21lIHJlYXNvbiAqLworI2RlZmluZSBTQUJJX0dFVF9CQUNLTElHSFQgICAgICAgICAgICAg MHgyZAorI2RlZmluZSBTQUJJX1NFVF9CQUNLTElHSFQgICAgICAgICAgICAgMHgyZQorCisvKgor ICogVGhpcyBpcyBkaWZmZXJlbnQKKyAqIFRoZXJlIGlzIDMgZGlmZmVyZW50IG1vZGVzIGhlcmU6 CisgKiAgIDAgLSBvZmYKKyAqICAgMSAtIG9uCisgKiAgIDIgLSBtYXggcGVyZm9ybWFuY2UgbW9k ZQorICogb2ZmIGlzICJub3JtYWwiIG1vZGUuCisgKiBvbiBtZWFucyB0aGF0IHdoYXRldmVyIHRo ZSBiaW9zIHNldHRpbmcgZm9yIGV0aXF1ZXR0ZSBtb2RlLCBpcyBlbmFibGVkLiAgSXQKKyAqIHNl ZW1zIHRoYXQgdGhlIEJJT1MgY2FuIHNldCBlaXRoZXIgImF1dG8iIG1vZGUsIG9yICJzbG93IiBt b2RlLiAgSWYgInNsb3ciCisgKiBtb2RlIGlzIHNldCwgdGhlIGZhbiB0dXJucyBvZmYsIGFuZCB0 aGUgY3B1IGlzIHRocm90dGxlZCBkb3duIHRvIG5vdCBjYXVzZQorICogdGhlIGZhbiB0byB0dXJu IG9uIGlmIGF0IGFsbCBwb3NzaWJsZS4KKyAqIG1heCBwZXJmb3JtYW5jZSBtZWFucyB0aGF0IHRo ZSBwcm9jZXNzb3IgY2FuIGJlIG92ZXJjbG9ja2VkIGFuZCBydW4gZmFzdGVyCisgKiB0aGVuIGlz IHBoeXNpY2FsbHkgcG9zc2libGUuICBPaywgbWF5YmUgbm90IHBoeXNpY2FsbHkgcG9zc2libGUs IGJ1dCBpdCBpcworICogb3ZlcmNsb2NrZWQuICBGdW5ueSB0aGF0IHRoZSBzeXN0ZW0gaGFzIGEg c2V0dGluZyBmb3IgdGhpcy4uLgorICovCisjZGVmaW5lIFNBQklfR0VUX0VUSVFVRVRURV9NT0RF ICAgICAgICAgICAgICAgIDB4MzEKKyNkZWZpbmUgU0FCSV9TRVRfRVRJUVVFVFRFX01PREUgICAg ICAgICAgICAgICAgMHgzMgorCisvKgorICogSSBpbWFnaW5lIHRoYXQgb24gc29tZSBsYXB0b3Bz IHRoZXJlIGlzIGEgYmx1ZXRvb3RoIHN3aXRjaCwgYnV0IEkgZG9uJ3Qga25vdworICogd2hhdCB0 aGF0IGxvb2tzIGxpa2UsIG9yIHdoZXJlIGl0IGlzIGluIHRoZSBCSU9TIGFkZHJlc3Mgc3BhY2UK KyAqLworCisKKy8qCisgKiBTQUJJIEhFQURFUiBpbiBsb3cgbWVtb3J5IChmMDAwMCkKKyAqIFdl IG5lZWQgdG8gcG9rZSB0aHJvdWdoIG1lbW9yeSB0byBmaW5kIGEgc2lnbmF0dXJlIGluIG9yZGVy IHRvIGZpbmQgdGhlCisgKiBleGFjdCBsb2NhdGlvbiBvZiB0aGlzIHN0cnVjdHVyZS4KKyAqLwor c3RydWN0IHNhYmlfaGVhZGVyIHsKKyAgICAgICB1MTYgcG9ydE5vOworICAgICAgIHU4IGlmYWNl RnVuYzsKKyAgICAgICB1OCBlbk1lbTsKKyAgICAgICB1OCByZU1lbTsKKyAgICAgICB1MTYgZGF0 YU9mZnNldDsKKyAgICAgICB1MTYgZGF0YVNlZ21lbnQ7CisgICAgICAgdTggQklPU2lmdmVyOwor ICAgICAgIHU4IExhdW5jaGVyU3RyaW5nOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKwor LyoKKyAqIFRoZSBTQUJJIGludGVyZmFjZSB0aGF0IHdlIHVzZSB0byB3cml0ZSBhbmQgcmVhZCB2 YWx1ZXMgZnJvbSB0aGUgc3lzdGVtLgorICogSXQgaXMgZm91bmQgYnkgbG9va2luZyBhdCB0aGUg ZGF0YU9mZnNldCBhbmQgZGF0YVNlZ21lbnQgdmFsdWVzIGluIHRoZSBzYWJpCisgKiBoZWFkZXIg c3RydWN0dXJlCisgKi8KK3N0cnVjdCBzYWJpX2ludGVyZmFjZSB7CisgICAgICAgdTE2IG1haW5m dW5jOworICAgICAgIHUxNiBzdWJmdW5jOworICAgICAgIHU4IGNvbXBsZXRlOworICAgICAgIHU4 IHJldHZhbFsyMF07Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCisvKiBTdHJ1Y3R1cmUg dG8gZ2V0IGRhdGEgYmFjayB0byB0aGUgY2FsbGluZyBmdW5jdGlvbiAqLworc3RydWN0IHNhYmlf cmV0dmFsIHsKKyAgICAgICB1OCByZXR2YWxbMjBdOworfTsKKworc3RhdGljIHN0cnVjdCBzYWJp X2hlYWRlciBfX2lvbWVtICpzYWJpOworc3RhdGljIHN0cnVjdCBzYWJpX2ludGVyZmFjZSBfX2lv bWVtICpzYWJpX2lmYWNlOworc3RhdGljIHZvaWQgX19pb21lbSAqZjAwMDBfc2VnbWVudDsKK3N0 YXRpYyBzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqYmFja2xpZ2h0X2RldmljZTsKK3N0YXRpYyBz dHJ1Y3QgbXV0ZXggc2FiaV9tdXRleDsKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpz ZGV2OworCitzdGF0aWMgaW50IGZvcmNlOworbW9kdWxlX3BhcmFtKGZvcmNlLCBib29sLCAwKTsK K01PRFVMRV9QQVJNX0RFU0MoZm9yY2UsICJEaXNhYmxlIHRoZSBETUkgY2hlY2sgYW5kIGZvcmNl cyB0aGUgZHJpdmVyIHRvIGJlIGxvYWRlZCIpOworCitzdGF0aWMgaW50IGRlYnVnOworbW9kdWxl X3BhcmFtKGRlYnVnLCBib29sLCBTX0lSVUdPIHwgU19JV1VTUik7CitNT0RVTEVfUEFSTV9ERVND KGRlYnVnLCAiRGVidWcgZW5hYmxlZCBvciBub3QiKTsKKworc3RhdGljIGludCBzYWJpX2dldF9j b21tYW5kKHU4IGNvbW1hbmQsIHN0cnVjdCBzYWJpX3JldHZhbCAqc3JldHZhbCkKK3sKKyAgICAg ICBpbnQgcmV0dmFsID0gMDsKKworICAgICAgIG11dGV4X2xvY2soJnNhYmlfbXV0ZXgpOworCisg ICAgICAgLyogZW5hYmxlIG1lbW9yeSB0byBiZSBhYmxlIHRvIHdyaXRlIHRvIGl0ICovCisgICAg ICAgb3V0YihyZWFkYigmc2FiaS0+ZW5NZW0pLCByZWFkdygmc2FiaS0+cG9ydE5vKSk7CisKKyAg ICAgICAvKiB3cml0ZSBvdXQgdGhlIGNvbW1hbmQgKi8KKyAgICAgICB3cml0ZXcoMHg1ODQzLCAm c2FiaV9pZmFjZS0+bWFpbmZ1bmMpOworICAgICAgIHdyaXRldyhjb21tYW5kLCAmc2FiaV9pZmFj ZS0+c3ViZnVuYyk7CisgICAgICAgd3JpdGViKDAsICZzYWJpX2lmYWNlLT5jb21wbGV0ZSk7Cisg ICAgICAgb3V0YihyZWFkYigmc2FiaS0+aWZhY2VGdW5jKSwgcmVhZHcoJnNhYmktPnBvcnRObykp OworCisgICAgICAgLyogc2xlZXAgZm9yIGEgYml0IHRvIGxldCB0aGUgY29tbWFuZCBjb21wbGV0 ZSAqLworICAgICAgIG1zbGVlcCgxMDApOworCisgICAgICAgLyogd3JpdGUgcHJvdGVjdCBtZW1v cnkgdG8gbWFrZSBpdCBzYWZlICovCisgICAgICAgb3V0YihyZWFkYigmc2FiaS0+cmVNZW0pLCBy ZWFkdygmc2FiaS0+cG9ydE5vKSk7CisKKyAgICAgICAvKiBzZWUgaWYgdGhlIGNvbW1hbmQgYWN0 dWFsbHkgc3VjY2VlZGVkICovCisgICAgICAgaWYgKHJlYWRiKCZzYWJpX2lmYWNlLT5jb21wbGV0 ZSkgPT0gMHhhYSAmJgorICAgICAgICAgICByZWFkYigmc2FiaV9pZmFjZS0+cmV0dmFsWzBdKSAh PSAweGZmKSB7CisgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICogSXQgZGlkIQor ICAgICAgICAgICAgICAgICogU2F2ZSBvZmYgdGhlIGRhdGEgaW50byBhIHN0cnVjdHVyZSBzbyB0 aGUgY2FsbGVyIHVzZSBpdC4KKyAgICAgICAgICAgICAgICAqIFJpZ2h0IG5vdyB3ZSBvbmx5IGNh cmUgYWJvdXQgdGhlIGZpcnN0IDQgYnl0ZXMsCisgICAgICAgICAgICAgICAgKiBJIHN1cHBvc2Ug dGhlcmUgYXJlIGNvbW1hbmRzIHRoYXQgbmVlZCBtb3JlLCBidXQgSSBkb24ndAorICAgICAgICAg ICAgICAgICoga25vdyBhYm91dCB0aGVtLgorICAgICAgICAgICAgICAgICovCisgICAgICAgICAg ICAgICBzcmV0dmFsLT5yZXR2YWxbMF0gPSByZWFkYigmc2FiaV9pZmFjZS0+cmV0dmFsWzBdKTsK KyAgICAgICAgICAgICAgIHNyZXR2YWwtPnJldHZhbFsxXSA9IHJlYWRiKCZzYWJpX2lmYWNlLT5y ZXR2YWxbMV0pOworICAgICAgICAgICAgICAgc3JldHZhbC0+cmV0dmFsWzJdID0gcmVhZGIoJnNh YmlfaWZhY2UtPnJldHZhbFsyXSk7CisgICAgICAgICAgICAgICBzcmV0dmFsLT5yZXR2YWxbM10g PSByZWFkYigmc2FiaV9pZmFjZS0+cmV0dmFsWzNdKTsKKyAgICAgICAgICAgICAgIGdvdG8gZXhp dDsKKyAgICAgICB9CisKKyAgICAgICAvKiBTb21ldGhpbmcgYmFkIGhhcHBlbmVkLCBzbyByZXBv cnQgaXQgYW5kIGVycm9yIG91dCAqLworICAgICAgIHByaW50ayhLRVJOX1dBUk5JTkcgIlNBQkkg Y29tbWFuZCAweCUwMnggZmFpbGVkIHdpdGggY29tcGxldGlvbiBmbGFnIDB4JTAyeCBhbmQgb3V0 cHV0IDB4JTAyeFxuIiwKKyAgICAgICAgICAgICAgIGNvbW1hbmQsIHJlYWRiKCZzYWJpX2lmYWNl LT5jb21wbGV0ZSksCisgICAgICAgICAgICAgICByZWFkYigmc2FiaV9pZmFjZS0+cmV0dmFsWzBd KSk7CisgICAgICAgcmV0dmFsID0gLUVJTlZBTDsKK2V4aXQ6CisgICAgICAgbXV0ZXhfdW5sb2Nr KCZzYWJpX211dGV4KTsKKyAgICAgICByZXR1cm4gcmV0dmFsOworCit9CisKK3N0YXRpYyBpbnQg c2FiaV9zZXRfY29tbWFuZCh1OCBjb21tYW5kLCB1OCBkYXRhKQoreworICAgICAgIGludCByZXR2 YWwgPSAwOworCisgICAgICAgbXV0ZXhfbG9jaygmc2FiaV9tdXRleCk7CisKKyAgICAgICAvKiBl bmFibGUgbWVtb3J5IHRvIGJlIGFibGUgdG8gd3JpdGUgdG8gaXQgKi8KKyAgICAgICBvdXRiKHJl YWRiKCZzYWJpLT5lbk1lbSksIHJlYWR3KCZzYWJpLT5wb3J0Tm8pKTsKKworICAgICAgIC8qIHdy aXRlIG91dCB0aGUgY29tbWFuZCAqLworICAgICAgIHdyaXRldygweDU4NDMsICZzYWJpX2lmYWNl LT5tYWluZnVuYyk7CisgICAgICAgd3JpdGV3KGNvbW1hbmQsICZzYWJpX2lmYWNlLT5zdWJmdW5j KTsKKyAgICAgICB3cml0ZWIoMCwgJnNhYmlfaWZhY2UtPmNvbXBsZXRlKTsKKyAgICAgICB3cml0 ZWIoZGF0YSwgJnNhYmlfaWZhY2UtPnJldHZhbFswXSk7CisgICAgICAgb3V0YihyZWFkYigmc2Fi aS0+aWZhY2VGdW5jKSwgcmVhZHcoJnNhYmktPnBvcnRObykpOworCisgICAgICAgLyogc2xlZXAg Zm9yIGEgYml0IHRvIGxldCB0aGUgY29tbWFuZCBjb21wbGV0ZSAqLworICAgICAgIG1zbGVlcCgx MDApOworCisgICAgICAgLyogd3JpdGUgcHJvdGVjdCBtZW1vcnkgdG8gbWFrZSBpdCBzYWZlICov CisgICAgICAgb3V0YihyZWFkYigmc2FiaS0+cmVNZW0pLCByZWFkdygmc2FiaS0+cG9ydE5vKSk7 CisKKyAgICAgICAvKiBzZWUgaWYgdGhlIGNvbW1hbmQgYWN0dWFsbHkgc3VjY2VlZGVkICovCisg ICAgICAgaWYgKHJlYWRiKCZzYWJpX2lmYWNlLT5jb21wbGV0ZSkgPT0gMHhhYSAmJgorICAgICAg ICAgICByZWFkYigmc2FiaV9pZmFjZS0+cmV0dmFsWzBdKSAhPSAweGZmKSB7CisgICAgICAgICAg ICAgICAvKiBpdCBkaWQhICovCisgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgfQor CisgICAgICAgLyogU29tZXRoaW5nIGJhZCBoYXBwZW5lZCwgc28gcmVwb3J0IGl0IGFuZCBlcnJv ciBvdXQgKi8KKyAgICAgICBwcmludGsoS0VSTl9XQVJOSU5HICJTQUJJIGNvbW1hbmQgMHglMDJ4 IGZhaWxlZCB3aXRoIGNvbXBsZXRpb24gZmxhZyAweCUwMnggYW5kIG91dHB1dCAweCUwMnhcbiIs CisgICAgICAgICAgICAgICBjb21tYW5kLCByZWFkYigmc2FiaV9pZmFjZS0+Y29tcGxldGUpLAor ICAgICAgICAgICAgICAgcmVhZGIoJnNhYmlfaWZhY2UtPnJldHZhbFswXSkpOworICAgICAgIHJl dHZhbCA9IC1FSU5WQUw7CitleGl0OgorICAgICAgIG11dGV4X3VubG9jaygmc2FiaV9tdXRleCk7 CisgICAgICAgcmV0dXJuIHJldHZhbDsKK30KKworc3RhdGljIHU4IHJlYWRfYnJpZ2h0bmVzcyh2 b2lkKQoreworICAgICAgIHN0cnVjdCBzYWJpX3JldHZhbCBzcmV0dmFsOworICAgICAgIGludCB1 c2VyX2JyaWdodG5lc3MgPSAwOworICAgICAgIGludCByZXR2YWw7CisKKyAgICAgICByZXR2YWwg PSBzYWJpX2dldF9jb21tYW5kKFNBQklfR0VUX0JBQ0tMSUdIVCwgJnNyZXR2YWwpOworICAgICAg IGlmICghcmV0dmFsKQorICAgICAgICAgICAgICAgdXNlcl9icmlnaHRuZXNzID0gc3JldHZhbC5y ZXR2YWxbMF07CisgICAgICAgICAgICAgICBpZiAodXNlcl9icmlnaHRuZXNzICE9IDApCisgICAg ICAgICAgICAgICAgICAgICAgIC0tdXNlcl9icmlnaHRuZXNzOworICAgICAgIHJldHVybiB1c2Vy X2JyaWdodG5lc3M7Cit9CisKK3N0YXRpYyB2b2lkIHNldF9icmlnaHRuZXNzKHU4IHVzZXJfYnJp Z2h0bmVzcykKK3sKKyAgICAgICBzYWJpX3NldF9jb21tYW5kKFNBQklfU0VUX0JSSUdIVE5FU1Ms IHVzZXJfYnJpZ2h0bmVzcyArIDEpOworfQorCitzdGF0aWMgaW50IGdldF9icmlnaHRuZXNzKHN0 cnVjdCBiYWNrbGlnaHRfZGV2aWNlICpiZCkKK3sKKyAgICAgICByZXR1cm4gYmQtPnByb3BzLmJy aWdodG5lc3M7Cit9CisKK3N0YXRpYyBpbnQgdXBkYXRlX3N0YXR1cyhzdHJ1Y3QgYmFja2xpZ2h0 X2RldmljZSAqYmQpCit7CisgICAgICAgc2V0X2JyaWdodG5lc3MoYmQtPnByb3BzLmJyaWdodG5l c3MpOworICAgICAgIHJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IGJhY2tsaWdodF9vcHMg YmFja2xpZ2h0X29wcyA9IHsKKyAgICAgICAuZ2V0X2JyaWdodG5lc3MgPSBnZXRfYnJpZ2h0bmVz cywKKyAgICAgICAudXBkYXRlX3N0YXR1cyAgPSB1cGRhdGVfc3RhdHVzLAorfTsKKworc3RhdGlj IGludCBfX2luaXQgZG1pX2NoZWNrX2NiKGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkICppZCkK K3sKKyAgICAgICBwcmludGsoS0VSTl9JTkZPIEtCVUlMRF9NT0ROQU1FICI6IGZvdW5kIGxhcHRv cCBtb2RlbCAnJXMnXG4iLAorICAgICAgICAgICAgICAgaWQtPmlkZW50KTsKKyAgICAgICByZXR1 cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBkbWlfc3lzdGVtX2lkIF9faW5pdGRhdGEgc2Ftc3Vu Z19kbWlfdGFibGVbXSA9IHsKKyAgICAgICB7CisgICAgICAgICAgICAgICAuaWRlbnQgPSAiUjUx MC9QNTEwIiwKKyAgICAgICAgICAgICAgIC5tYXRjaGVzID0geworICAgICAgICAgICAgICAgICAg ICAgICBETUlfTUFUQ0goRE1JX1NZU19WRU5ET1IsICJTQU1TVU5HIEVMRUNUUk9OSUNTIENPLiwg TFRELiIpLAorICAgICAgICAgICAgICAgICAgICAgICBETUlfTUFUQ0goRE1JX1BST0RVQ1RfTkFN RSwgIlI1MTAvUDUxMCIpLAorICAgICAgICAgICAgICAgICAgICAgICBETUlfTUFUQ0goRE1JX0JP QVJEX05BTUUsICJSNTEwL1A1MTAiKSwKKyAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAg ICAuY2FsbGJhY2sgPSBkbWlfY2hlY2tfY2IsCisgICAgICAgfSwKKyAgICAgICB7CisgICAgICAg ICAgICAgICAuaWRlbnQgPSAiTjEzMCIsCisgICAgICAgICAgICAgICAubWF0Y2hlcyA9IHsKKyAg ICAgICAgICAgICAgICAgICAgICAgRE1JX01BVENIKERNSV9TWVNfVkVORE9SLCAiU0FNU1VORyBF TEVDVFJPTklDUyBDTy4sIExURC4iKSwKKyAgICAgICAgICAgICAgICAgICAgICAgRE1JX01BVENI KERNSV9QUk9EVUNUX05BTUUsICJOMTMwIiksCisgICAgICAgICAgICAgICAgICAgICAgIERNSV9N QVRDSChETUlfQk9BUkRfTkFNRSwgIk4xMzAiKSwKKyAgICAgICAgICAgICAgIH0sCisgICAgICAg ICAgICAgICAuY2FsbGJhY2sgPSBkbWlfY2hlY2tfY2IsCisgICAgICAgfSwKKyAgICAgICB7IH0s Cit9OworCisKK3N0YXRpYyBpbnQgX19pbml0IHNhbXN1bmdfaW5pdCh2b2lkKQoreworICAgICAg IHN0cnVjdCBzYWJpX3JldHZhbCBzcmV0dmFsOworICAgICAgIGNvbnN0IGNoYXIgKnRlc3RTdHIg PSAiU3dTbWlAIjsKKyAgICAgICB2b2lkIF9faW9tZW0gKm1lbWNoZWNrOworICAgICAgIHVuc2ln bmVkIGludCBpZmFjZVA7CisgICAgICAgaW50IHBTdHI7CisgICAgICAgaW50IGxvY2E7CisgICAg ICAgaW50IHJldHZhbDsKKworICAgICAgIG11dGV4X2luaXQoJnNhYmlfbXV0ZXgpOworCisgICAg ICAgaWYgKCFmb3JjZSAmJiAhZG1pX2NoZWNrX3N5c3RlbShzYW1zdW5nX2RtaV90YWJsZSkpCisg ICAgICAgICAgICAgICByZXR1cm4gLUVOT0RFVjsKKworICAgICAgIGYwMDAwX3NlZ21lbnQgPSBp b3JlbWFwKDB4ZjAwMDAsIDB4ZmZmZik7CisgICAgICAgaWYgKCFmMDAwMF9zZWdtZW50KSB7Cisg ICAgICAgICAgICAgICBwcmludGsoS0VSTl9FUlIgIkNhbid0IG1hcCB0aGUgc2VnbWVudCBhdCAw eGYwMDAwXG4iKTsKKyAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOworICAgICAgIH0KKwor ICAgICAgIC8qIFRyeSB0byBmaW5kIHRoZSBzaWduYXR1cmUgIlN3U21pQCIgaW4gbWVtb3J5IHRv IGZpbmQgdGhlIGhlYWRlciAqLworICAgICAgIHBTdHIgPSAwOworICAgICAgIG1lbWNoZWNrID0g ZjAwMDBfc2VnbWVudDsKKyAgICAgICBmb3IgKGxvY2EgPSAwOyBsb2NhIDwgMHhmZmZmOyBsb2Nh KyspIHsKKyAgICAgICAgICAgICAgIGNoYXIgdGVtcCA9IHJlYWRiKG1lbWNoZWNrICsgbG9jYSk7 CisKKyAgICAgICAgICAgICAgIGlmICh0ZW1wID09IHRlc3RTdHJbcFN0cl0pIHsKKyAgICAgICAg ICAgICAgICAgICAgICAgaWYgKHBTdHIgPT0gNSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgKytwU3RyOworICAgICAgICAgICAg ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgcFN0ciA9IDA7CisgICAgICAgICAg ICAgICB9CisgICAgICAgfQorICAgICAgIGlmIChsb2NhID09IDB4ZmZmZikgeworICAgICAgICAg ICAgICAgcHJpbnRrKEtFUk5fSU5GTyAiVGhpcyBjb21wdXRlciBkb2VzIG5vdCBzdXBwb3J0IFNB QklcbiIpOworICAgICAgICAgICAgICAgZ290byBlcnJvcl9ub19zaWduYXR1cmU7CisgICAgICAg ICAgICAgICB9CisKKyAgICAgICAvKiBwb2ludCB0byB0aGUgU01JIHBvcnQgTnVtYmVyICovCisg ICAgICAgbG9jYSArPSAxOworICAgICAgIHNhYmkgPSAoc3RydWN0IHNhYmlfaGVhZGVyIF9faW9t ZW0gKikobG9jYSArIG1lbWNoZWNrKTsKKyAgICAgICBpZiAoIXNhYmkpIHsKKyAgICAgICAgICAg ICAgIHByaW50ayhLRVJOX0VSUiAiQ2FuJ3QgcmVtYXAgJXBcbiIsIGxvY2EgKyBtZW1jaGVjayk7 CisgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgfQorCisgICAgICAgcHJpbnRrKEtF Uk5fSU5GTyAiVGhpcyBjb21wdXRlciBzdXBwb3J0cyBTQUJJPT0leFxuIiwgbG9jYSArIDB4ZjAw MDAgLSA2KTsKKyAgICAgICBwcmludGsoS0VSTl9JTkZPICJTQUJJIGhlYWRlcjpcbiIpOworICAg ICAgIHByaW50ayhLRVJOX0lORk8gIiBTTUkgUG9ydCBOdW1iZXIgPSAweCUwNHhcbiIsIHJlYWR3 KCZzYWJpLT5wb3J0Tm8pKTsKKyAgICAgICBwcmludGsoS0VSTl9JTkZPICIgU01JIEludGVyZmFj ZSBGdW5jdGlvbiA9IDB4JTAyeFxuIiwgcmVhZGIoJnNhYmktPmlmYWNlRnVuYykpOworICAgICAg IHByaW50ayhLRVJOX0lORk8gIiBTTUkgZW5hYmxlIG1lbW9yeSBidWZmZXIgPSAweCUwMnhcbiIs IHJlYWRiKCZzYWJpLT5lbk1lbSkpOworICAgICAgIHByaW50ayhLRVJOX0lORk8gIiBTTUkgcmVz dG9yZSBtZW1vcnkgYnVmZmVyID0gMHglMDJ4XG4iLCByZWFkYigmc2FiaS0+cmVNZW0pKTsKKyAg ICAgICBwcmludGsoS0VSTl9JTkZPICIgU0FCSSBkYXRhIG9mZnNldCA9IDB4JTA0eFxuIiwgcmVh ZHcoJnNhYmktPmRhdGFPZmZzZXQpKTsKKyAgICAgICBwcmludGsoS0VSTl9JTkZPICIgU0FCSSBk YXRhIHNlZ21lbnQgPSAweCUwNHhcbiIsIHJlYWR3KCZzYWJpLT5kYXRhU2VnbWVudCkpOworICAg ICAgIHByaW50ayhLRVJOX0lORk8gIiBCSU9TIGludGVyZmFjZSB2ZXJzaW9uID0gMHglMDJ4XG4i LCByZWFkYigmc2FiaS0+QklPU2lmdmVyKSk7CisgICAgICAgcHJpbnRrKEtFUk5fSU5GTyAiIEtC RCBMYXVuY2hlciBzdHJpbmcgPSAweCUwMnhcbiIsIHJlYWRiKCZzYWJpLT5MYXVuY2hlclN0cmlu ZykpOworCisgICAgICAgLyogR2V0IGEgcG9pbnRlciB0byB0aGUgU0FCSSBJbnRlcmZhY2UgKi8K KyAgICAgICBpZmFjZVAgPSAocmVhZHcoJnNhYmktPmRhdGFTZWdtZW50KSAmIDB4MGZmZmYpIDw8 IDQ7CisgICAgICAgaWZhY2VQICs9IHJlYWR3KCZzYWJpLT5kYXRhT2Zmc2V0KSAmIDB4MGZmZmY7 CisgICAgICAgc2FiaV9pZmFjZSA9IChzdHJ1Y3Qgc2FiaV9pbnRlcmZhY2UgX19pb21lbSAqKWlv cmVtYXAoaWZhY2VQLCAxNik7CisgICAgICAgaWYgKCFzYWJpX2lmYWNlKSB7CisgICAgICAgICAg ICAgICBwcmludGsoS0VSTl9FUlIgIkNhbid0IHJlbWFwICV4XG4iLCBpZmFjZVApOworICAgICAg ICAgICAgICAgZ290byBleGl0OworICAgICAgIH0KKyAgICAgICBwcmludGsoS0VSTl9JTkZPICJT QUJJIEludGVyZmFjZSA9ICVwXG4iLCBzYWJpX2lmYWNlKTsKKworICAgICAgIHJldHZhbCA9IHNh YmlfZ2V0X2NvbW1hbmQoU0FCSV9HRVRfTU9ERUwsICZzcmV0dmFsKTsKKyAgICAgICBpZiAoIXJl dHZhbCkgeworICAgICAgICAgICAgICAgcHJpbnRrKEtFUk5fSU5GTyAiTW9kZWwgTmFtZSAlYyVj JWMlY1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgc3JldHZhbC5yZXR2YWxbMF0sCisgICAg ICAgICAgICAgICAgICAgICAgIHNyZXR2YWwucmV0dmFsWzFdLAorICAgICAgICAgICAgICAgICAg ICAgICBzcmV0dmFsLnJldHZhbFsyXSwKKyAgICAgICAgICAgICAgICAgICAgICAgc3JldHZhbC5y ZXR2YWxbM10pOworICAgICAgIH0KKworICAgICAgIHJldHZhbCA9IHNhYmlfZ2V0X2NvbW1hbmQo U0FCSV9HRVRfQkFDS0xJR0hULCAmc3JldHZhbCk7CisgICAgICAgaWYgKCFyZXR2YWwpCisgICAg ICAgICAgICAgICBwcmludGsoImJhY2tsaWdodCA9IDB4JTAyeFxuIiwgc3JldHZhbC5yZXR2YWxb MF0pOworCisgICAgICAgcmV0dmFsID0gc2FiaV9nZXRfY29tbWFuZChTQUJJX0dFVF9XSVJFTEVT U19CVVRUT04sICZzcmV0dmFsKTsKKyAgICAgICBpZiAoIXJldHZhbCkKKyAgICAgICAgICAgICAg IHByaW50aygid2lyZWxlc3MgYnV0dG9uID0gMHglMDJ4XG4iLCBzcmV0dmFsLnJldHZhbFswXSk7 CisKKyAgICAgICByZXR2YWwgPSBzYWJpX2dldF9jb21tYW5kKFNBQklfR0VUX0JSSUdIVE5FU1Ms ICZzcmV0dmFsKTsKKyAgICAgICBpZiAoIXJldHZhbCkKKyAgICAgICAgICAgICAgIHByaW50aygi YnJpZ2h0bmVzcyA9IDB4JTAyeFxuIiwgc3JldHZhbC5yZXR2YWxbMF0pOworCisgICAgICAgcmV0 dmFsID0gc2FiaV9nZXRfY29tbWFuZChTQUJJX0dFVF9FVElRVUVUVEVfTU9ERSwgJnNyZXR2YWwp OworICAgICAgIGlmICghcmV0dmFsKQorICAgICAgICAgICAgICAgcHJpbnRrKCJldGlxdWV0dGUg bW9kZSA9IDB4JTAyeFxuIiwgc3JldHZhbC5yZXR2YWxbMF0pOworICAgICAgIHJldHZhbCA9IHNh YmlfZ2V0X2NvbW1hbmQoU0FCSV9HRVRfQ1BVX1RFTVAsICZzcmV0dmFsKTsKKyAgICAgICBpZiAo IXJldHZhbCkKKyAgICAgICAgICAgICAgIHByaW50aygiY3B1IHRlbXAgPSAweCUwMnhcbiIsIHNy ZXR2YWwucmV0dmFsWzBdKTsKKworICAgICAgIC8qIGtub2NrIHVwIGEgcGxhdGZvcm0gZGV2aWNl IHRvIGhhbmcgc3R1ZmYgb2ZmIG9mICovCisgICAgICAgc2RldiA9IHBsYXRmb3JtX2RldmljZV9y ZWdpc3Rlcl9zaW1wbGUoInNhbXN1bmciLCAtMSwgTlVMTCwgMCk7CisgICAgICAgaWYgKElTX0VS UihzZGV2KSkKKyAgICAgICAgICAgICAgIGdvdG8gZXJyb3Jfbm9fcGxhdGZvcm07CisKKyAgICAg ICAvKiBjcmVhdGUgYSBiYWNrbGlnaHQgZGV2aWNlIHRvIHRhbGsgdG8gdGhpcyBvbmUgKi8KKyAg ICAgICBiYWNrbGlnaHRfZGV2aWNlID0gYmFja2xpZ2h0X2RldmljZV9yZWdpc3Rlcigic2Ftc3Vu ZyIsICZzZGV2LT5kZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTlVMTCwgJmJhY2tsaWdodF9vcHMpOworICAgICAgIGlmIChJU19FUlIoYmFj a2xpZ2h0X2RldmljZSkpCisgICAgICAgICAgICAgICBnb3RvIGVycm9yX25vX2JhY2tsaWdodDsK KworICAgICAgIGJhY2tsaWdodF9kZXZpY2UtPnByb3BzLm1heF9icmlnaHRuZXNzID0gTUFYX0JS SUdIVDsKKyAgICAgICBiYWNrbGlnaHRfZGV2aWNlLT5wcm9wcy5icmlnaHRuZXNzID0gcmVhZF9i cmlnaHRuZXNzKCk7CisgICAgICAgYmFja2xpZ2h0X2RldmljZS0+cHJvcHMucG93ZXIgPSBGQl9C TEFOS19VTkJMQU5LOworICAgICAgIGJhY2tsaWdodF91cGRhdGVfc3RhdHVzKGJhY2tsaWdodF9k ZXZpY2UpOworCitleGl0OgorICAgICAgIHJldHVybiAwOworCitlcnJvcl9ub19iYWNrbGlnaHQ6 CisgICAgICAgcGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIoc2Rldik7CisKK2Vycm9yX25vX3Bs YXRmb3JtOgorICAgICAgIGlvdW5tYXAoc2FiaV9pZmFjZSk7CisKK2Vycm9yX25vX3NpZ25hdHVy ZToKKyAgICAgICBpb3VubWFwKGYwMDAwX3NlZ21lbnQpOworICAgICAgIHJldHVybiAtRUlOVkFM OworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgc2Ftc3VuZ19leGl0KHZvaWQpCit7CisgICAgICAg YmFja2xpZ2h0X2RldmljZV91bnJlZ2lzdGVyKGJhY2tsaWdodF9kZXZpY2UpOworICAgICAgIGlv dW5tYXAoc2FiaV9pZmFjZSk7CisgICAgICAgaW91bm1hcChmMDAwMF9zZWdtZW50KTsKKyAgICAg ICBwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihzZGV2KTsKK30KKworbW9kdWxlX2luaXQoc2Ft c3VuZ19pbml0KTsKK21vZHVsZV9leGl0KHNhbXN1bmdfZXhpdCk7CisKK01PRFVMRV9BVVRIT1Io IkdyZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ2toQHN1c2UuZGU+Iik7CitNT0RVTEVfREVTQ1JJUFRJ T04oIlNhbXN1bmcgQmFja2xpZ2h0IGRyaXZlciIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwor TU9EVUxFX0FMSUFTKCJkbWk6Kjpzdm5TQU1TVU5HRUxFQ1RST05JQ1NDTy4sTFRELjpwblI1MTAv UDUxMDoqOnJuUjUxMC9QNTEwOioiKTsKK01PRFVMRV9BTElBUygiZG1pOio6c3ZuU0FNU1VOR0VM RUNUUk9OSUNTQ08uLExURC46cG5OMTMwOio6cm5OMTMwOioiKTsK --0003255597fec1de5904755ed641-- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/