From mboxrd@z Thu Jan 1 00:00:00 1970 From: InKi Dae Subject: [PATCH] s3c-fb: added patch series for s5pv210 and some features. Date: Fri, 7 May 2010 16:59:56 +0900 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=000e0cd139c4f3a4a20485fc71f6 Return-path: Sender: linux-kernel-owner@vger.kernel.org List-ID: To: Andrew Morton , linux-fbdev-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org Cc: kyungmin.park@samsung.com, Ben Dooks --000e0cd139c4f3a4a20485fc71f6 Content-Type: text/plain; charset=ISO-8859-1 Hello all, this includes three patch series and divides previous patch into smaller part. so Andrew, please remove my previous patch, s3c-fb-add-s5pv210-support-and-some-features.patch from mm tree. patch contents are as following. 1. s3c_fb_1_3.patch - as patch for supporting s5pv210, CH_ENABLE bit of SHAD register should be enabled to enable window layer on s5pv210. 2. s3c_fb_2_3.patch - s5pv210 has five window layers (window0 ~ 4), among them, window0 ~ 2 could be used for local path with fimc(capture device) and fimd writeback feature so this patch makes default window layer for UI to be set at machine code. 3. s3c_fb_3_3.patch - it has been working fine at 16bpp but in case of pixel format more then 24bpp it would occur distortedness situation on that mode. so this patch set the word swap control bit of WINCONx to 1 as default value. but it should be set to 0 in case that each ENLOCAL bit of WINCON0 ~ 2 registers is enabled. this issue would be solved with local path feature soon. and also I would add MIPI-DSI and mDNIe(Image enhancement device) features(including device driver) in the near future. Please review this patch. Signed-off-by: InKi Dae Reviewed-by: KyungMin Park Best Regards, InKi Dae --000e0cd139c4f3a4a20485fc71f6 Content-Type: application/octet-stream; name="s3c_fb_2_3.patch" Content-Disposition: attachment; filename="s3c_fb_2_3.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g8wpslyz0 ZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtc2Ftc3VuZy9pbmNsdWRlL3BsYXQvZmIuaCBiL2Fy Y2gvYXJtL3BsYXQtc2Ftc3VuZy9pbmNsdWRlL3BsYXQvZmIuaAppbmRleCA0NDM5ZmYzLi45ZjI0 MzA0IDEwMDY0NAotLS0gYS9hcmNoL2FybS9wbGF0LXNhbXN1bmcvaW5jbHVkZS9wbGF0L2ZiLmgK KysrIGIvYXJjaC9hcm0vcGxhdC1zYW1zdW5nL2luY2x1ZGUvcGxhdC9mYi5oCkBAIC0zNyw2ICsz Nyw3IEBAIHN0cnVjdCBzM2NfZmJfcGRfd2luIHsKICAqCQlkZXZpY2UuCiAgKiBAc2hhZG93X2No X2VuYWJsZTogaXQgc2hvdWxkIGJlIGVuYWJsZWQgdG8gZW5hYmxlIHdpbmRvdyBsYXllciBvbiBz NXBjMTEwLgogICogCQkgICAgICBlbmFibGUgaXMgMSBhbmQgZGlzYWJsZSBpcyAwLgorICogQGRl ZmF1bHRfd2luOiBkZWZhdWx0IHdpbmRvdyBsYXllciBudW1iZXIgdG8gYmUgdXNlZCBmb3IgVUkg bGF5ZXIuCiAgKiBAdmlkY29uMDogVGhlIGJhc2UgdmlkY29uMCB2YWx1ZXMgdG8gY29udHJvbCB0 aGUgcGFuZWwgZGF0YSBmb3JtYXQuCiAgKiBAdmlkY29uMTogVGhlIGJhc2UgdmlkY29uMSB2YWx1 ZXMgdG8gY29udHJvbCB0aGUgcGFuZWwgZGF0YSBvdXRwdXQuCiAgKiBAd2luOiBUaGUgc2V0dXAg ZGF0YSBmb3IgZWFjaCBoYXJkd2FyZSB3aW5kb3csIG9yIE5VTEwgZm9yIHVudXNlZC4KQEAgLTUz LDYgKzU0LDcgQEAgc3RydWN0IHMzY19mYl9wbGF0ZGF0YSB7CiAKIAlzdHJ1Y3QgczNjX2ZiX3Bk X3dpbgkqd2luW1MzQ19GQl9NQVhfV0lOXTsKIAl1MzIJCQlzaGFkb3dfY2hfZW5hYmxlOworCXUz MgkJCWRlZmF1bHRfd2luOwogCiAJdTMyCQkJIHZpZGNvbjA7CiAJdTMyCQkJIHZpZGNvbjE7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL3MzYy1mYi5jIGIvZHJpdmVycy92aWRlby9zM2MtZmIu YwppbmRleCAzNDAyNjdlLi5iMWQ3MjUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL3MzYy1m Yi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vczNjLWZiLmMKQEAgLTMwMiw3ICszMDIsNyBAQCBzdGF0 aWMgaW50IHMzY19mYl9zZXRfcGFyKHN0cnVjdCBmYl9pbmZvICppbmZvKQogCiAJLyogdXNlIHdp bmRvdyAwIGFzIHRoZSBiYXNpcyBmb3IgdGhlIGxjZCBvdXRwdXQgdGltaW5ncyAqLwogCi0JaWYg KHdpbl9ubyA9PSAwKSB7CisJaWYgKHdpbl9ubyA9PSBzZmItPnBkYXRhLT5kZWZhdWx0X3dpbikg ewogCQljbGtkaXYgPSBzM2NfZmJfY2FsY19waXhjbGsoc2ZiLCB2YXItPnBpeGNsb2NrKTsKIAog CQlkYXRhID0gc2ZiLT5wZGF0YS0+dmlkY29uMDsKQEAgLTY0Myw3ICs2NDMsNyBAQCBzdGF0aWMg aW50IHMzY19mYl9ibGFuayhpbnQgYmxhbmtfbW9kZSwgc3RydWN0IGZiX2luZm8gKmluZm8pCiAJ Lyogd2UncmUgc3R1Y2sgd2l0aCB0aGlzIHVudGlsIHdlIGNhbiBkbyBzb21ldGhpbmcgYWJvdXQg b3ZlcnJpZGluZwogCSAqIHRoZSBwb3dlciBjb250cm9sIHVzaW5nIHRoZSBibGFua2luZyBldmVu dCBmb3IgYSBzaW5nbGUgZmIuCiAJICovCi0JaWYgKGluZGV4ID09IDApCisJaWYgKGluZGV4ID09 IHNmYi0+cGRhdGEtPmRlZmF1bHRfd2luKQogCQlzM2NfZmJfZW5hYmxlKHNmYiwgYmxhbmtfbW9k ZSAhPSBGQl9CTEFOS19QT1dFUkRPV04gPyAxIDogMCk7CiAKIAlyZXR1cm4gMDsK --000e0cd139c4f3a4a20485fc71f6 Content-Type: application/octet-stream; name="s3c_fb_3_3.patch" Content-Disposition: attachment; filename="s3c_fb_3_3.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g8wpslz31 ZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtc2Ftc3VuZy9pbmNsdWRlL3BsYXQvcmVncy1mYi5o IGIvYXJjaC9hcm0vcGxhdC1zYW1zdW5nL2luY2x1ZGUvcGxhdC9yZWdzLWZiLmgKaW5kZXggMGVm ODA2ZS4uNDFjNjhhYyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vcGxhdC1zYW1zdW5nL2luY2x1ZGUv cGxhdC9yZWdzLWZiLmgKKysrIGIvYXJjaC9hcm0vcGxhdC1zYW1zdW5nL2luY2x1ZGUvcGxhdC9y ZWdzLWZiLmgKQEAgLTE3Myw2ICsxNzMsNyBAQAogI2RlZmluZSBXSU5DT054X0JJVFNXUAkJCQko MSA8PCAxOCkKICNkZWZpbmUgV0lOQ09OeF9CWVRTV1AJCQkJKDEgPDwgMTcpCiAjZGVmaW5lIFdJ TkNPTnhfSEFXU1dQCQkJCSgxIDw8IDE2KQorI2RlZmluZSBXSU5DT054X1dTV1AJCQkJKDEgPDwg MTUpCiAjZGVmaW5lIFdJTkNPTnhfQlVSU1RMRU5fTUFTSwkJCSgweDMgPDwgOSkKICNkZWZpbmUg V0lOQ09OeF9CVVJTVExFTl9TSElGVAkJCSg5KQogI2RlZmluZSBXSU5DT054X0JVUlNUTEVOXzE2 V09SRAkJCSgweDAgPDwgOSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vczNjLWZiLmMgYi9k cml2ZXJzL3ZpZGVvL3MzYy1mYi5jCmluZGV4IGIxZDcyNTIuLmUyY2ZkYzIgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvdmlkZW8vczNjLWZiLmMKKysrIGIvZHJpdmVycy92aWRlby9zM2MtZmIuYwpAQCAt NDMwLDYgKzQzMCw3IEBAIHN0YXRpYyBpbnQgczNjX2ZiX3NldF9wYXIoc3RydWN0IGZiX2luZm8g KmluZm8pCiAJCWVsc2UKIAkJCWRhdGEgfD0gV0lOQ09OMF9CUFBNT0RFXzI0QlBQXzg4ODsKIAor CQlkYXRhIHw9IFdJTkNPTnhfV1NXUDsKIAkJZGF0YSB8PSBXSU5DT054X0JVUlNUTEVOXzE2V09S RDsKIAkJYnJlYWs7CiAJfQo= --000e0cd139c4f3a4a20485fc71f6 Content-Type: application/octet-stream; name="s3c_fb_1_3.patch" Content-Disposition: attachment; filename="s3c_fb_1_3.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g8wpslz52 ZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtczVwdjIxMC9pbmNsdWRlL21hY2gvcmVncy1mYi5o IGIvYXJjaC9hcm0vbWFjaC1zNXB2MjEwL2luY2x1ZGUvbWFjaC9yZWdzLWZiLmgKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQwNjcxNAotLS0gL2Rldi9udWxsCisrKyBiL2Fy Y2gvYXJtL21hY2gtczVwdjIxMC9pbmNsdWRlL21hY2gvcmVncy1mYi5oCkBAIC0wLDAgKzEsOTUg QEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwOSBTYW1zdW5nIEVsZWN0cm9uaWNzIENvLgorICogICBQ YXdlbCBPc2NpYWsgPHAub3NjaWFrQHNhbXN1bmcuY29tPgorICoKKyAqIE1hY2hpbmUtc3BlY2lm aWMgZnJhbWVidWZmZXIgZGVmaW5pdGlvbnMgZm9yIFNhbXN1bmcgUzVQQzExMC4KKyAqCisgKiBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLgorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9NQUNIX1JFR1NfRkJfSAor I2RlZmluZSBfX0FTTV9BUkNIX01BQ0hfUkVHU19GQl9IIF9fRklMRV9fCisKKyNpbmNsdWRlIDxw bGF0L3JlZ3MtZmItdjUuaD4KKworLyogV0lOQ09OeCAqLworI2RlZmluZSBXSU5DT054X0JVRlNU QVRVU19ICQkJCSgxIDw8IDMxKQorI2RlZmluZSBXSU5DT054X0JVRlNFTF9ICQkJCSgxIDw8IDMw KQorI2RlZmluZSBXSU5DT054X0xJTUlUX09OCQkJCSgxIDw8IDI5KQorI2RlZmluZSBXSU5DT054 X0VRNzA5CQkJCQkoMSA8PCAyOCkKKworCisvKiBWSURDT04zICovCisjZGVmaW5lIFZJRENPTjMJ CQkJCQkoMHgwYykKKyNkZWZpbmUgVklEQ09OM19WRV9PTgkJCQkJKDEgPDwgMjApCisjZGVmaW5l IFZJRENPTjNfQ0dfT04JCQkJCSgxIDw8IDE4KQorI2RlZmluZSBWSURDT04zX0dNX09OCQkJCQko MSA8PCAxNikKKyNkZWZpbmUgVklEQ09OM19IVV9DU0NfRl9OQVJST1cJCQkJKDEgPDwgMTQpCisj ZGVmaW5lIFZJRENPTjNfSFVfQ1NDX0ZfRVE3MDkJCQkJKDEgPDwgMTMpCisjZGVmaW5lIFZJRENP TjNfSFVfQ1NDX0ZfRU4JCQkJKDEgPDwgMTIpCisjZGVmaW5lIFZJRENPTjNfSFVfQ1NDX0JfTkFS Uk9XCQkJCSgxIDw8IDEwKQorI2RlZmluZSBWSURDT04zX0hVX0NTQ19CX0VRNzA5CQkJCSgxIDw8 IDkpCisjZGVmaW5lIFZJRENPTjNfSFVfQ1NDX0JfRU4JCQkJKDEgPDwgOCkKKyNkZWZpbmUgVklE Q09OM19IVUVfRU4JCQkJCSgxIDw8IDcpCisjZGVmaW5lIFZJRENPTjNfUENfRElSX05FRwkJCQko MSA8PCAxKQorI2RlZmluZSBWSURDT04zX1BDX0VOCQkJCQkoMSA8PCAwKQorCisKKy8qIFZJRFRD T04zICovCisjZGVmaW5lIFZJRFRDT04zCQkJCQkoMHgxYykKKyNkZWZpbmUgVklEVENPTjNfVlNZ TkNfRU4JCQkJKDEgPDwgMzEpCisjZGVmaW5lIFZJRFRDT04zX0ZSTV9FTgkJCQkJKDEgPDwgMjkp CisjZGVmaW5lIFZJRFRDT04zX0lOVkZSTV9MT1cJCQkJKDEgPDwgMjgpCisjZGVmaW5lIFZJRFRD T04zX0ZSTVZSQVRFX01BU0sJCQkJMHhmCisjZGVmaW5lIFZJRFRDT04zX0ZSTVZSQVRFX1NISUZU CQkJCSgyNCkKKyNkZWZpbmUgVklEVENPTjNfRlJNVkZQRF9NQVNLCQkJCTB4ZmYKKyNkZWZpbmUg VklEVENPTjNfRlJNVkZQRF9TSElGVAkJCQkoOCkKKyNkZWZpbmUgVklEVENPTjNfRlJNVlNQV19N QVNLCQkJCTB4ZmYKKyNkZWZpbmUgVklEVENPTjNfRlJNVlNQV19TSElGVAkJCQkoMCkKKworCisj ZGVmaW5lIFNIQURPV0NPTgkJCQkJKDB4MzQpCisjZGVmaW5lIFNIQURPV0NPTl9DSF9FTkFCTEUo eCkJCQkJKDEgPDwgeCkKKyNkZWZpbmUgU0hBRE9XQ09OX0NIX0RJU0FCTEUoeCkJCQkJKDAgPDwg eCkKKyNkZWZpbmUgU0hBRE9XQ09OX0NIX0xPQ0FMX0VOQUJMRSh4KQkJCSgxIDw8ICh4ICsgNSkp CisjZGVmaW5lIFNIQURPV0NPTl9DSF9MT0NBTF9ESVNBQkxFKHgpCQkJKDAgPDwgKHggKyA1KSkK Ky8qIFNldCB0byBkaXNhYmxlIHdpbmRvdyA0LTAgc2hhZG93IHJlZ2lzdGVycycgdXBkYXRlICov CisjZGVmaW5lIFNIQURPV0NPTl9XNF9QUk9URUNUCQkJCSgxIDw8IDE0KQorI2RlZmluZSBTSEFE T1dDT05fVzNfUFJPVEVDVAkJCQkoMSA8PCAxMykKKyNkZWZpbmUgU0hBRE9XQ09OX1cyX1BST1RF Q1QJCQkJKDEgPDwgMTIpCisjZGVmaW5lIFNIQURPV0NPTl9XMV9QUk9URUNUCQkJCSgxIDw8IDEx KQorI2RlZmluZSBTSEFET1dDT05fVzBfUFJPVEVDVAkJCQkoMSA8PCAxMCkKKworCisvKiBWaWRl byBidWZmZXIgYWRkcmVzcyBzaGFkb3cgcmVnaXN0ZXJzIChyZWFkLW9ubHkpICovCisjZGVmaW5l IFZJRFdfQlVGX1NUQVJUX1NIQURPVyhfYnVmKQkJCSgweDIwYTAgKyAoKF9idWYpICogOCkpCisj ZGVmaW5lIFZJRFdfQlVGX0VORF9TSEFET1coX2J1ZikJCQkoMHgyMGQwICsgKChfYnVmKSAqIDgp KQorCisvKiBGb3Igd2luZG93cyAxLTQgKi8KKyNkZWZpbmUgV3hLRVlfQUxQSEEoX3dpbikJCQkJ KDB4MTYwICsgKChfd2luKSAqIDQpKQorCisjZGVmaW5lIENPTE9SR0FJTkNPTgkJCQkJKDB4MWMw KQorI2RlZmluZSBWRVNGUkNPTjAJCQkJCSgweDFjNCkKKyNkZWZpbmUgVkVTRlJDT04xCQkJCQko MHgxYzgpCisjZGVmaW5lIFZFU0ZSQ09OMgkJCQkJKDB4MWNjKQorCisvKiBIdWUgbWF0cml4IGNv ZWZmaWNpZW50cyAqLworI2RlZmluZSBIVUVDT0VGMDAJCQkJCSgweDFlYykKKyNkZWZpbmUgSFVF Q09FRjAxCQkJCQkoMHgxZjApCisjZGVmaW5lIEhVRUNPRUYxMAkJCQkJKDB4MWY0KQorI2RlZmlu ZSBIVUVDT0VGMTEJCQkJCSgweDFmOCkKKyNkZWZpbmUgSFVFT0ZGU0VUCQkJCQkoMHgxZmMpCisK Ky8qIFJUUU9TIGNvbnRyb2wgZm9yIHdpbmRvd3MgMC00Ki8KKyNkZWZpbmUgV3hSVFFPU0NPTihf d2luKQkJCQkoMHgyNjQgKyAoKF93aW4pICogNCkpCisKKy8qIEdhbW1hIExVVCBkYXRhIGZvciBp bmRleCBJMSBhbmQgSTAsIHdoZXJlCisgKiBJMCA9IF9pbmRleCwgSTEgPSBfaW5kZXggKyAxLgor ICovCisjZGVmaW5lIEdBTU1BTFVUX0JBU0UJCQkJCSgweDM3YykKKyNkZWZpbmUgR0FNTUFMVVRf STFJMChfaW5kZXgpCQkJKEdBTU1BTFVUX0JBU0UgKyAoKF9pbmRleCkgKiA0KSkKKworI2VuZGlm IC8qIF9fQVNNX0FSQ0hfTUFDSF9SRUdTX0ZCX0ggKi8KKwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0v cGxhdC1zYW1zdW5nL2luY2x1ZGUvcGxhdC9mYi5oIGIvYXJjaC9hcm0vcGxhdC1zYW1zdW5nL2lu Y2x1ZGUvcGxhdC9mYi5oCmluZGV4IGZmYzAxYTcuLjQ0MzlmZjMgMTAwNjQ0Ci0tLSBhL2FyY2gv YXJtL3BsYXQtc2Ftc3VuZy9pbmNsdWRlL3BsYXQvZmIuaAorKysgYi9hcmNoL2FybS9wbGF0LXNh bXN1bmcvaW5jbHVkZS9wbGF0L2ZiLmgKQEAgLTM1LDYgKzM1LDggQEAgc3RydWN0IHMzY19mYl9w ZF93aW4gewogICogQHNldHVwX2dwaW86IFNldHVwIHRoZSBleHRlcm5hbCBHUElPIHBpbnMgdG8g dGhlIHJpZ2h0IHN0YXRlIHRvIHRyYW5zZmVyCiAgKgkJdGhlIGRhdGEgZnJvbSB0aGUgZGlzcGxh eSBzeXN0ZW0gdG8gdGhlIGNvbm5lY3RlZCBkaXNwbGF5CiAgKgkJZGV2aWNlLgorICogQHNoYWRv d19jaF9lbmFibGU6IGl0IHNob3VsZCBiZSBlbmFibGVkIHRvIGVuYWJsZSB3aW5kb3cgbGF5ZXIg b24gczVwYzExMC4KKyAqIAkJICAgICAgZW5hYmxlIGlzIDEgYW5kIGRpc2FibGUgaXMgMC4KICAq IEB2aWRjb24wOiBUaGUgYmFzZSB2aWRjb24wIHZhbHVlcyB0byBjb250cm9sIHRoZSBwYW5lbCBk YXRhIGZvcm1hdC4KICAqIEB2aWRjb24xOiBUaGUgYmFzZSB2aWRjb24xIHZhbHVlcyB0byBjb250 cm9sIHRoZSBwYW5lbCBkYXRhIG91dHB1dC4KICAqIEB3aW46IFRoZSBzZXR1cCBkYXRhIGZvciBl YWNoIGhhcmR3YXJlIHdpbmRvdywgb3IgTlVMTCBmb3IgdW51c2VkLgpAQCAtNTAsNiArNTIsNyBA QCBzdHJ1Y3QgczNjX2ZiX3BsYXRkYXRhIHsKIAl2b2lkCSgqc2V0dXBfZ3Bpbykodm9pZCk7CiAK IAlzdHJ1Y3QgczNjX2ZiX3BkX3dpbgkqd2luW1MzQ19GQl9NQVhfV0lOXTsKKwl1MzIJCQlzaGFk b3dfY2hfZW5hYmxlOwogCiAJdTMyCQkJIHZpZGNvbjA7CiAJdTMyCQkJIHZpZGNvbjE7CmRpZmYg LS1naXQgYS9hcmNoL2FybS9wbGF0LXNhbXN1bmcvaW5jbHVkZS9wbGF0L3JlZ3MtZmItdjUuaCBi L2FyY2gvYXJtL3BsYXQtc2Ftc3VuZy9pbmNsdWRlL3BsYXQvcmVncy1mYi12NS5oCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlMDY4NmQKLS0tIC9kZXYvbnVsbAorKysgYi9h cmNoL2FybS9wbGF0LXNhbXN1bmcvaW5jbHVkZS9wbGF0L3JlZ3MtZmItdjUuaApAQCAtMCwwICsx LDEzOCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA5IFNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uCisg KiAgIFBhd2VsIE9zY2lhayA8cC5vc2NpYWtAc2Ftc3VuZy5jb20+CisgKgorICogQ29tbW9uIGZy YW1lYnVmZmVyIHJlZ2lzdGVyIGRlZmluaXRpb25zIGZvciBTYW1zdW5nIFM1UEMxeHggZmFtaWx5 LgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX1JFR1Nf RkJfVjVfSAorI2RlZmluZSBfX0FTTV9BUkNIX1JFR1NfRkJfVjVfSCBfX0ZJTEVfXworCisjaW5j bHVkZSA8cGxhdC9yZWdzLWZiLXY0Lmg+CisKKy8qIFZQMSBpbnRlcmZhY2UgdGltaW5nIGNvbnRy b2wgKi8KKyNkZWZpbmUgVlAxQ09OMAkJCQkJCSgweDExOCkKKyNkZWZpbmUgVlAxX1JBVEVDT05f RU4JCQkJCSgxIDw8IDMxKQorI2RlZmluZSBWUDFfQ0xLUkFURV9NQVNLCQkJCSgweGZmKQorCisj ZGVmaW5lIFZQMUNPTjEJCQkJCQkoMHgxMWMpCisjZGVmaW5lIFZQMV9WVFJFR0NPTl9FTgkJCQkJ KDEgPDwgMzEpCisjZGVmaW5lIFZQMV9WQlBEX01BU0sJCQkJCSgweGZmZikKKyNkZWZpbmUgVlAx X1ZCUERfU0hJRlQJCQkJCSgxNikKKworCisjZGVmaW5lIFdQQUxDT05fSAkJCQkJKDB4MTljKQor I2RlZmluZSBXUEFMQ09OX0wJCQkJCSgweDFhMCkKKworLyogUGFsbGV0ZSBjb250cm8gZm9yIFdQ QUwwIGFuZCBXUEFMMSBpcyB0aGUgc2FtZSBhcyBpbiBTM0M2NHh4LCBidXQKKyAqIGRpZmZlcmVu dCBmb3IgV1BBTDItNAorICovCisvKiBJbiBXUEFMQ09OX0wgKGFrYSBXUEFMQ09OKSAqLworI2Rl ZmluZSBXUEFMQ09OX1cxUEFMXzMyQlBQX0E4ODgJCQkoMHg3IDw8IDMpCisjZGVmaW5lIFdQQUxD T05fVzBQQUxfMzJCUFBfQTg4OAkJCSgweDcgPDwgMCkKKworLyogVzJQQUwtVzRQQUwgY29uc2lz dCBvZiBvbmUgYml0IGZyb20gV1BBTENPTl9MIGFuZCB0d28gZnJvbSBXUEFMQ09OX0gsCisgKiBl LmcuIFcyUEFMWzIuLjBdIGlzIG1hZGUgb2YgKFdQQUxDT05fSFsxMC4uOV0sIFdQQUxDT05fTFs2 XSkuCisgKi8KKyNkZWZpbmUgV1BBTENPTl9MX1d4UEFMX0xfTUFTSwkJCQkoMHgxKQorI2RlZmlu ZSBXUEFMQ09OX0xfVzJQQUxfTF9TSElGVAkJCQkoNikKKyNkZWZpbmUgV1BBTENPTl9MX1czUEFM X0xfU0hJRlQJCQkJKDcpCisjZGVmaW5lIFdQQUxDT05fTF9XNFBBTF9MX1NISUZUCQkJCSg4KQor CisjZGVmaW5lIFdQQUxDT05fTF9XeFBBTF9IX01BU0sJCQkJKDB4MykKKyNkZWZpbmUgV1BBTENP Tl9IX1cyUEFMX0hfU0hJRlQJCQkJKDkpCisjZGVmaW5lIFdQQUxDT05fSF9XM1BBTF9IX1NISUZU CQkJCSgxMykKKyNkZWZpbmUgV1BBTENPTl9IX1c0UEFMX0hfU0hJRlQJCQkJKDE3KQorCisvKiBQ ZXItd2luZG93IGFscGhhIHZhbHVlIHJlZ2lzdGVycyAqLworLyogRm9yIHdpbmRvdyAwIDgtYml0 IGFscGhhIHZhbHVlcyBhcmUgaW4gVklEVzBBTFBIQXgsCisgKiBmb3Igd2luZG93cyAxLTQgYWxw aGEgdmFsdWVzIGNvbnNpc3Qgb2YgdHdvIHBhcnRzLCB0aGUgNCBsb3cgYml0cyBhcmUKKyAqIHRh a2VuIGZyb20gVklEV3hBTFBIQXggYW5kIDQgaGlnaCBiaXRzIGFyZSBmcm9tIFZJRE9TRHhDLAor ICogZS5nLiBXSU4xX0FMUEhBMF9CWzcuLjBdID0gKFZJRE9TRDFDWzMuLjBdLCBWSURXMUFMUEhB MFszLi4wXSkKKyAqLworI2RlZmluZSBWSURXeEFMUEhBMChfd2luKQkJCQkoMHgyMDAgKyAoX3dp biAqIDgpKQorI2RlZmluZSBWSURXeEFMUEhBMShfd2luKQkJCQkoMHgyMDQgKyAoX3dpbiAqIDgp KQorCisvKiBPbmx5IGZvciB3aW5kb3cgMCBpbiBWSURXMEFMUEhBeC4gKi8KKyNkZWZpbmUgVklE VzBBTFBIQXhfUihfeCkJCQkJKChfeCkgPDwgMTYpCisjZGVmaW5lIFZJRFcwQUxQSEF4X1JfTUFT SwkJCQkoMHhmZiA8PCAxNikKKyNkZWZpbmUgVklEVzBBTFBIQXhfUl9TSElGVAkJCQkoMTYpCisj ZGVmaW5lIFZJRFcwQUxQSEF4X0coX3gpCQkJCSgoX3gpIDw8IDgpCisjZGVmaW5lIFZJRFcwQUxQ SEF4X0dfTUFTSwkJCQkoMHhmZiA8PCA4KQorI2RlZmluZSBWSURXMEFMUEhBeF9HX1NISUZUCQkJ CSg4KQorI2RlZmluZSBWSURXMEFMUEhBeF9CKF94KQkJCQkoKF94KSA8PCAwKQorI2RlZmluZSBW SURXMEFMUEhBeF9CX01BU0sJCQkJKDB4ZmYgPDwgMCkKKyNkZWZpbmUgVklEVzBBTFBIQXhfQl9T SElGVAkJCQkoMCkKKworLyogTG93IDQgYml0cyBvZiBhbHBoYTAtMSBmb3Igd2luZG93cyAxLTQg Ki8KKyNkZWZpbmUgVklEVzE0QUxQSEF4X1JfTChfeCkJCQkJKChfeCkgPDwgMTYpCisjZGVmaW5l IFZJRFcxNEFMUEhBeF9SX0xfTUFTSwkJCQkoMHhmIDw8IDE2KQorI2RlZmluZSBWSURXMTRBTFBI QXhfUl9MX1NISUZUCQkJCSgxNikKKyNkZWZpbmUgVklEVzE0QUxQSEF4X0dfTChfeCkJCQkJKChf eCkgPDwgOCkKKyNkZWZpbmUgVklEVzE0QUxQSEF4X0dfTF9NQVNLCQkJCSgweGYgPDwgOCkKKyNk ZWZpbmUgVklEVzE0QUxQSEF4X0dfTF9TSElGVAkJCQkoOCkKKyNkZWZpbmUgVklEVzE0QUxQSEF4 X0JfTChfeCkJCQkJKChfeCkgPDwgMCkKKyNkZWZpbmUgVklEVzE0QUxQSEF4X0JfTF9NQVNLCQkJ CSgweGYgPDwgMCkKKyNkZWZpbmUgVklEVzE0QUxQSEF4X0JfTF9TSElGVAkJCQkoMCkKKworCisv KiBQZXItd2luZG93IGJsZW5kaW5nIGVxdWF0aW9uIGNvbnRyb2wgcmVnaXN0ZXJzICovCisjZGVm aW5lIEJMRU5ERVF4KF93aW4pCQkJCQkoMHgyNDQgKyAoKF93aW4pICogNCkpCisjZGVmaW5lIEJM RU5ERVExCQkJCQkoMHgyNDQpCisjZGVmaW5lIEJMRU5ERVEyCQkJCQkoMHgyNDgpCisjZGVmaW5l IEJMRU5ERVEzCQkJCQkoMHgyNGMpCisjZGVmaW5lIEJMRU5ERVE0CQkJCQkoMHgyNTApCisKKyNk ZWZpbmUgQkxFTkRFUXhfUV9GVU5DKF94KQkJCQkoKF94KSA8PCAxOCkKKyNkZWZpbmUgQkxFTkRF UXhfUV9GVU5DX01BU0sJCQkJKDB4ZiA8PCAxOCkKKyNkZWZpbmUgQkxFTkRFUXhfUF9GVU5DKF94 KQkJCQkoKF94KSA8PCAxMikKKyNkZWZpbmUgQkxFTkRFUXhfUF9GVU5DX01BU0sJCQkJKDB4ZiA8 PCAxMikKKyNkZWZpbmUgQkxFTkRFUXhfQl9GVU5DKF94KQkJCQkoKF94KSA8PCA2KQorI2RlZmlu ZSBCTEVOREVReF9CX0ZVTkNfTUFTSwkJCQkoMHhmIDw8IDYpCisjZGVmaW5lIEJMRU5ERVF4X0Ff RlVOQyhfeCkJCQkJKChfeCkgPDwgMCkKKyNkZWZpbmUgQkxFTkRFUXhfQV9GVU5DX01BU0sJCQkJ KDB4ZiA8PCAwKQorCisjZGVmaW5lIEJMRU5EQ09OCQkJCQkoMHgyNjApCisjZGVmaW5lIEJMRU5E Q09OXzhCSVRfQUxQSEEJCQkJKDEgPDwgMCkKKworLyogUGVyLXdpbmRvdyBwYWxldHRlIGJhc2Ug YWRkcmVzc2VzIChzdGFydCBvZiBwYWxldHRlIG1lbW9yeSkuCisgKiBFYWNoIHdpbmRvdyBwYWxl dHRlIGFyZWEgY29uc2lzdHMgb2YgMjU2IDMyLWJpdCBlbnRyaWVzLgorICogU1RBUlQgaXMgdGhl IGZpcnN0IGFkZHJlc3MgKGVudHJ5IDB0aCksIEVORCBpcyB0aGUgYWRkcmVzcyBvZiAyNTV0aCBl bnRyeS4KKyAqLworI2RlZmluZSBXSU4wX1BBTF9CQVNFCQkJCQkoMHgyNDAwKQorI2RlZmluZSBX SU4wX1BBTF9FTkQJCQkJCSgweDI3ZmMpCisjZGVmaW5lIFdJTjFfUEFMX0JBU0UJCQkJCSgweDI4 MDApCisjZGVmaW5lIFdJTjFfUEFMX0VORAkJCQkJKDB4MmJmYykKKyNkZWZpbmUgV0lOMl9QQUxf QkFTRQkJCQkJKDB4MmMwMCkKKyNkZWZpbmUgV0lOMl9QQUxfRU5ECQkJCQkoMHgyZmZjKQorI2Rl ZmluZSBXSU4zX1BBTF9CQVNFCQkJCQkoMHgzMDAwKQorI2RlZmluZSBXSU4zX1BBTF9FTkQJCQkJ CSgweDMzZmMpCisjZGVmaW5lIFdJTjRfUEFMX0JBU0UJCQkJCSgweDM0MDApCisjZGVmaW5lIFdJ TjRfUEFMX0VORAkJCQkJKDB4MzdmYykKKworI2RlZmluZSBXSU4wX1BBTChfZW50cnkpCQkJKFdJ TjBfUEFMX0JBU0UgKyAoKF9lbnRyeSkgKiA0KSkKKyNkZWZpbmUgV0lOMV9QQUwoX2VudHJ5KQkJ CShXSU4xX1BBTF9CQVNFICsgKChfZW50cnkpICogNCkpCisjZGVmaW5lIFdJTjJfUEFMKF9lbnRy eSkJCQkoV0lOMl9QQUxfQkFTRSArICgoX2VudHJ5KSAqIDQpKQorI2RlZmluZSBXSU4zX1BBTChf ZW50cnkpCQkJKFdJTjNfUEFMX0JBU0UgKyAoKF9lbnRyeSkgKiA0KSkKKyNkZWZpbmUgV0lONF9Q QUwoX2VudHJ5KQkJCShXSU40X1BBTF9CQVNFICsgKChfZW50cnkpICogNCkpCisKK3N0YXRpYyBp bmxpbmUgdW5zaWduZWQgaW50IHMzY19mYl9wYWxfcmVnKHVuc2lnbmVkIGludCB3aW5kb3csIGlu dCByZWcpCit7CisJc3dpdGNoICh3aW5kb3cpIHsKKwljYXNlIDA6IHJldHVybiBXSU4wX1BBTChy ZWcpOworCWNhc2UgMTogcmV0dXJuIFdJTjFfUEFMKHJlZyk7CisJY2FzZSAyOiByZXR1cm4gV0lO Ml9QQUwocmVnKTsKKwljYXNlIDM6IHJldHVybiBXSU4zX1BBTChyZWcpOworCWNhc2UgNDogcmV0 dXJuIFdJTjRfUEFMKHJlZyk7CisJfQorCisJQlVHKCk7Cit9CisKKworI2VuZGlmIC8qIF9fQVNN X0FSQ0hfUkVHU19GQl9WNV9IICovCisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vS2NvbmZp ZyBiL2RyaXZlcnMvdmlkZW8vS2NvbmZpZwppbmRleCA2ZTE2MjQ0Li4yMTkwMDMxIDEwMDY0NAot LS0gYS9kcml2ZXJzL3ZpZGVvL0tjb25maWcKKysrIGIvZHJpdmVycy92aWRlby9LY29uZmlnCkBA IC0xOTE0LDcgKzE5MTQsNyBAQCBjb25maWcgRkJfVE1JT19BQ0NFTEwKIAogY29uZmlnIEZCX1Mz QwogCXRyaXN0YXRlICJTYW1zdW5nIFMzQyBmcmFtZWJ1ZmZlciBzdXBwb3J0IgotCWRlcGVuZHMg b24gRkIgJiYgQVJDSF9TM0M2NFhYCisJZGVwZW5kcyBvbiBGQiAmJiAoQVJDSF9TM0M2NFhYIHx8 IEFSQ0hfUzVQVjIxMCkKIAlzZWxlY3QgRkJfQ0ZCX0ZJTExSRUNUCiAJc2VsZWN0IEZCX0NGQl9D T1BZQVJFQQogCXNlbGVjdCBGQl9DRkJfSU1BR0VCTElUCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zp ZGVvL3MzYy1mYi5jIGIvZHJpdmVycy92aWRlby9zM2MtZmIuYwppbmRleCA5NjgyZWNjLi4zNDAy NjdlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL3MzYy1mYi5jCisrKyBiL2RyaXZlcnMvdmlk ZW8vczNjLWZiLmMKQEAgLTI2OCw3ICsyNjgsNyBAQCBzdGF0aWMgaW50IHMzY19mYl9zZXRfcGFy KHN0cnVjdCBmYl9pbmZvICppbmZvKQogCXZvaWQgX19pb21lbSAqcmVncyA9IHNmYi0+cmVnczsK IAlpbnQgd2luX25vID0gd2luLT5pbmRleDsKIAl1MzIgb3NkY19kYXRhID0gMDsKLQl1MzIgZGF0 YTsKKwl1MzIgZGF0YSwgc2hhZG93ID0gMDsKIAl1MzIgcGFnZXdpZHRoOwogCWludCBjbGtkaXY7 CiAKQEAgLTM3Miw2ICszNzIsMTIgQEAgc3RhdGljIGludCBzM2NfZmJfc2V0X3BhcihzdHJ1Y3Qg ZmJfaW5mbyAqaW5mbykKIAogCWRhdGEgPSBXSU5DT054X0VOV0lOOwogCisJLyogc2hhZG93X2No X2VuYWJsZSBzaG91bGQgYmUgMSB0byBlbmFibGUgd2luZG93IGxheWVyIG9uIHM1cGMxMTAuICov CisJaWYgKHNmYi0+cGRhdGEtPnNoYWRvd19jaF9lbmFibGUpIHsKKwkJc2hhZG93ID0gcmVhZGwo c2ZiLT5yZWdzICsgU0hBRE9XQ09OKTsKKwkJc2hhZG93IHw9IFNIQURPV0NPTl9DSF9FTkFCTEUo d2luX25vKTsKKwl9CisKIAkvKiBub3RlLCBzaW5jZSB3ZSBoYXZlIHRvIHJvdW5kIHVwIHRoZSBi aXRzLXBlci1waXhlbCwgd2UgZW5kIHVwCiAJICogcmVseWluZyBvbiB0aGUgYml0ZmllbGQgaW5m b3JtYXRpb24gZm9yIHIvZy9iL2EgdG8gd29yayBvdXQKIAkgKiBleGFjdGx5IHdoaWNoIG1vZGUg b2Ygb3BlcmF0aW9uIGlzIGludGVuZGVkLiAqLwpAQCAtNDQ0LDYgKzQ1MCw3IEBAIHN0YXRpYyBp bnQgczNjX2ZiX3NldF9wYXIoc3RydWN0IGZiX2luZm8gKmluZm8pCiAKIAl3cml0ZWwoZGF0YSwg cmVncyArIFdJTkNPTih3aW5fbm8pKTsKIAl3cml0ZWwoMHgwLCByZWdzICsgV0lOeE1BUCh3aW5f bm8pKTsKKwl3cml0ZWwoc2hhZG93LCBzZmItPnJlZ3MgKyBTSEFET1dDT04pOwogCiAJcmV0dXJu IDA7CiB9CkBAIC03MjQsMTIgKzczMSwyMSBAQCBzdGF0aWMgdm9pZCBzM2NfZmJfZnJlZV9tZW1v cnkoc3RydWN0IHMzY19mYiAqc2ZiLCBzdHJ1Y3QgczNjX2ZiX3dpbiAqd2luKQogICovCiBzdGF0 aWMgdm9pZCBzM2NfZmJfcmVsZWFzZV93aW4oc3RydWN0IHMzY19mYiAqc2ZiLCBzdHJ1Y3QgczNj X2ZiX3dpbiAqd2luKQogeworCXUzMiBzaGFkb3c7CisKIAlpZiAod2luLT5mYmluZm8pIHsKIAkJ dW5yZWdpc3Rlcl9mcmFtZWJ1ZmZlcih3aW4tPmZiaW5mbyk7CiAJCWZiX2RlYWxsb2NfY21hcCgm d2luLT5mYmluZm8tPmNtYXApOwogCQlzM2NfZmJfZnJlZV9tZW1vcnkoc2ZiLCB3aW4pOwogCQlm cmFtZWJ1ZmZlcl9yZWxlYXNlKHdpbi0+ZmJpbmZvKTsKIAl9CisKKwkvKiBzaGFkb3dfY2hfZW5h YmxlIHNob3VsZCBiZSAwIHRvIGRpc2FibGUgd2luZG93IGxheWVyIG9uIHM1cGMxMTAuICovCisJ aWYgKHNmYi0+cGRhdGEtPnNoYWRvd19jaF9lbmFibGUpIHsKKwkJc2hhZG93ID0gcmVhZGwoc2Zi LT5yZWdzICsgU0hBRE9XQ09OKTsKKwkJc2hhZG93ICY9IH5TSEFET1dDT05fQ0hfRElTQUJMRSh3 aW4tPmluZGV4KTsKKwkJd3JpdGVsKHNoYWRvdywgc2ZiLT5yZWdzICsgU0hBRE9XQ09OKTsKKwl9 CiB9CiAKIC8qKgo= --000e0cd139c4f3a4a20485fc71f6--