Re: bootstra.tos broken on 68040/68060 real hardware

Miro Kropáček <[email protected]> Mon, 3 Aug 2026 15:53:08 +1000
Newsgroups gmane.linux.debian.ports.68k
Message-ID <CAN5rfbTvXgfuc451RbFuDFAhoe4K17NsPwv-4NjP0seK+joQbQ@mail.gmail.com>
--00000000000039b01806581e28e7
Content-Type: multipart/alternative; boundary="00000000000039b01706581e28e5"

--00000000000039b01706581e28e5
Content-Type: text/plain; charset="UTF-8"

Hi,

it has been some time since my last post and in the meantime I have managed
to get X.org & jwm not only fully working but also support SuperVidel and
Svethlana at the same time. So I'm posting my findings here with the hope
that some of you Linux folks would take care to forward it to Geert and/or
to upstream. I'm spending all my Atari time on Atari/MiNT things, I can't
find more time to follow up on this.

Feel free to change, rewrite, remove, add whatever you like, I don't even
insist on being the author as long as the patches are shipped. All of them
have been tested by me on real Atari Falcon030 + CT60 + SuperVidel +
Svethlana + EtherNEC + 512MB + my own fixed ataboot
<https://github.com/mikrosk/m68kboot>. I have verified that they apply
cleanly even on Geert's tree.

> Apart from kernel patches I have managed to create a separate supervidel
X.org accelerated driver (full disclosure: I did it with Claude Fable), if
you are interested in that as well, just say so.

>From user point of view, I did a few optimisations / hacks to make my
experience more pleasant:

- Disabled apt install / apt update signature verification
(/etc/apt/sources.list, /etc/apt/apt.conf.d/99no-verify)

- To fix the broken keyring I had to use apt update
--allow-insecure-repositories & apt install --allow-unauthenticated
debian-ports-archive-keyring

- yescrypt replaced with sha256 rounds=1000 (one has to run passwd
afterwards to take effect)

- LOGIN_TIMEOUT 0 in /etc/login.defs

- Speed up login: disable systemd's [email protected] in
/etc/pam.d/common-session

- /etc/systemd/network/10-svethlana.link with SVEthlana's MAC/DHCP IP being
predictable:
[Match]
Driver=ethoc

[Link]
MACAddress=b4:bb:c2:fa:7d:20

- kernel command line to filter out the debug messages: loglevel=3

After all this, jwm was quite usable but the HW acceleration wasn't
immediately obvious. There seemed to be quite some lag coming from X.org
itself so when moving windows, it's nice that they are refreshed in
milliseconds but registering the move event takes almost a second.

-- 
http://mikro.atari.org

--00000000000039b01706581e28e5
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Hi,</div><div><br></div><div>it has been some time si=
nce my last post and in the meantime I have managed to get X.org &amp; jwm =
not only fully working but also support SuperVidel and Svethlana at the sam=
e time. So I&#39;m posting my findings here with the hope that some of you =
Linux folks would take care to forward it to Geert and/or to upstream. I&#3=
9;m spending all my Atari time on Atari/MiNT things, I can&#39;t find more =
time to follow up on this.</div><div><br></div><div>Feel free to change, re=
write, remove, add whatever you like, I don&#39;t even insist on being the =
author as long as the patches are shipped. All of them have been tested by =
me on real Atari Falcon030=C2=A0+ CT60=C2=A0+ SuperVidel=C2=A0+ Svethlana=
=C2=A0+ EtherNEC=C2=A0+ 512MB=C2=A0+ <a href=3D"https://github.com/mikrosk/=
m68kboot">my own fixed ataboot</a>. I have verified that they apply cleanly=
 even on Geert&#39;s tree.</div><div class=3D"gmail_quote gmail_quote_conta=
iner"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;b=
order-left:1px solid rgb(204,204,204);padding-left:1ex"><div class=3D"gmail=
_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex=
;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><blockquote =
type=3D"cite"><div dir=3D"ltr"><div dir=3D"ltr" class=3D"gmail_signature"><=
div dir=3D"ltr">
          </div>
        </div>
      </div>
    </blockquote>
  </div>

</blockquote></div>
</blockquote></div><div>Apart from kernel patches I have managed to create =
a separate supervidel X.org accelerated driver (full disclosure: I did it w=
ith Claude Fable), if you are interested in that as well, just say so.</div=
><div><br></div><div>From user point of view, I did a few optimisations / h=
acks to make my experience more pleasant:</div><div><br></div><div>- Disabl=
ed apt install / apt update signature verification (/etc/apt/sources.list,=
=C2=A0/etc/apt/apt.conf.d/99no-verify)</div><div><br></div><div>- To fix th=
e broken keyring I had to use=C2=A0<span style=3D"background-color:transpar=
ent">apt update --allow-insecure-repositories &amp;=C2=A0</span><span style=
=3D"background-color:transparent">apt install --allow-unauthenticated debia=
n-ports-archive-keyring</span></div><div><span style=3D"background-color:tr=
ansparent"><br></span></div><div><span style=3D"background-color:transparen=
t">- yescrypt replaced with sha256 rounds=3D1000 (one has to run passwd aft=
erwards to take effect)</span></div><div><span style=3D"background-color:tr=
ansparent"><br></span></div><div><span style=3D"background-color:transparen=
t">- LOGIN_TIMEOUT 0 in /etc/login.defs</span></div><div><span style=3D"bac=
kground-color:transparent"><br></span></div><div><span style=3D"background-=
color:transparent">- Speed up login: disable systemd&#39;[email protected]=
ce in=C2=A0</span><span style=3D"background-color:transparent">/etc/pam.d/c=
ommon-session</span></div><div><span style=3D"background-color:transparent"=
><br></span></div><div><span style=3D"background-color:transparent">-=C2=A0=
</span><span style=3D"background-color:transparent">/etc/systemd/network/10=
-svethlana.link with=C2=A0SVEthlana&#39;s MAC/DHCP IP being predictable</sp=
an><span style=3D"background-color:transparent">:</span></div>[Match]<br>Dr=
iver=3Dethoc<br><br>[Link]<br>MACAddress=3Db4:bb:c2:fa:7d:20<br><br>- kerne=
l command line to filter out the debug messages:=C2=A0loglevel=3D3<div><br>=
</div><div>After all this, jwm was quite usable but the HW acceleration was=
n&#39;t immediately obvious. There seemed to be quite some lag coming from =
X.org itself so when moving windows, it&#39;s nice that they are refreshed =
in milliseconds but registering the move event takes almost a second.<br><d=
iv><br></div><span class=3D"gmail_signature_prefix">-- </span><br><div dir=
=3D"ltr" class=3D"gmail_signature"><div dir=3D"ltr"><div><a href=3D"http://=
mikro.atari.org" target=3D"_blank">http://mikro.atari.org</a></div></div></=
div></div></div>

--00000000000039b01706581e28e5--
--00000000000039b01806581e28e7
Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Fix-atari-mouse-movement.patch"
Content-Disposition: attachment; 
	filename="0001-Fix-atari-mouse-movement.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_mscsx8c40>
X-Attachment-Id: f_mscsx8c40

RnJvbSBiYzUzYjZjMTc3MjE3MTZiZGZhNDFjNDA0NDI1NGY5MmNkZjZjYWRiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNaXJvIEtyb3BhY2VrIDxtaXJvLmtyb3BhY2VrQGdtYWlsLmNv
bT4KRGF0ZTogRnJpLCAyNCBKdWwgMjAyNiAyMTowMzozMCArMTAwMApTdWJqZWN0OiBbUEFUQ0gg
MS81XSBGaXggYXRhcmkgbW91c2UgbW92ZW1lbnQKCi0tLQogZHJpdmVycy9pbnB1dC9tb3VzZS9h
dGFyaW1vdXNlLmMgfCA5ICsrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygr
KSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L21vdXNlL2F0YXJp
bW91c2UuYyBiL2RyaXZlcnMvaW5wdXQvbW91c2UvYXRhcmltb3VzZS5jCmluZGV4IGIxMjE5Y2M0
ZDlhMmEuLjM1MWFhYjY5ZTkwNWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvbW91c2UvYXRh
cmltb3VzZS5jCisrKyBiL2RyaXZlcnMvaW5wdXQvbW91c2UvYXRhcmltb3VzZS5jCkBAIC03MCw5
ICs3MCwxMiBAQCBzdGF0aWMgdm9pZCBhdGFtb3VzZV9pbnRlcnJ1cHQoY2hhciAqYnVmKQogCWF0
YXJpX21vdXNlX2J1dHRvbnMgPSBidXR0b25zOwogI2VuZGlmCiAKLQkvKiBvbmx5IHJlbGF0aXZl
IGV2ZW50cyBnZXQgaGVyZSAqLwotCWR4ID0gYnVmWzFdOwotCWR5ID0gYnVmWzJdOworCS8qIG9u
bHkgcmVsYXRpdmUgZXZlbnRzIGdldCBoZXJlOyB0aGUgSUtCRCBzZW5kcyBzaWduZWQgOC1iaXQK
KwkgKiBkZWx0YXMsIGFuZCB0aGUga2VybmVsIGJ1aWxkcyB3aXRoIC1mdW5zaWduZWQtY2hhciBz
aW5jZSA2LjIsCisJICogc28gYW4gZXhwbGljaXQgc2lnbmVkIGNhc3QgaXMgcmVxdWlyZWQKKwkg
Ki8KKwlkeCA9IChzOClidWZbMV07CisJZHkgPSAoczgpYnVmWzJdOwogCiAJaW5wdXRfcmVwb3J0
X3JlbChhdGFtb3VzZV9kZXYsIFJFTF9YLCBkeCk7CiAJaW5wdXRfcmVwb3J0X3JlbChhdGFtb3Vz
ZV9kZXYsIFJFTF9ZLCBkeSk7Ci0tIAoyLjU1LjAKCg==
--00000000000039b01806581e28e7
Content-Type: text/x-patch; charset="UTF-8"; 
	name="0003-Add-support-for-further-video-bit-depths-on-atafb-ex.patch"
Content-Disposition: attachment; 
	filename="0003-Add-support-for-further-video-bit-depths-on-atafb-ex.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_mscsx8e12>
X-Attachment-Id: f_mscsx8e12

RnJvbSA4MThmNGQ2YzZjMWQ2N2NlYmI2YzE4YzJmMTllYjQ0OTViMGMzMDJmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNaXJvIEtyb3BhY2VrIDxtaXJvLmtyb3BhY2VrQGdtYWlsLmNv
bT4KRGF0ZTogRnJpLCAyNCBKdWwgMjAyNiAyMToxNDoxMyArMTAwMApTdWJqZWN0OiBbUEFUQ0gg
My81XSBBZGQgc3VwcG9ydCBmb3IgZnVydGhlciB2aWRlbyBiaXQgZGVwdGhzIG9uCiBhdGFmYjpl
eHRlcm5hbAoKU3VwZXJWaWRlbCdzIDgtYml0IGNodW5reSwgKFN1cGVyKVZpZGVsJ3MgMTYtYml0
IFJHQjU2NSBhbmQgU3VwZXJWaWRlbCdzCkFSR0I4ODguCi0tLQogZHJpdmVycy92aWRlby9mYmRl
di9hdGFmYi5jIHwgODkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogMSBm
aWxlIGNoYW5nZWQsIDgyIGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0
IGEvZHJpdmVycy92aWRlby9mYmRldi9hdGFmYi5jIGIvZHJpdmVycy92aWRlby9mYmRldi9hdGFm
Yi5jCmluZGV4IDNkNTQwODAzZGMyYjYuLjUwODUzZDdhMDhlM2QgMTAwNjQ0Ci0tLSBhL2RyaXZl
cnMvdmlkZW8vZmJkZXYvYXRhZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2F0YWZiLmMK
QEAgLTIwODEsOCArMjA4MSwxMiBAQCBzdGF0aWMgaW50IGV4dF9lbmNvZGVfZml4KHN0cnVjdCBm
Yl9maXhfc2NyZWVuaW5mbyAqZml4LCBzdHJ1Y3QgYXRhZmJfcGFyICpwYXIpCiAJCQkgZXh0ZXJu
YWxfcG1vZGUgPT0gRkJfVFlQRV9QQUNLRURfUElYRUxTKSA/CiAJCQkJRkJfVklTVUFMX01PTk8x
MCA6IEZCX1ZJU1VBTF9NT05PMDE7CiAJfSBlbHNlIHsKLQkJLyogVXNlIFNUQVRJQyBpZiB3ZSBk
b24ndCBrbm93IGhvdyB0byBhY2Nlc3MgY29sb3IgcmVnaXN0ZXJzICovCi0JCWludCB2aXN1YWwg
PSBleHRlcm5hbF92Z2Fpb2Jhc2UgPworCQkvKiBVc2UgU1RBVElDIGlmIHdlIGRvbid0IGtub3cg
aG93IHRvIGFjY2VzcyBjb2xvciByZWdpc3RlcnM7CisJCSAqIFN1cGVyVmlkZWwgOGJwcCBjaHVu
a3kgKGZiIGluIFNWIFJBTSkgdXNlcyB0aGUgRmFsY29uIHBhbGV0dGUKKwkJICovCisJCWludCB2
aXN1YWwgPSAoZXh0ZXJuYWxfdmdhaW9iYXNlIHx8CisJCQkgICAgICAoZXh0ZXJuYWxfZGVwdGgg
PT0gOCAmJgorCQkJICAgICAgIGV4dGVybmFsX2FkZHIgPj0gMHhhMDAwMDAwMCkpID8KIAkJCQkJ
IEZCX1ZJU1VBTF9QU0VVRE9DT0xPUiA6CiAJCQkJCSBGQl9WSVNVQUxfU1RBVElDX1BTRVVET0NP
TE9SOwogCQlzd2l0Y2ggKGV4dGVybmFsX3Btb2RlKSB7CkBAIC0yMTU5LDYgKzIxNjMsMzUgQEAg
c3RhdGljIGludCBleHRfZW5jb2RlX3ZhcihzdHJ1Y3QgZmJfdmFyX3NjcmVlbmluZm8gKnZhciwg
c3RydWN0IGF0YWZiX3BhciAqcGFyKQogCXZhci0+dHJhbnNwLm9mZnNldCA9IDA7CiAJdmFyLT50
cmFuc3AubGVuZ3RoID0gMDsKIAl2YXItPnRyYW5zcC5tc2JfcmlnaHQgPSAwOworCWlmIChleHRl
cm5hbF9wbW9kZSA9PSAtMSAmJiBleHRlcm5hbF9kZXB0aCA9PSAxNikgeworCQkvKiBSR0I1NjUg
dHJ1ZWNvbG9yIChlLmcuIFN1cGVyVmlkZWwgbmF0aXZlIG1vZGUpICovCisJCXZhci0+cmVkLm9m
ZnNldCA9IDExOworCQl2YXItPnJlZC5sZW5ndGggPSA1OworCQl2YXItPmdyZWVuLm9mZnNldCA9
IDU7CisJCXZhci0+Z3JlZW4ubGVuZ3RoID0gNjsKKwkJdmFyLT5ibHVlLm9mZnNldCA9IDA7CisJ
CXZhci0+Ymx1ZS5sZW5ndGggPSA1OworCX0gZWxzZSBpZiAoZXh0ZXJuYWxfcG1vZGUgPT0gLTEg
JiYgZXh0ZXJuYWxfZGVwdGggPT0gMzIpIHsKKwkJLyogQVJHQjg4ODggdHJ1ZWNvbG9yIChlLmcu
IFN1cGVyVmlkZWwgbmF0aXZlIG1vZGUpICovCisJCXZhci0+cmVkLm9mZnNldCA9IDE2OworCQl2
YXItPnJlZC5sZW5ndGggPSA4OworCQl2YXItPmdyZWVuLm9mZnNldCA9IDg7CisJCXZhci0+Z3Jl
ZW4ubGVuZ3RoID0gODsKKwkJdmFyLT5ibHVlLm9mZnNldCA9IDA7CisJCXZhci0+Ymx1ZS5sZW5n
dGggPSA4OworCQl2YXItPnRyYW5zcC5vZmZzZXQgPSAyNDsKKwkJdmFyLT50cmFuc3AubGVuZ3Ro
ID0gODsKKwl9IGVsc2UgaWYgKGV4dGVybmFsX3Btb2RlID09IEZCX1RZUEVfUEFDS0VEX1BJWEVM
UyAmJgorCQkgICBleHRlcm5hbF9kZXB0aCA9PSA4ICYmIGV4dGVybmFsX2FkZHIgPj0gMHhhMDAw
MDAwMCkgeworCQkvKiBTdXBlclZpZGVsIDhicHAgY2h1bmt5OiBwYWxldHRlIGhhcyA4IGJpdHMg
cGVyIGNoYW5uZWwuCisJCSAqIFdpdGhvdXQgdGhpcywgZmJfZ2V0X2NvbG9yX2RlcHRoKCkgc2Vl
cyBsZW5ndGggMCBhbmQKKwkJICogZmJjb24gZmFsbHMgYmFjayB0byBpdHMgMi1jb2xvciBwYWxl
dHRlIOKAlCB0aGUgY29uc29sZQorCQkgKiB0ZXh0IChjb2xvciA3KSBzdGF5cyBibGFjayBvbiBi
bGFjay4KKwkJICovCisJCXZhci0+cmVkLmxlbmd0aCA9IDg7CisJCXZhci0+Z3JlZW4ubGVuZ3Ro
ID0gODsKKwkJdmFyLT5ibHVlLmxlbmd0aCA9IDg7CisJfQogCXZhci0+eXJlc192aXJ0dWFsID0g
dmFyLT55cmVzOwogCXZhci0+eG9mZnNldCA9IDA7CiAJdmFyLT55b2Zmc2V0ID0gMDsKQEAgLTIx
OTMsNiArMjIyNiwzOCBAQCBzdGF0aWMgaW50IGV4dF9zZXRjb2xyZWcodW5zaWduZWQgaW50IHJl
Z25vLCB1bnNpZ25lZCBpbnQgcmVkLAogewogCXVuc2lnbmVkIGNoYXIgY29sbWFzayA9ICgxIDw8
IGV4dGVybmFsX2JpdHNwZXJjb2wpIC0gMTsKIAorCWlmIChleHRlcm5hbF9wbW9kZSA9PSAtMSAm
JiBleHRlcm5hbF9kZXB0aCA9PSAxNikgeworCQkvKiB0cnVlY29sb3I6IG9ubHkgdGhlIHBzZXVk
byBwYWxldHRlIGZvciBmYmNvbiBpcyBuZWVkZWQgKi8KKwkJaWYgKHJlZ25vID4gMTUpCisJCQly
ZXR1cm4gMTsKKwkJKCh1MzIgKilpbmZvLT5wc2V1ZG9fcGFsZXR0ZSlbcmVnbm9dID0gKHJlZCAm
IDB4ZjgwMCkgfAorCQkJCQkJICAgICAgICgoZ3JlZW4gJiAweGZjMDApID4+IDUpIHwKKwkJCQkJ
CSAgICAgICAoKGJsdWUgJiAweGY4MDApID4+IDExKTsKKwkJcmV0dXJuIDA7CisJfQorCWlmIChl
eHRlcm5hbF9wbW9kZSA9PSAtMSAmJiBleHRlcm5hbF9kZXB0aCA9PSAzMikgeworCQkvKiBBUkdC
ODg4OCwgYWxwaGEgZm9yY2VkIG9wYXF1ZSAqLworCQlpZiAocmVnbm8gPiAxNSkKKwkJCXJldHVy
biAxOworCQkoKHUzMiAqKWluZm8tPnBzZXVkb19wYWxldHRlKVtyZWdub10gPSAweGZmMDAwMDAw
IHwKKwkJCQkJCSAgICAgICAoKHJlZCAmIDB4ZmYwMCkgPDwgOCkgfAorCQkJCQkJICAgICAgIChn
cmVlbiAmIDB4ZmYwMCkgfAorCQkJCQkJICAgICAgICgoYmx1ZSAmIDB4ZmYwMCkgPj4gOCk7CisJ
CXJldHVybiAwOworCX0KKwlpZiAoZXh0ZXJuYWxfcG1vZGUgPT0gRkJfVFlQRV9QQUNLRURfUElY
RUxTICYmIGV4dGVybmFsX2RlcHRoID09IDggJiYKKwkgICAgZXh0ZXJuYWxfYWRkciA+PSAweGEw
MDAwMDAwKSB7CisJCS8qIFN1cGVyVmlkZWwgbmF0aXZlIDhicHAgY2h1bmt5IHNjYW5zIG91dCB2
aWEgdGhlIEZhbGNvbgorCQkgKiBwYWxldHRlIHJlZ2lzdGVycywgaG9ub3JpbmcgYWxsIDggYml0
cyBwZXIgY2hhbm5lbAorCQkgKi8KKwkJaWYgKHJlZ25vID4gMjU1KQorCQkJcmV0dXJuIDE7CisJ
CWYwMzBfY29sW3JlZ25vXSA9ICgocmVkICYgMHhmZjAwKSA8PCAxNikgfAorCQkJCSAgKChncmVl
biAmIDB4ZmYwMCkgPDwgOCkgfAorCQkJCSAgKChibHVlICYgMHhmZjAwKSA+PiA4KTsKKwkJcmV0
dXJuIDA7CisJfQorCiAJaWYgKCFleHRlcm5hbF92Z2Fpb2Jhc2UpCiAJCXJldHVybiAxOwogCkBA
IC0yNDIyLDcgKzI0ODcsOSBAQCBzdGF0aWMgdm9pZCBhdGFmYl9maWxscmVjdChzdHJ1Y3QgZmJf
aW5mbyAqaW5mbywgY29uc3Qgc3RydWN0IGZiX2ZpbGxyZWN0ICpyZWN0KQogCQlyZXR1cm47CiAK
ICNpZmRlZiBBVEFGQl9GQUxDT04KLQlpZiAoaW5mby0+dmFyLmJpdHNfcGVyX3BpeGVsID09IDE2
KSB7CisJLyogY2h1bmt5IG1vZGVzIChGYWxjb24gaGljb2xvciwgZXh0ZXJuYWwgcGFja2VkL3Ry
dWVjb2xvcikgKi8KKwlpZiAoaW5mby0+Zml4LnR5cGUgPT0gRkJfVFlQRV9QQUNLRURfUElYRUxT
ICYmCisJICAgIGluZm8tPnZhci5iaXRzX3Blcl9waXhlbCA+IDEpIHsKIAkJY2ZiX2ZpbGxyZWN0
KGluZm8sIHJlY3QpOwogCQlyZXR1cm47CiAJfQpAQCAtMjQ2Myw3ICsyNTMwLDkgQEAgc3RhdGlj
IHZvaWQgYXRhZmJfY29weWFyZWEoc3RydWN0IGZiX2luZm8gKmluZm8sIGNvbnN0IHN0cnVjdCBm
Yl9jb3B5YXJlYSAqYXJlYSkKIAlpbnQgcmV2X2NvcHkgPSAwOwogCiAjaWZkZWYgQVRBRkJfRkFM
Q09OCi0JaWYgKGluZm8tPnZhci5iaXRzX3Blcl9waXhlbCA9PSAxNikgeworCS8qIGNodW5reSBt
b2RlcyAoRmFsY29uIGhpY29sb3IsIGV4dGVybmFsIHBhY2tlZC90cnVlY29sb3IpICovCisJaWYg
KGluZm8tPmZpeC50eXBlID09IEZCX1RZUEVfUEFDS0VEX1BJWEVMUyAmJgorCSAgICBpbmZvLT52
YXIuYml0c19wZXJfcGl4ZWwgPiAxKSB7CiAJCWNmYl9jb3B5YXJlYShpbmZvLCBhcmVhKTsKIAkJ
cmV0dXJuOwogCX0KQEAgLTI1MTcsNyArMjU4Niw5IEBAIHN0YXRpYyB2b2lkIGF0YWZiX2ltYWdl
YmxpdChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgY29uc3Qgc3RydWN0IGZiX2ltYWdlICppbWFnZSkK
IAl1MzIgZHgsIGR5LCB3aWR0aCwgaGVpZ2h0LCBwaXRjaDsKIAogI2lmZGVmIEFUQUZCX0ZBTENP
TgotCWlmIChpbmZvLT52YXIuYml0c19wZXJfcGl4ZWwgPT0gMTYpIHsKKwkvKiBjaHVua3kgbW9k
ZXMgKEZhbGNvbiBoaWNvbG9yLCBleHRlcm5hbCBwYWNrZWQvdHJ1ZWNvbG9yKSAqLworCWlmIChp
bmZvLT5maXgudHlwZSA9PSBGQl9UWVBFX1BBQ0tFRF9QSVhFTFMgJiYKKwkgICAgaW5mby0+dmFy
LmJpdHNfcGVyX3BpeGVsID4gMSkgewogCQljZmJfaW1hZ2VibGl0KGluZm8sIGltYWdlKTsKIAkJ
cmV0dXJuOwogCX0KQEAgLTI3NTMsNyArMjgyNCw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBhdGFm
Yl9zZXR1cF9leHQoY2hhciAqc3BlYykKIAkJcmV0dXJuOwogCWRlcHRoID0gc2ltcGxlX3N0cnRv
dWwocCwgTlVMTCwgMTApOwogCWlmIChkZXB0aCAhPSAxICYmIGRlcHRoICE9IDIgJiYgZGVwdGgg
IT0gNCAmJiBkZXB0aCAhPSA4ICYmCi0JICAgIGRlcHRoICE9IDE2ICYmIGRlcHRoICE9IDI0KQor
CSAgICBkZXB0aCAhPSAxNiAmJiBkZXB0aCAhPSAyNCAmJiBkZXB0aCAhPSAzMikKIAkJcmV0dXJu
OwogCiAJcCA9IHN0cnNlcCgmc3BlYywgIjsiKTsKQEAgLTMxMzEsNyArMzIwMiwxMSBAQCBzdGF0
aWMgaW50IF9faW5pdCBhdGFmYl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQog
CiAJYXRhZmJfc2V0X2Rpc3AoJmZiX2luZm8pOwogCi0JZmJfYWxsb2NfY21hcCgmKGZiX2luZm8u
Y21hcCksIDEgPDwgZmJfaW5mby52YXIuYml0c19wZXJfcGl4ZWwsIDApOworCS8qIHRydWVjb2xv
ciB2aXN1YWxzIG9ubHkgbmVlZCB0aGUgMTYtZW50cnkgY29uc29sZSBwYWxldHRlOyB0aGlzCisJ
ICogYWxzbyBhdm9pZHMgMSA8PCAzMiBvdmVyZmxvd2luZyBhdCAzMmJwcAorCSAqLworCWZiX2Fs
bG9jX2NtYXAoJihmYl9pbmZvLmNtYXApLCBmYl9pbmZvLnZhci5iaXRzX3Blcl9waXhlbCA+IDgg
PworCQkgICAgICAxNiA6IDEgPDwgZmJfaW5mby52YXIuYml0c19wZXJfcGl4ZWwsIDApOwogCiAK
IAlkZXZfaW5mbygmcGRldi0+ZGV2LCAiRGV0ZXJtaW5lZCAlZHglZCwgZGVwdGggJWRcbiIsIGZi
X2luZm8udmFyLnhyZXMsCi0tIAoyLjU1LjAKCg==
--00000000000039b01806581e28e7
Content-Type: text/x-patch; charset="US-ASCII"; name="0005-Add-support-for-Svethlana.patch"
Content-Disposition: attachment; 
	filename="0005-Add-support-for-Svethlana.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_mscsx8ef4>
X-Attachment-Id: f_mscsx8ef4

RnJvbSA2M2MxZjgzZjRlNGY5MWNjNjUwYzM3NjQ0NDIzZjNmZDVmYWRiY2E5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNaXJvIEtyb3BhY2VrIDxtaXJvLmtyb3BhY2VrQGdtYWlsLmNv
bT4KRGF0ZTogU2F0LCAyNSBKdWwgMjAyNiAwMDozODoxMyArMTAwMApTdWJqZWN0OiBbUEFUQ0gg
NS81XSBBZGQgc3VwcG9ydCBmb3IgU3ZldGhsYW5hCgotLS0KIGFyY2gvbTY4ay9LY29uZmlnLmRl
dmljZXMgICAgICAgICB8IDEyICsrKysrKwogYXJjaC9tNjhrL2F0YXJpL2NvbmZpZy5jICAgICAg
ICAgIHwgNzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogYXJjaC9tNjhrL2luY2x1
ZGUvYXNtL2F0YXJpaW50cy5oIHwgIDIgKy0KIGFyY2gvbTY4ay9pbmNsdWRlL2FzbS9pcnEuaCAg
ICAgICB8ICA2ICstLQogNCBmaWxlcyBjaGFuZ2VkLCA4NyBpbnNlcnRpb25zKCspLCA0IGRlbGV0
aW9ucygtKQoKZGlmZiAtLWdpdCBhL2FyY2gvbTY4ay9LY29uZmlnLmRldmljZXMgYi9hcmNoL202
OGsvS2NvbmZpZy5kZXZpY2VzCmluZGV4IGU2ZTNlZmFjMTg0MDcuLjQ4Zjk2NGQxNjE1ZWEgMTAw
NjQ0Ci0tLSBhL2FyY2gvbTY4ay9LY29uZmlnLmRldmljZXMKKysrIGIvYXJjaC9tNjhrL0tjb25m
aWcuZGV2aWNlcwpAQCAtNjcsNiArNjcsMTggQEAgY29uZmlnIEFUQVJJX0VUSEVSTkFUCiAJICBU
byBjb21waWxlIHRoZSBhY3R1YWwgZXRoZXJuZXQgZHJpdmVyLCBjaG9vc2UgWSBvciBNIGZvciB0
aGUgU01DOTFYCiAJICBvcHRpb24gaW4gdGhlIG5ldHdvcmsgZGV2aWNlIHNlY3Rpb247IHRoZSBt
b2R1bGUgd2lsbCBiZSBjYWxsZWQgc21jOTF4LgogCitjb25maWcgQVRBUklfU1ZFVEhMQU5BCisJ
Ym9vbCAiQXRhcmkgU3VwZXJWaWRlbCBTVkV0aGxhbmEgRXRoZXJuZXQgc3VwcG9ydCIKKwlkZXBl
bmRzIG9uIEFUQVJJCisJaGVscAorCSAgU2F5IFkgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciB0aGUg
U1ZFdGhsYW5hIG5ldHdvcmsgYWRhcHRlciBidWlsdAorCSAgaW50byB0aGUgU3VwZXJWaWRlbCBG
UEdBLiBTdXBlclZpZGVsIGZpcm13YXJlIHZlcnNpb24gMTAgb3IgbmV3ZXIKKwkgIGlzIHJlcXVp
cmVkIChvbGRlciBmaXJtd2FyZSBsYWNrcyB0aGUgRXRoZXJuZXQgRE1BKS4KKworCSAgVG8gY29t
cGlsZSB0aGUgYWN0dWFsIGV0aGVybmV0IGRyaXZlciwgY2hvb3NlIFkgb3IgTSBmb3IgdGhlIEVU
SE9DCisJICBvcHRpb24gaW4gdGhlIG5ldHdvcmsgZGV2aWNlIHNlY3Rpb247IHRoZSBtb2R1bGUg
d2lsbCBiZSBjYWxsZWQKKwkgIGV0aG9jLgorCiBjb25maWcgQVRBUklfRVRIRVJORUMKIAlib29s
ICJBdGFyaSBFdGhlck5FQyBFdGhlcm5ldCBzdXBwb3J0IgogCWRlcGVuZHMgb24gQVRBUklfUk9N
X0lTQQpkaWZmIC0tZ2l0IGEvYXJjaC9tNjhrL2F0YXJpL2NvbmZpZy5jIGIvYXJjaC9tNjhrL2F0
YXJpL2NvbmZpZy5jCmluZGV4IGVlMmQwNjFlZmIyYTguLjg2ZjA3ZDBiODVlMDUgMTAwNjQ0Ci0t
LSBhL2FyY2gvbTY4ay9hdGFyaS9jb25maWcuYworKysgYi9hcmNoL202OGsvYXRhcmkvY29uZmln
LmMKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4K
ICNpbmNsdWRlIDxsaW51eC91c2IvaXNwMTE2eC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5o
PgorI2luY2x1ZGUgPG5ldC9ldGhvYy5oPgogCiAjaW5jbHVkZSA8YXNtL2Jvb3RpbmZvLmg+CiAj
aW5jbHVkZSA8YXNtL2Jvb3RpbmZvLWF0YXJpLmg+CkBAIC03NDgsNiArNzQ5LDYyIEBAIHN0YXRp
YyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICphdGFyaV9ldGhlcm5hdF9kZXZpY2VzW10gX19pbml0
ZGF0YSA9IHsKIH07CiAjZW5kaWYgLyogQ09ORklHX0FUQVJJX0VUSEVSTkFUICovCiAKKyNpZmRl
ZiBDT05GSUdfQVRBUklfU1ZFVEhMQU5BCisvKgorICogU1ZFdGhsYW5hOiBPcGVuQ29yZXMgMTAv
MTAwIE1icHMgRXRoZXJuZXQgTUFDIGluIHRoZSBTdXBlclZpZGVsIEZQR0EsCisgKiBoYW5kbGVk
IGJ5IHRoZSBldGhvYyBkcml2ZXIuIFJlcXVpcmVzIFN1cGVyVmlkZWwgZmlybXdhcmUgdmVyc2lv
biAxMAorICogb3IgbmV3ZXIgKEV0aGVybmV0IERNQSkuCisgKgorICogVGhlIE1BQyBjYW4gb25s
eSBETUEgd2l0aGluIHRoZSBTdXBlclZpZGVsIEREUiBSQU0sIHNvIHRoZSBwYWNrZXQKKyAqIGJ1
ZmZlcnMgYXJlIGNhcnZlZCBvdXQgb2YgdGhlIHRvcCBvZiB0aGUgRERSOyB0aGUgZnJhbWVidWZm
ZXIgbGl2ZXMKKyAqIGF0IHRoZSBib3R0b20uCisgKi8KKworI2RlZmluZSBBVEFSSV9TVkVUSExB
TkFfUEhZU19BRERSCTB4ODAwMTIwMDAKKyNkZWZpbmUgQVRBUklfU1ZFVEhMQU5BX0lSUQkJMTQx
CS8qIHZlY3RvciAweGM1ICovCisKKyNkZWZpbmUgQVRBUklfU1ZfVkVSU0lPTl9QSFlTX0FERFIJ
MHg4MDAxMDA3YworI2RlZmluZSBBVEFSSV9TVl9ERFJfRU5ECQkweGE4MDAwMDAwCisvKiAxMjgg
cGFja2V0IGJ1ZmZlcnMgb2YgMTUzNiBieXRlcyBlYWNoLCB0aGUgbWF4aW11bSBldGhvYyBzdXBw
b3J0cyAqLworI2RlZmluZSBTVkVUSExBTkFfQlVGX1NJWkUJCSgxMjggKiAxNTM2KQorCitzdGF0
aWMgc3RydWN0IHJlc291cmNlIHN2ZXRobGFuYV9yZXNvdXJjZXNbXSA9IHsKKwlbMF0gPSB7CisJ
CS5uYW1lCT0gImV0aG9jLXJlZ3MiLAorCQkuc3RhcnQJPSBBVEFSSV9TVkVUSExBTkFfUEhZU19B
RERSLAorCQkuZW5kCT0gQVRBUklfU1ZFVEhMQU5BX1BIWVNfQUREUiArIDB4N2ZmLAorCQkuZmxh
Z3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorCVsxXSA9IHsKKwkJLm5hbWUJPSAiZXRob2MtYnVm
IiwKKwkJLnN0YXJ0CT0gQVRBUklfU1ZfRERSX0VORCAtIFNWRVRITEFOQV9CVUZfU0laRSwKKwkJ
LmVuZAk9IEFUQVJJX1NWX0REUl9FTkQgLSAxLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwK
Kwl9LAorCVsyXSA9IHsKKwkJLm5hbWUJPSAiZXRob2MtaXJxIiwKKwkJLnN0YXJ0CT0gQVRBUklf
U1ZFVEhMQU5BX0lSUSwKKwkJLmVuZAk9IEFUQVJJX1NWRVRITEFOQV9JUlEsCisJCS5mbGFncwk9
IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGV0aG9jX3BsYXRmb3Jt
X2RhdGEgc3ZldGhsYW5hX3BsYXRmb3JtX2RhdGEgPSB7CisJLnBoeV9pZAkJPSAtMSwKKwkuYmln
X2VuZGlhbgk9IHRydWUsCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBzdmV0
aGxhbmFfZGV2aWNlID0geworCS5uYW1lCQk9ICJldGhvYyIsCisJLmlkCQk9IC0xLAorCS5udW1f
cmVzb3VyY2VzCT0gQVJSQVlfU0laRShzdmV0aGxhbmFfcmVzb3VyY2VzKSwKKwkucmVzb3VyY2UJ
PSBzdmV0aGxhbmFfcmVzb3VyY2VzLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZz
dmV0aGxhbmFfcGxhdGZvcm1fZGF0YSwKKwl9LAorfTsKKyNlbmRpZiAvKiBDT05GSUdfQVRBUklf
U1ZFVEhMQU5BICovCisKICNpZmRlZiBDT05GSUdfQVRBUklfRVRIRVJORUMKIC8qCiAgKiBFdGhl
ck5FQzogUlRMODAxOSAoTkUyMDAwIGNvbXBhdGlibGUpIEV0aGVybmV0IGNoaXBzZXQsCkBAIC04
OTIsNiArOTQ5LDIwIEBAIHN0YXRpYyBpbnQgX19pbml0IGF0YXJpX3BsYXRmb3JtX2luaXQodm9p
ZCkKIAl9CiAjZW5kaWYKIAorI2lmZGVmIENPTkZJR19BVEFSSV9TVkVUSExBTkEKKwl7CisJCXZv
aWQgX19pb21lbSAqc3ZfdmVyc2lvbjsKKworCQlzdl92ZXJzaW9uID0gaW9yZW1hcChBVEFSSV9T
Vl9WRVJTSU9OX1BIWVNfQUREUiwgNCk7CisJCWlmIChzdl92ZXJzaW9uKSB7CisJCQlpZiAoaHdy
ZWdfcHJlc2VudChzdl92ZXJzaW9uKSAmJgorCQkJICAgIChfX3Jhd19yZWFkbChzdl92ZXJzaW9u
KSAmIDB4M2ZmKSA+PSAxMCkKKwkJCQlydiA9IHBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigmc3Zl
dGhsYW5hX2RldmljZSk7CisJCQlpb3VubWFwKHN2X3ZlcnNpb24pOworCQl9CisJfQorI2VuZGlm
CisKICNpZmRlZiBDT05GSUdfQVRBUklfRVRIRVJORUMKIAl7CiAJCWludCBlcnJvcjsKZGlmZiAt
LWdpdCBhL2FyY2gvbTY4ay9pbmNsdWRlL2FzbS9hdGFyaWludHMuaCBiL2FyY2gvbTY4ay9pbmNs
dWRlL2FzbS9hdGFyaWludHMuaAppbmRleCA2MzIxYzQ0OTU2MjA2Li5jYjE1MzYxZDE0ZTkxIDEw
MDY0NAotLS0gYS9hcmNoL202OGsvaW5jbHVkZS9hc20vYXRhcmlpbnRzLmgKKysrIGIvYXJjaC9t
NjhrL2luY2x1ZGUvYXNtL2F0YXJpaW50cy5oCkBAIC0zMiw3ICszMiw3IEBACiAjZGVmaW5lIFZN
RV9TT1VSQ0VfQkFTRSAgICA1NgogI2RlZmluZSBWTUVfTUFYX1NPVVJDRVMgICAgMTYKIAotI2Rl
ZmluZSBOVU1fQVRBUklfU09VUkNFUyAgMTQxCisjZGVmaW5lIE5VTV9BVEFSSV9TT1VSQ0VTICAx
NDIKIAogLyogY29udmVydCB2ZWN0b3IgbnVtYmVyIHRvIGludCBzb3VyY2UgbnVtYmVyICovCiAj
ZGVmaW5lIElSUV9WRUNUT1JfVE9fU09VUkNFKHYpCSgodikgLSAoKHYpIDwgMHgyMCA/IDB4MTgg
OiAoMHg0MC04KSkpCmRpZmYgLS1naXQgYS9hcmNoL202OGsvaW5jbHVkZS9hc20vaXJxLmggYi9h
cmNoL202OGsvaW5jbHVkZS9hc20vaXJxLmgKaW5kZXggMjI2M2U5MmQ0MThhYi4uOGJhYzQzZDBm
NDlkYyAxMDA2NDQKLS0tIGEvYXJjaC9tNjhrL2luY2x1ZGUvYXNtL2lycS5oCisrKyBiL2FyY2gv
bTY4ay9pbmNsdWRlL2FzbS9pcnEuaApAQCAtMTAsOCArMTAsOCBAQAogICogZGlmZmVyZW50IG02
OGsgaG9zdHMgY29tcGlsZWQgaW50byB0aGUga2VybmVsLgogICogQ3VycmVudGx5IHRoZSBBdGFy
aSBoYXMgNzIgYW5kIHRoZSBBbWlnYSAyNCwgYnV0IGlmIGJvdGggYXJlCiAgKiBzdXBwb3J0ZWQg
aW4gdGhlIGtlcm5lbCBpdCBpcyBiZXR0ZXIgdG8gbWFrZSByb29tIGZvciA3Mi4KLSAqIFdpdGgg
RXRoZXJOQVQgYWRkLW9uIGNhcmQgb24gQXRhcmksIHRoZSBoaWdoZXN0IGludGVycnVwdAotICog
bnVtYmVyIGlzIDE0MCBzbyBOUl9JUlFTIG5lZWRzIHRvIGJlIDE0MS4KKyAqIFdpdGggdGhlIFNW
RXRobGFuYSBhZGFwdGVyIGluIHRoZSBTdXBlclZpZGVsIG9uIEF0YXJpLCB0aGUgaGlnaGVzdAor
ICogaW50ZXJydXB0IG51bWJlciBpcyAxNDEgc28gTlJfSVJRUyBuZWVkcyB0byBiZSAxNDIuCiAg
Ki8KICNpZiBkZWZpbmVkKENPTkZJR19DT0xERklSRSkKICNkZWZpbmUgTlJfSVJRUyAyNTYKQEAg
LTE5LDcgKzE5LDcgQEAKICAgICAgIGRlZmluZWQoQ09ORklHX1NVTjNYKSB8fCBkZWZpbmVkKENP
TkZJR19WSVJUKQogI2RlZmluZSBOUl9JUlFTIDIwMAogI2VsaWYgZGVmaW5lZChDT05GSUdfQVRB
UkkpCi0jZGVmaW5lIE5SX0lSUVMgMTQxCisjZGVmaW5lIE5SX0lSUVMgMTQyCiAjZWxpZiBkZWZp
bmVkKENPTkZJR19NQUMpCiAjZGVmaW5lIE5SX0lSUVMgNzIKICNlbGlmIGRlZmluZWQoQ09ORklH
X1E0MCkKLS0gCjIuNTUuMAoK
--00000000000039b01806581e28e7
Content-Type: text/x-patch; charset="UTF-8"; 
	name="0004-Add-support-for-SuperVidel-s-SuperBlitter.patch"
Content-Disposition: attachment; 
	filename="0004-Add-support-for-SuperVidel-s-SuperBlitter.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_mscsx8e73>
X-Attachment-Id: f_mscsx8e73

RnJvbSA4MDJiMjg4MjViNGQ5ZmFiOWU0ZGY3MGI5YTBiNjU3YmViMTg3Y2YzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNaXJvIEtyb3BhY2VrIDxtaXJvLmtyb3BhY2VrQGdtYWlsLmNv
bT4KRGF0ZTogRnJpLCAyNCBKdWwgMjAyNiAyMzoyMzowMSArMTAwMApTdWJqZWN0OiBbUEFUQ0gg
NC81XSBBZGQgc3VwcG9ydCBmb3IgU3VwZXJWaWRlbCdzIFN1cGVyQmxpdHRlcgoKLS0tCiBkcml2
ZXJzL3ZpZGVvL2ZiZGV2L2F0YWZiLmMgfCAxOTcgKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTk3IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQg
YS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2F0YWZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2F0YWZi
LmMKaW5kZXggNTA4NTNkN2EwOGUzZC4uZGMxYjQ4NDY0M2VkMSAxMDA2NDQKLS0tIGEvZHJpdmVy
cy92aWRlby9mYmRldi9hdGFmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvYXRhZmIuYwpA
QCAtMjMwNCw2ICsyMzA0LDE4NSBAQCBzdGF0aWMgaW50IGV4dF9kZXRlY3Qodm9pZCkKIAlyZXR1
cm4gMTsKIH0KIAorLyogLS0tLS0tLS0tLS0tLS0tLS0tLSBTdXBlclZpZGVsIFN1cGVyQmxpdHRl
ciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKy8qCisgKiBIYXJkd2FyZSBibGl0dGVyIGlu
IHRoZSBTdXBlclZpZGVsIEZQR0EsIG9wZXJhdGluZyB3aXRoaW4gU1YgRERSMiBSQU0uCisgKiBG
VyByZXZpc2lvbiA+PSA5IHByb3ZpZGVzIGEgY29tbWFuZCBGSUZPIChhc3luYyBvcGVyYXRpb24p
OyBvbGRlcgorICogcmV2aXNpb25zIGFyZSBwcm9ncmFtbWVkIGRpcmVjdGx5IHdpdGggYnVzeS1w
b2xsaW5nLgorICovCisjZGVmaW5lIFNWQkxJVF9SRUdTX1BIWVMJMHg4MDAxMDAwMAorI2RlZmlu
ZSBTVkJMSVRfU1JDMQkJMHg1OAkvKiBiaXRzIDI2OjAgKi8KKyNkZWZpbmUgU1ZCTElUX1NSQzIJ
CTB4NWMKKyNkZWZpbmUgU1ZCTElUX0RTVAkJMHg2MAorI2RlZmluZSBTVkJMSVRfQ09VTlQJCTB4
NjQJLyogYnl0ZXMgcGVyIGxpbmUgLSAxICovCisjZGVmaW5lIFNWQkxJVF9TUkMxX09GRlNFVAkw
eDY4CS8qIGxpbmUgc3RhcnQgdG8gbmV4dCBsaW5lIHN0YXJ0ICovCisjZGVmaW5lIFNWQkxJVF9T
UkMyX09GRlNFVAkweDZjCisjZGVmaW5lIFNWQkxJVF9EU1RfT0ZGU0VUCTB4NzAKKyNkZWZpbmUg
U1ZCTElUX01BU0tfQU5EX0xJTkVTCTB4NzQJLyogYml0cyAxMTowOiBudW1iZXIgb2YgbGluZXMg
Ki8KKyNkZWZpbmUgU1ZCTElUX0NPTlRST0wJCTB4NzgJLyogYml0IDA6IGJ1c3kvc3RhcnQsIGJp
dHMgNDoxOiBtb2RlICovCisjZGVmaW5lIFNWQkxJVF9WRVJTSU9OCQkweDdjCS8qIGJpdHMgOTow
OiBGVyByZXZpc2lvbiAqLworI2RlZmluZSBTVkJMSVRfRklGTwkJMHg4MAkvKiB3cjogZGF0YTsg
cmQ6IGJpdCAwIGVtcHR5LCBiaXQgMSBmdWxsICovCisKKy8qCisgKiBTdXBlckJsaXR0ZXIgYnVn
OiBJbnN0ZWFkIG9mIGRlY2xhcmVkIDIwNDggYnl0ZXMsIDIwMzIgaXMgdGhlIHJlYWwgbWF4aW11
bS4KKyAqLworI2RlZmluZSBTVkJMSVRfTUFYX1NQQU4JMjAzMgorCitzdGF0aWMgdm9pZCBfX2lv
bWVtICpzdmJsaXRfcmVnczsKK3N0YXRpYyBpbnQgc3ZibGl0X2Z3OworCitzdGF0aWMgaW5saW5l
IHUzMiBzdmJsaXRfcmQodW5zaWduZWQgaW50IHJlZykKK3sKKwlyZXR1cm4gX19yYXdfcmVhZGwo
c3ZibGl0X3JlZ3MgKyByZWcpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgc3ZibGl0X3dyKHVu
c2lnbmVkIGludCByZWcsIHUzMiB2YWwpCit7CisJX19yYXdfd3JpdGVsKHZhbCwgc3ZibGl0X3Jl
Z3MgKyByZWcpOworfQorCisvKiB3YWl0IHVudGlsIGFsbCBxdWV1ZWQgYmxpdHMgaGF2ZSBmaW5p
c2hlZCAqLworc3RhdGljIHZvaWQgc3ZibGl0X3dhaXQodm9pZCkKK3sKKwlpZiAoc3ZibGl0X2Z3
ID49IDkpCisJCS8qIEZJRk8gZW1wdHkgZmxhZyA9IGZld2VyIHRoYW4gOSBsb25nd29yZHMgcXVl
dWVkICovCisJCXdoaWxlICghKHN2YmxpdF9yZChTVkJMSVRfRklGTykgJiAxKSkKKwkJCWNwdV9y
ZWxheCgpOworCXdoaWxlIChzdmJsaXRfcmQoU1ZCTElUX0NPTlRST0wpICYgMSkKKwkJY3B1X3Jl
bGF4KCk7Cit9CisKKy8qCisgKiBGVyA+PSA5IHF1ZXVlcyBjb21tYW5kcyB0aHJvdWdoIHRoZSA1
MTItbG9uZ3dvcmQgRklGTzogYSBjb21tYW5kIGlzCisgKiA5IGxvbmd3b3JkcyAocmVnaXN0ZXJz
IDB4NTguLjB4NzggaW4gb3JkZXIpLCBleGVjdXRlZCB3aGVuZXZlciA+PSA5CisgKiB3b3JkcyBh
cmUgcXVldWVkIGFuZCB0aGUgYmxpdHRlciBpcyBpZGxlLiBUaGUgZnVsbCBmbGFnIHJpc2VzIGF0
CisgKiA+PSA1MDAgcXVldWVkIHdvcmRzLCBzbyBiZWxvdyBpdCB0aGVyZSBpcyBhbHdheXMgcm9v
bSBmb3IgYSB3aG9sZQorICogY29tbWFuZCDigJQgb25lIGZsYWcgY2hlY2sgcGVyIGNvbW1hbmQg
cHJldmVudHMgb3ZlcmZsb3cgKGRyb3BwZWQKKyAqIHdvcmRzIHdvdWxkIGRlc3luYyB0aGUgOS13
b3JkIGZyYW1pbmcgdW50aWwgYW4gU1YgcmVpbml0LCB3aGljaCBpcworICogZXhhY3RseSB3aGF0
IG92ZXJmbG93aW5nIGRpZCBiZWZvcmUgdGhpcyBndWFyZCBleGlzdGVkKS4gT2xkZXIgRlcKKyAq
IGlzIHByb2dyYW1tZWQgZGlyZWN0bHkgd2l0aCBidXN5LXBvbGxpbmcuCisgKgorICogVGhlIGxp
bmUgYnl0ZSBjb3VudCBmaWVsZCBpcyAxMSBiaXRzIGJ1dCBzZWUgU1ZCTElUX01BWF9TUEFOLgor
ICovCitzdGF0aWMgdm9pZCBzdmJsaXRfY29weSh1MzIgc3JjLCB1MzIgZHN0LCB1MzIgbmJ5dGVz
LCB1MzIgc3JjX29mZnNldCwKKwkJCXUzMiBkc3Rfb2Zmc2V0LCB1MzIgbGluZXMpCit7CisJd2hp
bGUgKG5ieXRlcykgeworCQl1MzIgY2h1bmsgPSBtaW4obmJ5dGVzLCAodTMyKVNWQkxJVF9NQVhf
U1BBTik7CisKKwkJaWYgKHN2YmxpdF9mdyA+PSA5KSB7CisJCQl3aGlsZSAoc3ZibGl0X3JkKFNW
QkxJVF9GSUZPKSAmIDIpCisJCQkJY3B1X3JlbGF4KCk7CisJCQlzdmJsaXRfd3IoU1ZCTElUX0ZJ
Rk8sIHNyYyk7CisJCQlzdmJsaXRfd3IoU1ZCTElUX0ZJRk8sIDApOworCQkJc3ZibGl0X3dyKFNW
QkxJVF9GSUZPLCBkc3QpOworCQkJc3ZibGl0X3dyKFNWQkxJVF9GSUZPLCBjaHVuayAtIDEpOwor
CQkJc3ZibGl0X3dyKFNWQkxJVF9GSUZPLCBzcmNfb2Zmc2V0KTsKKwkJCXN2YmxpdF93cihTVkJM
SVRfRklGTywgMCk7CisJCQlzdmJsaXRfd3IoU1ZCTElUX0ZJRk8sIGRzdF9vZmZzZXQpOworCQkJ
c3ZibGl0X3dyKFNWQkxJVF9GSUZPLCBsaW5lcyk7CisJCQlzdmJsaXRfd3IoU1ZCTElUX0ZJRk8s
IDB4MDEpOworCQl9IGVsc2UgeworCQkJd2hpbGUgKHN2YmxpdF9yZChTVkJMSVRfQ09OVFJPTCkg
JiAxKQorCQkJCWNwdV9yZWxheCgpOworCQkJc3ZibGl0X3dyKFNWQkxJVF9TUkMxLCBzcmMpOwor
CQkJc3ZibGl0X3dyKFNWQkxJVF9TUkMyLCAwKTsKKwkJCXN2YmxpdF93cihTVkJMSVRfRFNULCBk
c3QpOworCQkJc3ZibGl0X3dyKFNWQkxJVF9DT1VOVCwgY2h1bmsgLSAxKTsKKwkJCXN2YmxpdF93
cihTVkJMSVRfU1JDMV9PRkZTRVQsIHNyY19vZmZzZXQpOworCQkJc3ZibGl0X3dyKFNWQkxJVF9T
UkMyX09GRlNFVCwgMCk7CisJCQlzdmJsaXRfd3IoU1ZCTElUX0RTVF9PRkZTRVQsIGRzdF9vZmZz
ZXQpOworCQkJc3ZibGl0X3dyKFNWQkxJVF9NQVNLX0FORF9MSU5FUywgbGluZXMpOworCQkJc3Zi
bGl0X3dyKFNWQkxJVF9DT05UUk9MLCAweDAxKTsKKwkJfQorCisJCXNyYyArPSBjaHVuazsKKwkJ
ZHN0ICs9IGNodW5rOworCQluYnl0ZXMgLT0gY2h1bms7CisJfQorfQorCitzdGF0aWMgaW50IHN2
YmxpdF9zeW5jKHN0cnVjdCBmYl9pbmZvICppbmZvKQoreworCXN2YmxpdF93YWl0KCk7CisJcmV0
dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHN2YmxpdF9jb3B5YXJlYShzdHJ1Y3QgZmJfaW5mbyAq
aW5mbywKKwkJCSAgICBjb25zdCBzdHJ1Y3QgZmJfY29weWFyZWEgKmFyZWEpCit7CisJdTMyIGJ5
dGVzcHAgPSBpbmZvLT52YXIuYml0c19wZXJfcGl4ZWwgLyA4OworCXUzMiBwaXRjaCA9IGluZm8t
PmZpeC5saW5lX2xlbmd0aDsKKworCS8qCisJICogVGhlIGJsaXR0ZXIgd2Fsa3MgbGluZXMgaW4g
YXNjZW5kaW5nIG9yZGVyLCBzbyBvdmVybGFwcGluZworCSAqIG1vdmVzIGRvd24vcmlnaHQgd291
bGQgcmVhZCBhbHJlYWR5IG92ZXJ3cml0dGVuIGRhdGEuIFRob3NlCisJICogYXJlIHJhcmUgZm9y
IGZiY29uIChzY3JvbGxpbmcgYmFja3dhcmRzKTsgbGVhdmUgdGhlbSBhbmQKKwkgKiBvdmVyc2l6
ZWQgYXJlYXMgdG8gdGhlIENQVS4KKwkgKi8KKwlpZiAoYXJlYS0+aGVpZ2h0ID4gNDA5NSB8fAor
CSAgICBhcmVhLT5keSA+IGFyZWEtPnN5IHx8CisJICAgIChhcmVhLT5keSA9PSBhcmVhLT5zeSAm
JiBhcmVhLT5keCA+IGFyZWEtPnN4KSkgeworCQlzdmJsaXRfd2FpdCgpOworCQljZmJfY29weWFy
ZWEoaW5mbywgYXJlYSk7CisJCXJldHVybjsKKwl9CisKKwlzdmJsaXRfY29weShleHRlcm5hbF9h
ZGRyICsgYXJlYS0+c3kgKiBwaXRjaCArIGFyZWEtPnN4ICogYnl0ZXNwcCwKKwkJICAgIGV4dGVy
bmFsX2FkZHIgKyBhcmVhLT5keSAqIHBpdGNoICsgYXJlYS0+ZHggKiBieXRlc3BwLAorCQkgICAg
YXJlYS0+d2lkdGggKiBieXRlc3BwLCBwaXRjaCwgcGl0Y2gsIGFyZWEtPmhlaWdodCk7CisJLyog
YXN5bmM6IGV2ZXJ5IENQVSBhY2Nlc3MgdG8gdGhlIGZiIGdvZXMgdGhyb3VnaCBzdmJsaXRfd2Fp
dCgpICovCit9CisKK3N0YXRpYyB2b2lkIHN2YmxpdF9maWxscmVjdChzdHJ1Y3QgZmJfaW5mbyAq
aW5mbywKKwkJCSAgICBjb25zdCBzdHJ1Y3QgZmJfZmlsbHJlY3QgKnJlY3QpCit7CisJdTMyIGJ5
dGVzcHAgPSBpbmZvLT52YXIuYml0c19wZXJfcGl4ZWwgLyA4OworCXUzMiBwaXRjaCA9IGluZm8t
PmZpeC5saW5lX2xlbmd0aDsKKwl1OCAqbGluZTsKKwl1MzIgcGl4OworCisJc3ZibGl0X3dhaXQo
KTsJCS8qIHRoZSBDUFUgaXMgYWJvdXQgdG8gdG91Y2ggdGhlIGZiICovCisKKwlpZiAocmVjdC0+
cm9wICE9IFJPUF9DT1BZIHx8IHJlY3QtPmhlaWdodCA8PSAxIHx8CisJICAgIHJlY3QtPmhlaWdo
dCA+IDQwOTYpIHsKKwkJY2ZiX2ZpbGxyZWN0KGluZm8sIHJlY3QpOworCQlyZXR1cm47CisJfQor
CisJcGl4ID0gKGluZm8tPmZpeC52aXN1YWwgPT0gRkJfVklTVUFMX1RSVUVDT0xPUikgPworCQko
KHUzMiAqKWluZm8tPnBzZXVkb19wYWxldHRlKVtyZWN0LT5jb2xvcl0gOiByZWN0LT5jb2xvcjsK
KworCS8qIGRyYXcgdGhlIGZpcnN0IGxpbmUgd2l0aCB0aGUgQ1BVIC4uLiAqLworCWxpbmUgPSAo
dTggKilpbmZvLT5zY3JlZW5fYmFzZSArIHJlY3QtPmR5ICogcGl0Y2ggKworCSAgICAgICByZWN0
LT5keCAqIGJ5dGVzcHA7CisJc3dpdGNoIChieXRlc3BwKSB7CisJY2FzZSAxOgorCQltZW1zZXQo
bGluZSwgcGl4LCByZWN0LT53aWR0aCk7CisJCWJyZWFrOworCWNhc2UgMjoKKwkJbWVtc2V0MTYo
KHUxNiAqKWxpbmUsIHBpeCwgcmVjdC0+d2lkdGgpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlt
ZW1zZXQzMigodTMyICopbGluZSwgcGl4LCByZWN0LT53aWR0aCk7CisJCWJyZWFrOworCX0KKwor
CS8qIC4uLiBhbmQgbGV0IHRoZSBibGl0dGVyIHJlcGxpY2F0ZSBpdCBpbnRvIHRoZSBvdGhlciBs
aW5lcyAqLworCXN2YmxpdF9jb3B5KGV4dGVybmFsX2FkZHIgKyByZWN0LT5keSAqIHBpdGNoICsg
cmVjdC0+ZHggKiBieXRlc3BwLAorCQkgICAgZXh0ZXJuYWxfYWRkciArIChyZWN0LT5keSArIDEp
ICogcGl0Y2ggKworCQkgICAgcmVjdC0+ZHggKiBieXRlc3BwLAorCQkgICAgcmVjdC0+d2lkdGgg
KiBieXRlc3BwLCAwLCBwaXRjaCwgcmVjdC0+aGVpZ2h0IC0gMSk7Cit9CisKK3N0YXRpYyB2b2lk
IHN2YmxpdF9pbWFnZWJsaXQoc3RydWN0IGZiX2luZm8gKmluZm8sCisJCQkgICAgIGNvbnN0IHN0
cnVjdCBmYl9pbWFnZSAqaW1hZ2UpCit7CisJc3ZibGl0X3dhaXQoKTsJCS8qIENQVSByZW5kZXJp
bmcgbXVzdCBub3QgcmFjZSBxdWV1ZWQgYmxpdHMgKi8KKwljZmJfaW1hZ2VibGl0KGluZm8sIGlt
YWdlKTsKK30KKwogI2VuZGlmIC8qIEFUQUZCX0VYVCAqLwogCiAvKiAtLS0tLS0gVGhpcyBpcyB0
aGUgc2FtZSBmb3IgbW9zdCBoYXJkd2FyZSB0eXBlcyAtLS0tLS0tLSAqLwpAQCAtMzE2OCw2ICsz
MzQ3LDI0IEBAIHN0YXRpYyBpbnQgX19pbml0IGF0YWZiX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9k
ZXZpY2UgKnBkZXYpCiAJCXBoeXNfc2NyZWVuX2Jhc2UgPSBleHRlcm5hbF9hZGRyOwogCQlzY3Jl
ZW5fbGVuID0gZXh0ZXJuYWxfbGVuICYgUEFHRV9NQVNLOwogCQltZW1zZXQgKHNjcmVlbl9iYXNl
LCAwLCBleHRlcm5hbF9sZW4pOworCisJCS8qIGZyYW1lYnVmZmVyIGluIFNWIFJBTTogZW5hYmxl
IHRoZSBTdXBlckJsaXR0ZXIgKi8KKwkJaWYgKGV4dGVybmFsX2FkZHIgPj0gMHhhMDAwMDAwMCkg
eworCQkJc3ZibGl0X3JlZ3MgPSBpb3JlbWFwKFNWQkxJVF9SRUdTX1BIWVMsIDB4MTAwKTsKKwkJ
CWlmIChzdmJsaXRfcmVncykgeworCQkJCXN2YmxpdF9mdyA9IHN2YmxpdF9yZChTVkJMSVRfVkVS
U0lPTikgJiAweDFmZjsKKwkJCQlhdGFmYl9vcHMuZmJfZmlsbHJlY3QgPSBzdmJsaXRfZmlsbHJl
Y3Q7CisJCQkJYXRhZmJfb3BzLmZiX2NvcHlhcmVhID0gc3ZibGl0X2NvcHlhcmVhOworCQkJCWF0
YWZiX29wcy5mYl9pbWFnZWJsaXQgPSBzdmJsaXRfaW1hZ2VibGl0OworCQkJCWF0YWZiX29wcy5m
Yl9zeW5jID0gc3ZibGl0X3N5bmM7CisJCQkJZmJfaW5mby5mbGFncyB8PSBGQklORk9fSFdBQ0NF
TF9DT1BZQVJFQSB8CisJCQkJCQkgRkJJTkZPX0hXQUNDRUxfRklMTFJFQ1Q7CisJCQkJZGV2X2lu
Zm8oJnBkZXYtPmRldiwKKwkJCQkJICJTdXBlckJsaXR0ZXIgZW5hYmxlZCwgRlcgcmV2aXNpb24g
JWQgKCVzKVxuIiwKKwkJCQkJIHN2YmxpdF9mdywgc3ZibGl0X2Z3ID49IDkgPworCQkJCQkgImFz
eW5jIEZJRk8iIDogInN5bmMiKTsKKwkJCX0KKwkJfQogCX0KICNlbmRpZiAvKiBBVEFGQl9FWFQg
Ki8KIAotLSAKMi41NS4wCgo=
--00000000000039b01806581e28e7
Content-Type: text/x-patch; charset="US-ASCII"; name="0002-Give-atafb-proper-parent.patch"
Content-Disposition: attachment; 
	filename="0002-Give-atafb-proper-parent.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_mscsx8dw1>
X-Attachment-Id: f_mscsx8dw1

RnJvbSA0YmU2OWFlOGQ1YTQzY2U2NzA4YmRkMGJjZjlhNzQxMjY3N2M2NzQ0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNaXJvIEtyb3BhY2VrIDxtaXJvLmtyb3BhY2VrQGdtYWlsLmNv
bT4KRGF0ZTogRnJpLCAyNCBKdWwgMjAyNiAyMTowNDoyOSArMTAwMApTdWJqZWN0OiBbUEFUQ0gg
Mi81XSBHaXZlIGF0YWZiIHByb3BlciBwYXJlbnQKCi0tLQogZHJpdmVycy92aWRlby9mYmRldi9h
dGFmYi5jIHwgNSArKysrKwogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQoKZGlmZiAt
LWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvYXRhZmIuYyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYv
YXRhZmIuYwppbmRleCBiOGVkMWM1MzcyOTNkLi4zZDU0MDgwM2RjMmI2IDEwMDY0NAotLS0gYS9k
cml2ZXJzL3ZpZGVvL2ZiZGV2L2F0YWZiLmMKKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9hdGFm
Yi5jCkBAIC0zMTAxLDYgKzMxMDEsMTEgQEAgc3RhdGljIGludCBfX2luaXQgYXRhZmJfcHJvYmUo
c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKICNlbmRpZiAvKiBBVEFGQl9FWFQgKi8KIAog
Ly8Jc3RyY3B5KGZiX2luZm8ubW9kZS0+bmFtZSwgIkF0YXJpIEJ1aWx0aW4gIik7CisJLyogUGFy
ZW50IHRoZSBmYiBkZXZpY2UgcHJvcGVybHk6IHdpdGhvdXQgdGhpcyBmYjAgcmVnaXN0ZXJzIGFz
IGEKKwkgKiB2aXJ0dWFsIHN5c2ZzIGRldmljZSB3aXRoIG5vIC9zeXMvY2xhc3MvZ3JhcGhpY3Mv
ZmIwL2RldmljZSBsaW5rLAorCSAqIHdoaWNoIG1ha2VzIFhvcmcncyBmYmRldmh3IHJlamVjdCBp
dCAoIk5vIGRldmljZXMgZGV0ZWN0ZWQiKS4KKwkgKi8KKwlmYl9pbmZvLmRldmljZSA9ICZwZGV2
LT5kZXY7CiAJZmJfaW5mby5mYm9wcyA9ICZhdGFmYl9vcHM7CiAJLy8gdHJ5IHRvIHNldCBkZWZh
dWx0IChkZXRlY3RlZDsgcmVxdWVzdGVkKSB2YXIKIAlkb19mYl9zZXRfdmFyKCZhdGFmYl9wcmVk
ZWZpbmVkW2RlZmF1bHRfcGFyIC0gMV0sIDEpOwotLSAKMi41NS4wCgo=
--00000000000039b01806581e28e7--