From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Krzysztof Helt" Date: Fri, 26 May 2006 16:51:30 +0000 Subject: cgsix bmove added for 2.4 Message-Id: <4477321286ee2@wp.pl> MIME-Version: 1 Content-Type: multipart/mixed; boundary="part447732128963f" List-Id: To: sparclinux@vger.kernel.org This is a multi-part message in MIME format. --part447732128963f Content-Type: text/plain; charset="iso-8859-2" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Hello, This is a patch for the cg6 frame buffer which adds hardware accelerated con_bmove function (bit blitter). It is used for some functions like bash line editing and under vim, but it is not used to scroll the screen by default. I forced it to be used for scrolling (not included in the patch) but the speed of scrolling with blitter is twice slower. I will look into it. I tested it on SS20 with two SuperSparcs. I would like to hear a feedback from someone with Ultrasparc system and cgsix. I also found that the sbusfb driver uses only 1024x864 pixels for the framebuffer area leaving a margin around. The 2.6.15 kernel has not any margin. Is it a good idea to get rid of it for the 2.4 and have more characters on the frame buffer? I also saw the cgsix driver is included into OpenSolaris. I didn't look into it so this is my question. How can I look into the OpenSolaris driver for the cgix and be able to wrote something for the linux kernel? (It can be done through another person if needed). Regards, Krzysztof PS. The patch has also some formating changes. ---------------------------------------------------- Gdy nadchodzi prze=B3omowy moment w historii, musisz zdecydowa=E6,=20 po czyjej stronie b=EAdziesz.=20 "X-Men: Ostatni bastion" - w kinach od 26 maja.=20 http://klik.wp.pl/?adr=3Dhttp%3A%2F%2Fwww.x-men.wp.pl&sid=3D763 --part447732128963f Content-Type: application/octet-stream; name="cgsix-bmove.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="cgsix-bmove.patch" ZGlmZiAtdXIgbGludXgtMi40LjMyL2RyaXZlcnMvdmlkZW8vY2dzaXhmYi5jIGxpbnV4LTIuNC4z My9kcml2ZXJzL3ZpZGVvL2Nnc2l4ZmIuYwotLS0gbGludXgtMi40LjMyL2RyaXZlcnMvdmlkZW8v Y2dzaXhmYi5jCTIwMDEtMTAtMTcgMjM6MTY6MzkuMDAwMDAwMDAwICswMjAwCisrKyBsaW51eC0y LjQuMzMvZHJpdmVycy92aWRlby9jZ3NpeGZiLmMJMjAwNi0wNS0yNiAxNjo1MjoxOS4wMDAwMDAw MDAgKzAyMDAKQEAgLTQyLDMwICs0MiwzMCBAQAogI2RlZmluZSBDRzZfUkFNX09GRlNFVCAgICAg ICAweDgwMDAwMFVMCiAKIC8qIEZIQyBkZWZpbml0aW9ucyAqLwotI2RlZmluZSBDRzZfRkhDX0ZC SURfU0hJRlQgICAgICAgICAgIDI0Ci0jZGVmaW5lIENHNl9GSENfRkJJRF9NQVNLICAgICAgICAg ICAgMjU1Ci0jZGVmaW5lIENHNl9GSENfUkVWX1NISUZUICAgICAgICAgICAgMjAKLSNkZWZpbmUg Q0c2X0ZIQ19SRVZfTUFTSyAgICAgICAgICAgICAxNQotI2RlZmluZSBDRzZfRkhDX0ZST1BfRElT QUJMRSAgICAgICAgICgxIDw8IDE5KQotI2RlZmluZSBDRzZfRkhDX1JPV19ESVNBQkxFICAgICAg ICAgICgxIDw8IDE4KQotI2RlZmluZSBDRzZfRkhDX1NSQ19ESVNBQkxFICAgICAgICAgICgxIDw8 IDE3KQotI2RlZmluZSBDRzZfRkhDX0RTVF9ESVNBQkxFICAgICAgICAgICgxIDw8IDE2KQotI2Rl ZmluZSBDRzZfRkhDX1JFU0VUICAgICAgICAgICAgICAgICgxIDw8IDE1KQotI2RlZmluZSBDRzZf RkhDX0xJVFRMRV9FTkRJQU4gICAgICAgICgxIDw8IDEzKQotI2RlZmluZSBDRzZfRkhDX1JFU19N QVNLICAgICAgICAgICAgICgzIDw8IDExKQotI2RlZmluZSBDRzZfRkhDXzEwMjQgICAgICAgICAg ICAgICAgICgwIDw8IDExKQotI2RlZmluZSBDRzZfRkhDXzExNTIgICAgICAgICAgICAgICAgICgx IDw8IDExKQotI2RlZmluZSBDRzZfRkhDXzEyODAgICAgICAgICAgICAgICAgICgyIDw8IDExKQot I2RlZmluZSBDRzZfRkhDXzE2MDAgICAgICAgICAgICAgICAgICgzIDw8IDExKQotI2RlZmluZSBD RzZfRkhDX0NQVV9NQVNLICAgICAgICAgICAgICgzIDw8IDkpCi0jZGVmaW5lIENHNl9GSENfQ1BV X1NQQVJDICAgICAgICAgICAgKDAgPDwgOSkKLSNkZWZpbmUgQ0c2X0ZIQ19DUFVfNjgwMjAgICAg ICAgICAgICAoMSA8PCA5KQotI2RlZmluZSBDRzZfRkhDX0NQVV8zODYgICAgICAgICAgICAgICgy IDw8IDkpCi0jZGVmaW5lIENHNl9GSENfVEVTVAkJICAgICAoMSA8PCA4KQotI2RlZmluZSBDRzZf RkhDX1RFU1RfWF9TSElGVAkgICAgIDQKLSNkZWZpbmUgQ0c2X0ZIQ19URVNUX1hfTUFTSwkgICAg IDE1Ci0jZGVmaW5lIENHNl9GSENfVEVTVF9ZX1NISUZUCSAgICAgMAotI2RlZmluZSBDRzZfRkhD X1RFU1RfWV9NQVNLCSAgICAgMTUKKyNkZWZpbmUgQ0c2X0ZIQ19GQklEX1NISUZUCQkyNAorI2Rl ZmluZSBDRzZfRkhDX0ZCSURfTUFTSwkJMjU1CisjZGVmaW5lIENHNl9GSENfUkVWX1NISUZUCQky MAorI2RlZmluZSBDRzZfRkhDX1JFVl9NQVNLCQkxNQorI2RlZmluZSBDRzZfRkhDX0ZST1BfRElT QUJMRQkJKDEgPDwgMTkpCisjZGVmaW5lIENHNl9GSENfUk9XX0RJU0FCTEUJCSgxIDw8IDE4KQor I2RlZmluZSBDRzZfRkhDX1NSQ19ESVNBQkxFCQkoMSA8PCAxNykKKyNkZWZpbmUgQ0c2X0ZIQ19E U1RfRElTQUJMRQkJKDEgPDwgMTYpCisjZGVmaW5lIENHNl9GSENfUkVTRVQJCQkoMSA8PCAxNSkK KyNkZWZpbmUgQ0c2X0ZIQ19MSVRUTEVfRU5ESUFOCQkoMSA8PCAxMykKKyNkZWZpbmUgQ0c2X0ZI Q19SRVNfTUFTSwkJKDMgPDwgMTEpCisjZGVmaW5lIENHNl9GSENfMTAyNAkJCSgwIDw8IDExKQor I2RlZmluZSBDRzZfRkhDXzExNTIJCQkoMSA8PCAxMSkKKyNkZWZpbmUgQ0c2X0ZIQ18xMjgwCQkJ KDIgPDwgMTEpCisjZGVmaW5lIENHNl9GSENfMTYwMAkJCSgzIDw8IDExKQorI2RlZmluZSBDRzZf RkhDX0NQVV9NQVNLCQkoMyA8PCA5KQorI2RlZmluZSBDRzZfRkhDX0NQVV9TUEFSQwkJKDAgPDwg OSkKKyNkZWZpbmUgQ0c2X0ZIQ19DUFVfNjgwMjAJCSgxIDw8IDkpCisjZGVmaW5lIENHNl9GSENf Q1BVXzM4NgkgICAgIAkJKDIgPDwgOSkKKyNkZWZpbmUgQ0c2X0ZIQ19URVNUCQkJKDEgPDwgOCkK KyNkZWZpbmUgQ0c2X0ZIQ19URVNUX1hfU0hJRlQJCTQKKyNkZWZpbmUgQ0c2X0ZIQ19URVNUX1hf TUFTSwkJMTUKKyNkZWZpbmUgQ0c2X0ZIQ19URVNUX1lfU0hJRlQJCTAKKyNkZWZpbmUgQ0c2X0ZI Q19URVNUX1lfTUFTSwkJMTUKIAogLyogRkJDIG1vZGUgZGVmaW5pdGlvbnMgKi8KICNkZWZpbmUg Q0c2X0ZCQ19CTElUX0lHTk9SRQkJMHgwMDAwMDAwMApAQCAtMTE2LDE3ICsxMTYsMTcgQEAKICNk ZWZpbmUgQ0c2X0ZCQ19JTkRFWF9NQVNLCQkweDAwMDAwMDMwCiAKIC8qIFRIQyBkZWZpbml0aW9u cyAqLwotI2RlZmluZSBDRzZfVEhDX01JU0NfUkVWX1NISUZUICAgICAgIDE2Ci0jZGVmaW5lIENH Nl9USENfTUlTQ19SRVZfTUFTSyAgICAgICAgMTUKLSNkZWZpbmUgQ0c2X1RIQ19NSVNDX1JFU0VU ICAgICAgICAgICAoMSA8PCAxMikKLSNkZWZpbmUgQ0c2X1RIQ19NSVNDX1ZJREVPICAgICAgICAg ICAoMSA8PCAxMCkKLSNkZWZpbmUgQ0c2X1RIQ19NSVNDX1NZTkMgICAgICAgICAgICAoMSA8PCA5 KQotI2RlZmluZSBDRzZfVEhDX01JU0NfVlNZTkMgICAgICAgICAgICgxIDw8IDgpCi0jZGVmaW5l IENHNl9USENfTUlTQ19TWU5DX0VOQUIgICAgICAgKDEgPDwgNykKLSNkZWZpbmUgQ0c2X1RIQ19N SVNDX0NVUlNfUkVTICAgICAgICAoMSA8PCA2KQotI2RlZmluZSBDRzZfVEhDX01JU0NfSU5UX0VO QUIgICAgICAgICgxIDw8IDUpCi0jZGVmaW5lIENHNl9USENfTUlTQ19JTlQgICAgICAgICAgICAg KDEgPDwgNCkKLSNkZWZpbmUgQ0c2X1RIQ19NSVNDX0lOSVQgICAgICAgICAgICAweDlmCisjZGVm aW5lIENHNl9USENfTUlTQ19SRVZfU0hJRlQJCTE2CisjZGVmaW5lIENHNl9USENfTUlTQ19SRVZf TUFTSwkJMTUKKyNkZWZpbmUgQ0c2X1RIQ19NSVNDX1JFU0VUCQkoMSA8PCAxMikKKyNkZWZpbmUg Q0c2X1RIQ19NSVNDX1ZJREVPCQkoMSA8PCAxMCkKKyNkZWZpbmUgQ0c2X1RIQ19NSVNDX1NZTkMJ CSgxIDw8IDkpCisjZGVmaW5lIENHNl9USENfTUlTQ19WU1lOQwkJKDEgPDwgOCkKKyNkZWZpbmUg Q0c2X1RIQ19NSVNDX1NZTkNfRU5BQgkJKDEgPDwgNykKKyNkZWZpbmUgQ0c2X1RIQ19NSVNDX0NV UlNfUkVTCQkoMSA8PCA2KQorI2RlZmluZSBDRzZfVEhDX01JU0NfSU5UX0VOQUIJCSgxIDw8IDUp CisjZGVmaW5lIENHNl9USENfTUlTQ19JTlQJCSgxIDw8IDQpCisjZGVmaW5lIENHNl9USENfTUlT Q19JTklUCQkweDlmCiAKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIApAQCAtMTM4LDcgKzEzOCw3 IEBACiB9OwogCiBzdHJ1Y3QgY2c2X3RoYyB7Ci0gICAgICAgIHVpbnQgdGhjX3BhZDBbNTEyXTsK Kwl1aW50IHRoY19wYWQwWzUxMl07CiAJdm9sYXRpbGUgdWludCB0aGNfaHM7CQkvKiBoc3luYyB0 aW1pbmcgKi8KIAl2b2xhdGlsZSB1aW50IHRoY19oc2R2czsKIAl2b2xhdGlsZSB1aW50IHRoY19o ZDsKQEAgLTE1Niw3ICsxNTYsNyBAQAogCXUzMgkJeHh4MFsxXTsKIAl2b2xhdGlsZSB1MzIJbW9k ZTsKIAl2b2xhdGlsZSB1MzIJY2xpcDsKLQl1MzIJCXh4eDFbMV07CSAgICAKKwl1MzIJCXh4eDFb MV07CiAJdm9sYXRpbGUgdTMyCXM7CiAJdm9sYXRpbGUgdTMyCWRyYXc7CiAJdm9sYXRpbGUgdTMy CWJsaXQ7CkBAIC0yMTEsMTUgKzIxMSwxNSBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBzYnVzX21t YXBfbWFwIGNnNl9tbWFwX21hcFtdID0gewotCXsgQ0c2X0ZCQywJCUNHNl9GQkNfT0ZGU0VULAkJ UEFHRV9TSVpFIAkJfSwKLQl7IENHNl9URUMsCQlDRzZfVEVDX09GRlNFVCwJCVBBR0VfU0laRSAJ CX0sCi0JeyBDRzZfQlRSRUdTLAkJQ0c2X0JST09LVFJFRV9PRkZTRVQsCVBBR0VfU0laRSAJCX0s Ci0JeyBDRzZfRkhDLAkJQ0c2X0ZIQ19PRkZTRVQsCQlQQUdFX1NJWkUgCQl9LAotCXsgQ0c2X1RI QywJCUNHNl9USENfT0ZGU0VULAkJUEFHRV9TSVpFIAkJfSwKLQl7IENHNl9ST00sCQlDRzZfUk9N X09GRlNFVCwJCTB4MTAwMDAgICAJCX0sCi0JeyBDRzZfUkFNLAkJQ0c2X1JBTV9PRkZTRVQsCQlT QlVTX01NQVBfRkJTSVpFKDEpICAJfSwKLQl7IENHNl9ESEMsCQlDRzZfREhDX09GRlNFVCwJCTB4 NDAwMDAgICAJCX0sCi0JeyAwLAkJCTAsCQkJMAkgIAkJfQorCXsgQ0c2X0ZCQywJCUNHNl9GQkNf T0ZGU0VULAkJUEFHRV9TSVpFCQl9LAorCXsgQ0c2X1RFQywJCUNHNl9URUNfT0ZGU0VULAkJUEFH RV9TSVpFCQl9LAorCXsgQ0c2X0JUUkVHUywJCUNHNl9CUk9PS1RSRUVfT0ZGU0VULAlQQUdFX1NJ WkUJCX0sCisJeyBDRzZfRkhDLAkJQ0c2X0ZIQ19PRkZTRVQsCQlQQUdFX1NJWkUJCX0sCisJeyBD RzZfVEhDLAkJQ0c2X1RIQ19PRkZTRVQsCQlQQUdFX1NJWkUJCX0sCisJeyBDRzZfUk9NLAkJQ0c2 X1JPTV9PRkZTRVQsCQkweDEwMDAwCQl9LAorCXsgQ0c2X1JBTSwJCUNHNl9SQU1fT0ZGU0VULAkJ U0JVU19NTUFQX0ZCU0laRSgxKQl9LAorCXsgQ0c2X0RIQywJCUNHNl9ESENfT0ZGU0VULAkJMHg0 MDAwMAkJfSwKKwl7IDAsCQkJMCwJCQkwCQkJfQogfTsKIAogc3RhdGljIHZvaWQgY2c2X3NldHVw KHN0cnVjdCBkaXNwbGF5ICpwKQpAQCAtMjI4LDYgKzIyOCw1NCBAQAogCXAtPm5leHRfcGxhbmUg PSAwOwogfQogCitzdGF0aWMgdm9pZCBjZzZfYm1vdmUoc3RydWN0IGRpc3BsYXkgKnAsIGludCBz eSwgaW50IHN4LCBpbnQgZHksIGludCBkeCwKKwkJICBpbnQgaGVpZ2h0LCBpbnQgd2lkdGgpCit7 CisJc3RydWN0IGZiX2luZm9fc2J1c2ZiICpmYiA9IChzdHJ1Y3QgZmJfaW5mb19zYnVzZmIgKilw LT5mYl9pbmZvOworCXJlZ2lzdGVyIHN0cnVjdCBjZzZfZmJjICpmYmMgPSBmYi0+cy5jZzYuZmJj OworCWludCB4MSwgeTEsIHgyLCB5MiwgdywgaDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWlu dCBpOworCisJaWYgKGZvbnRoZWlnaHRsb2cocCkpIHsKKwkJeTEgPSBzeSA8PCBmb250aGVpZ2h0 bG9nKHApOyB5MiA9IGR5IDw8IGZvbnRoZWlnaHRsb2cocCk7IGggPSBoZWlnaHQgPDwgZm9udGhl aWdodGxvZyhwKTsKKwl9IGVsc2UgeworCQl5MSA9IHN5ICogZm9udGhlaWdodChwKTsgeTIgPSBk eSAqIGZvbnRoZWlnaHQocCk7IGggPSBoZWlnaHQgKiBmb250aGVpZ2h0KHApOworCX0KKwlpZiAo Zm9udHdpZHRobG9nKHApKSB7CisJCXgxID0gc3ggPDwgZm9udHdpZHRobG9nKHApOyB4MiA9IGR4 IDw8IGZvbnR3aWR0aGxvZyhwKTsgdyA9IHdpZHRoIDw8IGZvbnR3aWR0aGxvZyhwKTsKKwl9IGVs c2UgeworCQl4MSA9IHN4ICogZm9udHdpZHRoKHApOyB4MiA9IGR4ICogZm9udHdpZHRoKHApOyB3 ID0gd2lkdGggKiBmb250d2lkdGgocCk7CisJfQorCXkxICs9IGZiLT55X21hcmdpbjsKKwl5MiAr PSBmYi0+eV9tYXJnaW47CisJeDEgKz0gZmItPnhfbWFyZ2luOworCXgyICs9IGZiLT54X21hcmdp bjsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZmItPmxvY2ssIGZsYWdzKTsKKwlkbyB7CisJCWkgPSBz YnVzX3JlYWRsKCZmYmMtPnMpOworCX0gd2hpbGUgKGkgJiAweDEwMDAwMDAwKTsKKwlzYnVzX3dy aXRlbCgweGZmLCAmZmJjLT5mZyk7CisJc2J1c193cml0ZWwoMHgwMCwgJmZiYy0+YmcpOworCXNi dXNfd3JpdGVsKH4wLCAmZmJjLT5waXhlbG0pOworCXNidXNfd3JpdGVsKDB4ZTg4MGNjY2MsICZm YmMtPmFsdSk7CisJc2J1c193cml0ZWwoMCwgJmZiYy0+cyk7CisJc2J1c193cml0ZWwoMCwgJmZi Yy0+Y2xpcCk7CisKKwlzYnVzX3dyaXRlbCh5MSwgJmZiYy0+eTApOworCXNidXNfd3JpdGVsKHgx LCAmZmJjLT54MCk7CisJc2J1c193cml0ZWwoeTEgKyBoIC0gMSwgJmZiYy0+eTEpOworCXNidXNf d3JpdGVsKHgxICsgdyAtIDEsICZmYmMtPngxKTsKKwlzYnVzX3dyaXRlbCh5MiwgJmZiYy0+eTIp OworCXNidXNfd3JpdGVsKHgyLCAmZmJjLT54Mik7CisJc2J1c193cml0ZWwoeTIgKyBoIC0gMSwg JmZiYy0+eTMpOworCXNidXNfd3JpdGVsKHgyICsgdyAtIDEsICZmYmMtPngzKTsKKwlkbyB7CisJ CWkgPSBzYnVzX3JlYWRsKCZmYmMtPmJsaXQpOworCX0gd2hpbGUgKGkgPCAwICYmIChpICYgMHgy MDAwMDAwMCkpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmZiLT5sb2NrLCBmbGFncyk7Cit9 CisKIHN0YXRpYyB2b2lkIGNnNl9jbGVhcihzdHJ1Y3QgdmNfZGF0YSAqY29ucCwgc3RydWN0IGRp c3BsYXkgKnAsIGludCBzeSwgaW50IHN4LAogCQkgICAgICBpbnQgaGVpZ2h0LCBpbnQgd2lkdGgp CiB7CkBAIC0yMzYsNyArMjg0LDcgQEAKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWludCB4LCB5 LCB3LCBoOwogCWludCBpOwotCQorCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmZiLT5sb2NrLCBmbGFn cyk7CiAJZG8gewogCQlpID0gc2J1c19yZWFkbCgmZmJjLT5zKTsKQEAgLTI0OSw3ICsyOTcsNyBA QAogCXNidXNfd3JpdGVsKDAsICZmYmMtPmNsaXApOwogCXNidXNfd3JpdGVsKH4wLCAmZmJjLT5w bSk7CiAKLSAgICAgICAgaWYgKGZvbnRoZWlnaHRsb2cocCkpIHsKKwlpZiAoZm9udGhlaWdodGxv ZyhwKSkgewogCQl5ID0gc3kgPDwgZm9udGhlaWdodGxvZyhwKTsgaCA9IGhlaWdodCA8PCBmb250 aGVpZ2h0bG9nKHApOwogCX0gZWxzZSB7CiAJCXkgPSBzeSAqIGZvbnRoZWlnaHQocCk7IGggPSBo ZWlnaHQgKiBmb250aGVpZ2h0KHApOwpAQCAtMjc1LDcgKzMyMyw3IEBACiAJaW50IGk7CiAJcmVn aXN0ZXIgc3RydWN0IGNnNl9mYmMgKmZiYyA9IGZiLT5zLmNnNi5mYmM7CiAJdW5zaWduZWQgbG9u ZyBmbGFnczsKLQkKKwogCXNwaW5fbG9ja19pcnFzYXZlKCZmYi0+bG9jaywgZmxhZ3MpOwogCWRv IHsKIAkJaSA9IHNidXNfcmVhZGwoJmZiYy0+cyk7CkBAIC00MjIsNyArNDcwLDcgQEAKIAkJCQkJ dTMyIHZhbCA9ICgoKHUzMikqZmQ0KyspIHwKIAkJCQkJCSAgICgoKCh1MzIpKmZkMysrKSB8CiAJ CQkJCQkgICAgICgoKCh1MzIpKmZkMisrKSB8Ci0JCQkJCQkgICAgICAgKCgodTMyKSpmZDErKykg CisJCQkJCQkgICAgICAgKCgodTMyKSpmZDErKykKIAkJCQkJCQk8PCBmb250d2lkdGgocCkpKSA8 PAogCQkJCQkJICAgICAgZm9udHdpZHRoKHApKSkgPDwKIAkJCQkJCSAgICBmb250d2lkdGgocCkp KSA8PApAQCAtNDkzLDcgKzU0MSw3IEBACiAJc3RydWN0IGJ0X3JlZ3MgKmJ0ID0gZmItPnMuY2c2 LmJ0OwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IGk7Ci0gICAgICAgICAgICAgICAgCisK IAlzcGluX2xvY2tfaXJxc2F2ZSgmZmItPmxvY2ssIGZsYWdzKTsKIAlzYnVzX3dyaXRlbChpbmRl eCA8PCAyNCwgJmJ0LT5hZGRyKTsKIAlmb3IgKGkgPSBpbmRleDsgY291bnQtLTsgaSsrKXsKQEAg LTUxMSw3ICs1NTksNyBAQAogewogCXN0cnVjdCBidF9yZWdzICpidCA9IGZiLT5zLmNnNi5idDsK IAl1bnNpZ25lZCBsb25nIGZsYWdzOwotICAgICAgICAgICAgICAgIAorCiAJc3Bpbl9sb2NrX2ly cXNhdmUoJmZiLT5sb2NrLCBmbGFncyk7CiAJc2J1c193cml0ZWwoMCwgJmJ0LT5hZGRyKTsKIAlz YnVzX3dyaXRlbCgweGZmZmZmZmZmLCAmYnQtPmNvbG9yX21hcCk7CkBAIC01MjIsMTkgKzU3MCwx OSBAQAogCiBzdGF0aWMgc3RydWN0IGRpc3BsYXlfc3dpdGNoIGNnNl9kaXNwc3cgX19pbml0ZGF0 YSA9IHsKIAlzZXR1cDoJCWNnNl9zZXR1cCwKLQlibW92ZToJCWZiY29uX3JlZHJhd19ibW92ZSwK KwlibW92ZToJCWNnNl9ibW92ZSwKIAljbGVhcjoJCWNnNl9jbGVhciwKIAlwdXRjOgkJY2c2X3B1 dGMsCiAJcHV0Y3M6CQljZzZfcHV0Y3MsCi0JcmV2YzoJCWNnNl9yZXZjLCAKKwlyZXZjOgkJY2c2 X3JldmMsCiAJZm9udHdpZHRobWFzazoJRk9OVFdJRFRIUkFOR0UoMSwxNikgLyogQWxsb3cgZm9u dHdpZHRocyB1cCB0byAxNiAqLwogfTsKIAogc3RhdGljIHZvaWQgY2c2X3NldGN1cnNvcm1hcCAo c3RydWN0IGZiX2luZm9fc2J1c2ZiICpmYiwgdTggKnJlZCwgdTggKmdyZWVuLCB1OCAqYmx1ZSkK IHsKLSAgICAgICAgc3RydWN0IGJ0X3JlZ3MgKmJ0ID0gZmItPnMuY2c2LmJ0OworCXN0cnVjdCBi dF9yZWdzICpidCA9IGZiLT5zLmNnNi5idDsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwotICAgICAg ICAKKwogCXNwaW5fbG9ja19pcnFzYXZlKCZmYi0+bG9jaywgZmxhZ3MpOwogCXNidXNfd3JpdGVs KDEgPDwgMjQsICZidC0+YWRkcik7CiAJc2J1c193cml0ZWwocmVkWzBdIDw8IDI0LCAmYnQtPmN1 cnNvcik7CkBAIC02MTQsNyArNjYyLDcgQEAKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXUzMiBt b2RlLCB0bXA7CiAJaW50IGk7Ci0JCisKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZmItPmxvY2ssIGZs YWdzKTsKIAogCS8qIFR1cm4gb2ZmIHN0dWZmIGluIHRoZSBUcmFuc2Zvcm0gRW5naW5lLiAqLwpA QCAtNjc5LDcgKzcyNyw3IEBACiAJc3RydWN0IGZiX2luZm9fc2J1c2ZiICpmYiA9IHNidXNmYmlu Zm8oaW5mbyk7CiAJcmVnaXN0ZXIgc3RydWN0IGNnNl9mYmMgKmZiYyA9IGZiLT5zLmNnNi5mYmM7 CiAJaW50IGk7Ci0JCisKIAlkbyB7CiAJCWkgPSBzYnVzX3JlYWRsKCZmYmMtPnMpOwogCX0gd2hp bGUgKGkgJiAweDEwMDAwMDAwKTsKQEAgLTcwNSwxMSArNzUzLDExIEBACiAJZmJvcHMgPSBrbWFs bG9jKHNpemVvZigqZmJvcHMpLCBHRlBfS0VSTkVMKTsKIAlpZiAoZmJvcHMgPT0gTlVMTCkKIAkJ cmV0dXJuIE5VTEw7Ci0JCisKIAkqZmJvcHMgPSAqZmItPmluZm8uZmJvcHM7CiAJZmJvcHMtPmZi X3Jhc3RlcmltZyA9IGNnNl9yYXN0ZXJpbWc7CiAJZmItPmluZm8uZmJvcHMgPSBmYm9wczsKLQkK KwogCWlmIChwcm9tX2dldGJvb2wgKGZiLT5wcm9tX25vZGUsICJkYmxidWYiKSkgewogCQl0eXBl LT5mYl9zaXplICo9IDQ7CiAJCWZpeC0+c21lbV9sZW4gKj0gNDsKQEAgLTcxNyw5ICs3NjUsOSBA QAogCiAJZml4LT5saW5lX2xlbmd0aCA9IGZiLT52YXIueHJlc192aXJ0dWFsOwogCWZpeC0+YWNj ZWwgPSBGQl9BQ0NFTF9TVU5fQ0dTSVg7Ci0JCisKIAl2YXItPmFjY2VsX2ZsYWdzID0gRkJfQUND RUxGX1RFWFQ7Ci0JCisKIAlkaXNwLT5zY3JvbGxtb2RlID0gU0NST0xMX1lSRURSQVc7CiAJaWYg KCFkaXNwLT5zY3JlZW5fYmFzZSkgewogCQlkaXNwLT5zY3JlZW5fYmFzZSA9IChjaGFyICopCkBA IC03NjcsMjAgKzgxNSwyMCBAQAogCWZiLT5ibGFuayA9IGNnNl9ibGFuazsKIAlmYi0+dW5ibGFu ayA9IGNnNl91bmJsYW5rOwogCWZiLT5yZXNldCA9IGNnNl9yZXNldDsKLQkKKwogCWZiLT5waHlz YmFzZSA9IHBoeXM7CiAJZmItPm1tYXBfbWFwID0gY2c2X21tYXBfbWFwOwotCQorCiAJLyogSW5p dGlhbGl6ZSBCcm9va3RyZWUgREFDICovCi0Jc2J1c193cml0ZWwoMHgwNCA8PCAyNCwgJmJ0LT5h ZGRyKTsgICAgICAgICAvKiBjb2xvciBwbGFuZXMgKi8KKwlzYnVzX3dyaXRlbCgweDA0IDw8IDI0 LCAmYnQtPmFkZHIpOwkgLyogY29sb3IgcGxhbmVzICovCiAJc2J1c193cml0ZWwoMHhmZiA8PCAy NCwgJmJ0LT5jb250cm9sKTsKIAlzYnVzX3dyaXRlbCgweDA1IDw8IDI0LCAmYnQtPmFkZHIpOwog CXNidXNfd3JpdGVsKDB4MDAgPDwgMjQsICZidC0+Y29udHJvbCk7Ci0Jc2J1c193cml0ZWwoMHgw NiA8PCAyNCwgJmJ0LT5hZGRyKTsgICAgICAgICAvKiBvdmVybGF5IHBsYW5lICovCisJc2J1c193 cml0ZWwoMHgwNiA8PCAyNCwgJmJ0LT5hZGRyKTsJIC8qIG92ZXJsYXkgcGxhbmUgKi8KIAlzYnVz X3dyaXRlbCgweDczIDw8IDI0LCAmYnQtPmNvbnRyb2wpOwogCXNidXNfd3JpdGVsKDB4MDcgPDwg MjQsICZidC0+YWRkcik7CiAJc2J1c193cml0ZWwoMHgwMCA8PCAyNCwgJmJ0LT5jb250cm9sKTsK LQkKKwogCWNvbmYgPSBzYnVzX3JlYWRsKGZiLT5zLmNnNi5maGMpOwogCXN3aXRjaChjb25mICYg Q0c2X0ZIQ19DUFVfTUFTSykgewogCWNhc2UgQ0c2X0ZIQ19DUFVfU1BBUkM6IHAgPSAic3BhcmMi OyBicmVhazsKQEAgLTgwMSwxMyArODQ5LDEzIEBACiAJCQljYXJkdHlwZSA9ICJHWCsiOwogCQl9 CiAJfQotCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAotCXNwcmludGYoaWRzdHJpbmcsIAorCisJc3ByaW50Zihp ZHN0cmluZywKICNpZmRlZiBfX3NwYXJjX3Y5X18KIAkJICAgICJjZ3NpeCBhdCAlMDE2bHggVEVD IFJldiAleCBDUFUgJXMgUmV2ICV4IFslc10iLCBwaHlzLAotI2Vsc2UJCisjZWxzZQogCQkgICAg ImNnc2l4IGF0ICV4LiUwOGx4IFRFQyBSZXYgJXggQ1BVICVzIFJldiAleCBbJXNdIiwKLQkJICAg IGZiLT5pb3NwYWNlLCBwaHlzLCAKKwkJICAgIGZiLT5pb3NwYWNlLCBwaHlzLAogI2VuZGlmCiAJ CSAgICAoKHNidXNfcmVhZGwoJmZiLT5zLmNnNi50aGMtPnRoY19taXNjKSA+PiBDRzZfVEhDX01J U0NfUkVWX1NISUZUKSAmCiAJCSAgICAgQ0c2X1RIQ19NSVNDX1JFVl9NQVNLKSwKQEAgLTgxNSw4 ICs4NjMsOCBAQAogCiAJc3ByaW50ZihmYi0+aW5mby5tb2RlbmFtZSwgIkNHc2l4IFslc10iLCBj YXJkdHlwZSk7CiAJc3ByaW50ZihmaXgtPmlkLCAiQ0dzaXggWyVzXSIsIGNhcmR0eXBlKTsKLQkJ ICAgIAorCiAJY2c2X3Jlc2V0KGZiKTsKLQkJICAgIAorCiAJcmV0dXJuIGlkc3RyaW5nOwogfQoK --part447732128963f--