Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756426AbbFQOu5 (ORCPT ); Wed, 17 Jun 2015 10:50:57 -0400 Received: from mail-wg0-f45.google.com ([74.125.82.45]:35719 "EHLO mail-wg0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755377AbbFQOuw (ORCPT ); Wed, 17 Jun 2015 10:50:52 -0400 MIME-Version: 1.0 From: Michal Suchanek Date: Wed, 17 Jun 2015 16:50:10 +0200 Message-ID: Subject: Re: pl330 dma failure To: Vinod Koul Cc: Robert Baldyga , dmaengine , Linux Kernel Mailing List , linux-exynos , Catalin Marinas Content-Type: multipart/mixed; boundary=f46d043c7ba228ce370518b7d122 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 25707 Lines: 391 --f46d043c7ba228ce370518b7d122 Content-Type: text/plain; charset=UTF-8 H On 2 June 2015 at 16:17, Michal Suchanek wrote: > On 2 June 2015 at 15:08, Vinod Koul wrote: >> On Sat, May 30, 2015 at 09:37:07PM +0200, Michal Suchanek wrote: >>> Hello, >>> >>> I was trying to read the SPI NOR flash and found that the pl330 >>> controller dma mysteriously fails. >> >> Adding Robert, >> >>> >>> There is the problem that the 256 bytes of dma program buffer does not >>> suffice for the whole of 4M of the flash memory so all of it cannot be >>> possibly transferred in one go with the pl330 driver as is now. >>> >>> However, the practical limit is much smaller. At 1MHz or 40MHz the >>> maximum transfer size that ever finishes is 64k. At 133MHz which is >>> the rated flash memory clock the maximum transfer size that finishes >>> is 128 bytes (only tried power of 2). >>> >>> There is no obvious issue with the DMA program. 128k happens to be the >>> smallest size that requires that the burst instruction is repeated in >>> the cycle and also happens to be the smallest size that fails for any >>> speed I tried. >>> >>> Is there some obvious fix or should I just give up on transferring >>> more than 64k and make the driver truncate any larger transfers? >> Well dma controllers cannot transfer any size, the controllers do have >> limitation on maximum transfer per block. So to transfer more data you need >> to create descriptor with multiple segments (or driver should split that but >> not done usually) and worst case multiple transfers. > > Hello, > > Thanks for your input. > > As I understand the pl330 it transfers data according to a program > executed on the controller. > The program itself uses DMALDPS/DMASTA instructions which transfers > data one byte at a time and there are up to 2 loops with 8bit counter > DMALP. > > So the theoretical limit by the program buffer size (256 bytes) is > about 2Mbytes. > > However, the program for transferring 128k (which happens to have two > DMALDPS/DMASTA instructions in the cycle as opposed to the one > instruction for transferring 64k) locks up and never (within 10x the > expected time it should take to complete the transfer) reaches DMASEV > to signal completion of the DMA transfer. Also subsequent commands on > on the flash fail probably due to stale data in some FIFO - this can > be resolved by sending lots of nops to the flash. > > There are two problems with this - it is not known in advance what > amount of data can be transferred without pl330 locking up. It is 64k > at 40MHz spi and 128bytes at 133MHz spi on my system. > > The other problem is that even if the limitation was known there is no > way to let the upper layer know other than transferring less data than > requested. > > It is also possible to orchestrate many small transactions with DMASEV > signalling some pl330 function to program new transfer rather than the > user code that waits for the transfer to finish. >>> [ 60.780206] m25p80 spi1.0: from 0x00000000, len 131072 >>> [ 60.780291] s3c64xx_spi_transfer_one 12d30000.spi spi1 spi1.0 xfer >>> bpw 8 speed 40000000 >>> [ 60.780297] s3c64xx_spi_transfer_one 12d30000.spi spi1 spi1.0 not using dma >>> [ 60.780312] s3c64xx_spi_transfer_one 12d30000.spi spi1 spi1.0 xfer >>> bpw 8 speed 40000000 >>> [ 60.780316] s3c64xx_spi_transfer_one 12d30000.spi spi1 spi1.0 using dma >>> [ 60.780327] bc041000: DMAMOV CCR 0x804200 >>> [ 60.780333] bc041006: DMAMOV SAR 0x12d3001c >>> [ 60.780338] bc04100c: DMAMOV DAR 0x68020000 >>> [ 60.780344] bc041012: DMALP_0 255 >>> [ 60.780349] bc041014: DMALP_1 255 >>> [ 60.780355] bc041016: DMAWFPS 4 >>> [ 60.780360] bc041018: DMALDPS 4 >>> [ 60.780365] bc04101a: DMASTA >>> [ 60.780370] bc04101b: DMAFLUSHP 4 >>> [ 60.780375] bc04101d: DMAWFPS 4 >>> [ 60.780380] bc04101f: DMALDPS 4 >>> [ 60.780385] bc041021: DMASTA >>> [ 60.780390] bc041022: DMAFLUSHP 4 >>> [ 60.780395] bc041024: DMALPENDA_1 bjmpto_e >>> [ 60.780401] bc041026: DMALPENDA_0 bjmpto_12 >>> [ 60.780406] bc041028: DMASEV 0 >>> [ 60.780411] bc04102a: DMAEND >>> [ 60.780423] wait_for_dma 12d30000.spi spi1 (null) waiting for 72ms >>> transferring 131072bytes@40000000Hz >>> [ 60.903505] wait_for_dma 12d30000.spi spi1 (null) waited 125 ms >>> [ 60.903518] m25p80 spi1.0: I/O Error: rx-1 tx-0 res:rx-f tx-p len-131072 >>> [ 60.903530] m25p80 spi1.0: SPI transfer failed: -5 >>> [ 60.903590] spi_master spi1: failed to transfer one message from queue Hello, I added more debug prints (and nops in the middle of the dma program just in case) and clearly the event that is supposed to be produced by the DMASEV in this program is never delivered for program of this length. The shorter program with only one DMALDPS in the loop works. Attaching a dmesg excerpt. It has been pointed out that Catalin Marinas might know of some source of information on this dma controller so adding to CC. Thanks Michal --f46d043c7ba228ce370518b7d122 Content-Type: text/plain; charset=US-ASCII; name="pl330-dmesg.txt" Content-Disposition: attachment; filename="pl330-dmesg.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ib0vhic90 WyAgICAwLjAwMDAwMF0gQm9vdGluZyBMaW51eCBvbiBwaHlzaWNhbCBDUFUgMHgwClsgICAgMC4w MDAwMDBdIExpbnV4IHZlcnNpb24gNC4xLjAtcmM3LTAwMzQzLWc4MTM3MWVmIChocmFtcmFjaEBp c2NzaSkgKGdjYyB2ZXJzaW9uIDQuOS4yICggNC45LjItMTApICkgIzM1IFNNUCBQUkVFTVBUIEZy aSBKdW4gMTIgMTI6MDY6MTUgQ0VTVCAyMDE1ClsgICAgMC4wMDAwMDBdIENQVTogQVJNdjcgUHJv Y2Vzc29yIFs0MTBmYzBmNF0gcmV2aXNpb24gNCAoQVJNdjcpLCBjcj0xMGM1Mzg3ZApbICAgIDAu MDAwMDAwXSBDUFU6IFBJUFQgLyBWSVBUIG5vbmFsaWFzaW5nIGRhdGEgY2FjaGUsIFBJUFQgaW5z dHJ1Y3Rpb24gY2FjaGUKWyAgICAwLjAwMDAwMF0gTWFjaGluZSBtb2RlbDogR29vZ2xlIFNub3cK WyAgICAwLjAwMDAwMF0gY21hOiBSZXNlcnZlZCA2NCBNaUIgYXQgMHhiYzAwMDAwMApbICAgIDAu MDAwMDAwXSBNZW1vcnkgcG9saWN5OiBEYXRhIGNhY2hlIHdyaXRlYWxsb2MKWyAgICAwLjAwMDAw MF0gU2Ftc3VuZyBDUFUgSUQ6IDB4NDM1MjAwMTAKWyAgICAwLjAwMDAwMF0gT24gbm9kZSAwIHRv dGFscGFnZXM6IDUyNDI4OApbICAgIDAuMDAwMDAwXSBmcmVlX2FyZWFfaW5pdF9ub2RlOiBub2Rl IDAsIHBnZGF0IGMwOWRjNTgwLCBub2RlX21lbV9tYXAgZWU3ZjcwMDAKWyAgICAwLjAwMDAwMF0g ICBOb3JtYWwgem9uZTogMTUyMCBwYWdlcyB1c2VkIGZvciBtZW1tYXAKWyAgICAwLjAwMDAwMF0g ICBOb3JtYWwgem9uZTogMCBwYWdlcyByZXNlcnZlZApbICAgIDAuMDAwMDAwXSAgIE5vcm1hbCB6 b25lOiAxOTQ1NjAgcGFnZXMsIExJRk8gYmF0Y2g6MzEKWyAgICAwLjAwMDAwMF0gICBIaWdoTWVt IHpvbmU6IDMyOTcyOCBwYWdlcywgTElGTyBiYXRjaDozMQpbICAgIDAuMDAwMDAwXSBQRVJDUFU6 IEVtYmVkZGVkIDEyIHBhZ2VzL2NwdSBAZWU3OWUwMDAgczE2NDQ4IHI4MTkyIGQyNDUxMiB1NDkx NTIKWyAgICAwLjAwMDAwMF0gcGNwdS1hbGxvYzogczE2NDQ4IHI4MTkyIGQyNDUxMiB1NDkxNTIg YWxsb2M9MTIqNDA5NgpbICAgIDAuMDAwMDAwXSBwY3B1LWFsbG9jOiBbMF0gMCBbMF0gMSAKWyAg ICAwLjAwMDAwMF0gQnVpbHQgMSB6b25lbGlzdHMgaW4gWm9uZSBvcmRlciwgbW9iaWxpdHkgZ3Jv dXBpbmcgb24uICBUb3RhbCBwYWdlczogNTIyNzY4ClsgICAgMC4wMDAwMDBdIEtlcm5lbCBjb21t YW5kIGxpbmU6IHJvb3Q9L2Rldi9tbWNibGsxcDUgcncgY29uc29sZT10dHkwIGVhcmx5cHJpbnRr IGRlYnVnPTEgaW5pdGNhbGxfZGVidWcgcm9vdHdhaXQgZHluZGJnPVwiZmlsZSBzcGktczMqICtw IDsgZmlsZSBzcGktbm9yLmMgK3AgOyBmaWxlIHNwaSogK3AgOyBmaWxlIG0yNXA4MC5jICtwIFwi ClsgICAgMC4wMDAwMDBdIFBJRCBoYXNoIHRhYmxlIGVudHJpZXM6IDQwOTYgKG9yZGVyOiAyLCAx NjM4NCBieXRlcykKWyAgICAwLjAwMDAwMF0gRGVudHJ5IGNhY2hlIGhhc2ggdGFibGUgZW50cmll czogMTMxMDcyIChvcmRlcjogNywgNTI0Mjg4IGJ5dGVzKQpbICAgIDAuMDAwMDAwXSBJbm9kZS1j YWNoZSBoYXNoIHRhYmxlIGVudHJpZXM6IDY1NTM2IChvcmRlcjogNiwgMjYyMTQ0IGJ5dGVzKQpb ICAgIDAuMDAwMDAwXSBNZW1vcnk6IDIwMDM1MDBLLzIwOTcxNTJLIGF2YWlsYWJsZSAoNjYxNEsg a2VybmVsIGNvZGUsIDMzOEsgcndkYXRhLCAyNzgwSyByb2RhdGEsIDQzNksgaW5pdCwgMzA3SyBi c3MsIDI4MTE2SyByZXNlcnZlZCwgNjU1MzZLIGNtYS1yZXNlcnZlZCwgMTI1MzM3NksgaGlnaG1l bSkKWyAgICAwLjAwMDAwMF0gVmlydHVhbCBrZXJuZWwgbWVtb3J5IGxheW91dDoKICAgIHZlY3Rv ciAgOiAweGZmZmYwMDAwIC0gMHhmZmZmMTAwMCAgICggICA0IGtCKQogICAgZml4bWFwICA6IDB4 ZmZjMDAwMDAgLSAweGZmZjAwMDAwICAgKDMwNzIga0IpCiAgICB2bWFsbG9jIDogMHhmMDAwMDAw MCAtIDB4ZmYwMDAwMDAgICAoIDI0MCBNQikKICAgIGxvd21lbSAgOiAweGMwMDAwMDAwIC0gMHhl ZjgwMDAwMCAgICggNzYwIE1CKQogICAgcGttYXAgICA6IDB4YmZlMDAwMDAgLSAweGMwMDAwMDAw ICAgKCAgIDIgTUIpCiAgICBtb2R1bGVzIDogMHhiZjAwMDAwMCAtIDB4YmZlMDAwMDAgICAoICAx NCBNQikKICAgICAgLnRleHQgOiAweGMwMDA4MDAwIC0gMHhjMDkzNGQ4YyAgICg5Mzk2IGtCKQog ICAgICAuaW5pdCA6IDB4YzA5MzUwMDAgLSAweGMwOWEyMDAwICAgKCA0MzYga0IpCiAgICAgIC5k YXRhIDogMHhjMDlhMjAwMCAtIDB4YzA5ZjZiMzggICAoIDMzOSBrQikKICAgICAgIC5ic3MgOiAw eGMwOWY5MDAwIC0gMHhjMGE0NWZmNCAgICggMzA4IGtCKQpbICAgIDAuMDAwMDAwXSBTTFVCOiBI V2FsaWduPTY0LCBPcmRlcj0wLTMsIE1pbk9iamVjdHM9MCwgQ1BVcz0yLCBOb2Rlcz0xClsgICAg MC4wMDAwMDBdIFByZWVtcHRpYmxlIGhpZXJhcmNoaWNhbCBSQ1UgaW1wbGVtZW50YXRpb24uClsg ICAgMC4wMDAwMDBdIAlBZGRpdGlvbmFsIHBlci1DUFUgaW5mbyBwcmludGVkIHdpdGggc3RhbGxz LgpbICAgIDAuMDAwMDAwXSAJUkNVIHJlc3RyaWN0aW5nIENQVXMgZnJvbSBOUl9DUFVTPTggdG8g bnJfY3B1X2lkcz0yLgpbICAgIDAuMDAwMDAwXSBSQ1U6IEFkanVzdGluZyBnZW9tZXRyeSBmb3Ig cmN1X2Zhbm91dF9sZWFmPTE2LCBucl9jcHVfaWRzPTIKWyAgICAwLjAwMDAwMF0gTlJfSVJRUzox NiBucl9pcnFzOjE2IDE2ClsgICAgMC4wMDAwMDBdIEdJQyBwaHlzaWNhbCBsb2NhdGlvbiBpcyAw eDEwNDgxMDAwClsgICAgMC4wMDAwMDBdIEwyQzogZmFpbGVkIHRvIGluaXQ6IC0xOQpbICAgIDAu MDAwMDAwXSBFeHlub3M1MjUwOiBjbG9jayBzZXR1cCBjb21wbGV0ZWQsIGFybWNsaz0xNzAwMDAw MDAwClsgICAgMC4wMDAwMDBdIEFyY2hpdGVjdGVkIGNwMTUgdGltZXIocykgcnVubmluZyBhdCAy NC4wME1IeiAodmlydCkuClsgICAgMC4wMDAwMDBdIGNsb2Nrc291cmNlIGFyY2hfc3lzX2NvdW50 ZXI6IG1hc2s6IDB4ZmZmZmZmZmZmZmZmZmYgbWF4X2N5Y2xlczogMHg1ODhmZTlkYzAsIG1heF9p ZGxlX25zOiA0NDA3OTUyMDI1OTIgbnMKWyAgICAwLjAwMDAwMl0gc2NoZWRfY2xvY2s6IDU2IGJp dHMgYXQgMjRNSHosIHJlc29sdXRpb24gNDFucywgd3JhcHMgZXZlcnkgNDM5ODA0NjUxMTA5N25z ClsgICAgMC4wMDAwMDldIFN3aXRjaGluZyB0byB0aW1lci1iYXNlZCBkZWxheSBsb29wLCByZXNv bHV0aW9uIDQxbnMKWyAgICAwLjAwMDIwM10gSWdub3JpbmcgZHVwbGljYXRlL2xhdGUgcmVnaXN0 cmF0aW9uIG9mIHJlYWRfY3VycmVudF90aW1lciBkZWxheQpbICAgIDAuMDAwMjExXSBjbG9ja3Nv dXJjZSBtY3QtZnJjOiBtYXNrOiAweGZmZmZmZmZmIG1heF9jeWNsZXM6IDB4ZmZmZmZmZmYsIG1h eF9pZGxlX25zOiA3OTYzNTg1MTk0OSBucwpbICAgIDAuMDAwMjE5XSBzY2hlZF9jbG9jazogMzIg Yml0cyBhdCAyNE1IeiwgcmVzb2x1dGlvbiA0MW5zLCB3cmFwcyBldmVyeSA4OTQ3ODQ4NDk3MW5z ClsgICAgMC4wMDA0NzRdIENvbnNvbGU6IGNvbG91ciBkdW1teSBkZXZpY2UgODB4MzAKWyAgICAw LjAwMDgyNl0gY29uc29sZSBbdHR5MF0gZW5hYmxlZApbICAgIDAuMDAwODQxXSBDYWxpYnJhdGlu ZyBkZWxheSBsb29wIChza2lwcGVkKSwgdmFsdWUgY2FsY3VsYXRlZCB1c2luZyB0aW1lciBmcmVx dWVuY3kuLiA0OC4wMCBCb2dvTUlQUyAobHBqPTEyMDAwMCkKWyAgICAwLjAwMDg2M10gcGlkX21h eDogZGVmYXVsdDogMzI3NjggbWluaW11bTogMzAxClsgICAgMC4wMDA5MjZdIFNlY3VyaXR5IEZy YW1ld29yayBpbml0aWFsaXplZApbICAgIDAuMDAwOTY5XSBNb3VudC1jYWNoZSBoYXNoIHRhYmxl IGVudHJpZXM6IDIwNDggKG9yZGVyOiAxLCA4MTkyIGJ5dGVzKQpbICAgIDAuMDAwOTgzXSBNb3Vu dHBvaW50LWNhY2hlIGhhc2ggdGFibGUgZW50cmllczogMjA0OCAob3JkZXI6IDEsIDgxOTIgYnl0 ZXMpClsgICAgMC4wMDEzMzVdIENQVTogVGVzdGluZyB3cml0ZSBidWZmZXIgY29oZXJlbmN5OiBv awpbICAgIDAuMDAxNDc1XSBDUFUwOiB1cGRhdGUgY3B1X2NhcGFjaXR5IDEwMjQKWyAgICAwLjAw MTQ4OF0gQ1BVMDogdGhyZWFkIC0xLCBjcHUgMCwgc29ja2V0IDAsIG1waWRyIDgwMDAwMDAwClsg ICAgMC4wMDE2NTFdIFNldHRpbmcgdXAgc3RhdGljIGlkZW50aXR5IG1hcCBmb3IgMHg0MDAwODI4 MCAtIDB4NDAwMDgyZDgKWyAgICAwLjAyMTUxM10gZHluYW1pY19kZWJ1ZzpkZGVidWdfcGFyc2Vf cXVlcnk6IHVua25vd24ga2V5d29yZCAiXCJmaWxlIgpbICAgIDAuMDIxNTI4XSBkeW5hbWljX2Rl YnVnOmRkZWJ1Z19leGVjX3F1ZXJ5OiBxdWVyeSBwYXJzZSBmYWlsZWQKWyAgICAwLjAyMzA4OF0g ZHluYW1pY19kZWJ1ZzpkZGVidWdfcGFyc2VfZmxhZ3M6IGJhZCBmbGFnLW9wIFwsIGF0IHN0YXJ0 IG9mIFwiClsgICAgMC4wMjMxMDBdIGR5bmFtaWNfZGVidWc6ZGRlYnVnX2V4ZWNfcXVlcnk6IGZs YWdzIHBhcnNlIGZhaWxlZApbICAgIDAuMDQwMTM0XSBDUFUxOiB1cGRhdGUgY3B1X2NhcGFjaXR5 IDEwMjQKWyAgICAwLjA0MDEzN10gQ1BVMTogdGhyZWFkIC0xLCBjcHUgMSwgc29ja2V0IDAsIG1w aWRyIDgwMDAwMDAxClsgICAgMC4wNDAxODRdIEJyb3VnaHQgdXAgMiBDUFVzClsgICAgMC4wNDAy MTJdIFNNUDogVG90YWwgb2YgMiBwcm9jZXNzb3JzIGFjdGl2YXRlZCAoOTYuMDAgQm9nb01JUFMp LgpbICAgIDAuMDQwMjIzXSBDUFU6IEFsbCBDUFUocykgc3RhcnRlZCBpbiBTVkMgbW9kZS4KWyAg ICAwLjA0MDUwNl0gZGV2dG1wZnM6IGluaXRpYWxpemVkClsgICAgMC4wNTM1NjJdIFZGUCBzdXBw b3J0IHYwLjM6IGltcGxlbWVudG9yIDQxIGFyY2hpdGVjdHVyZSA0IHBhcnQgMzAgdmFyaWFudCBm IHJldiAwClsgICAgMC4wNTQwODZdIGNsb2Nrc291cmNlIGppZmZpZXM6IG1hc2s6IDB4ZmZmZmZm ZmYgbWF4X2N5Y2xlczogMHhmZmZmZmZmZiwgbWF4X2lkbGVfbnM6IDk1NTYzMDIyMzEzNzUwMDAg bnMKWyAgICAwLjE4MDI2OF0gZG1hLXBsMzMwIDEyMWEwMDAwLnBkbWE6IExvYWRlZCBkcml2ZXIg Zm9yIFBMMzMwIERNQUMtMjQxMzMwClsgICAgMC4xODAyODZdIGRtYS1wbDMzMCAxMjFhMDAwMC5w ZG1hOiAJREJVRkYtMzJ4NGJ5dGVzIE51bV9DaGFucy04IE51bV9QZXJpLTMyIE51bV9FdmVudHMt MzIKWyAgICAwLjE4MjYxOV0gZG1hLXBsMzMwIDEyMWIwMDAwLnBkbWE6IExvYWRlZCBkcml2ZXIg Zm9yIFBMMzMwIERNQUMtMjQxMzMwClsgICAgMC4xODI2MzhdIGRtYS1wbDMzMCAxMjFiMDAwMC5w ZG1hOiAJREJVRkYtMzJ4NGJ5dGVzIE51bV9DaGFucy04IE51bV9QZXJpLTMyIE51bV9FdmVudHMt MzIKWyAgICAwLjE4MzI4N10gZG1hLXBsMzMwIDEwODAwMDAwLm1kbWE6IExvYWRlZCBkcml2ZXIg Zm9yIFBMMzMwIERNQUMtMjQxMzMwClsgICAgMC4xODMzMDRdIGRtYS1wbDMzMCAxMDgwMDAwMC5t ZG1hOiAJREJVRkYtNjR4OGJ5dGVzIE51bV9DaGFucy04IE51bV9QZXJpLTEgTnVtX0V2ZW50cy0z MgpbICAgIDAuMTgzOTQwXSBkbWEtcGwzMzAgMTFjMTAwMDAubWRtYTogTG9hZGVkIGRyaXZlciBm b3IgUEwzMzAgRE1BQy0yNDEzMzAKWyAgICAwLjE4Mzk1Nl0gZG1hLXBsMzMwIDExYzEwMDAwLm1k bWE6IAlEQlVGRi02NHg4Ynl0ZXMgTnVtX0NoYW5zLTggTnVtX1BlcmktMSBOdW1fRXZlbnRzLTMy ClsgICAgMC4yNDI1MDhdIG9mX2dldF9uYW1lZF9ncGlvZF9mbGFnczogcGFyc2VkICdjcy1ncGlv cycgcHJvcGVydHkgb2Ygbm9kZSAnL3NwaUAxMmQzMDAwMFswXScgLSBzdGF0dXMgKDApClsgICAg MC4yNDI2MjddIHMzYzY0eHgtc3BpIDEyZDMwMDAwLnNwaTogcmVnaXN0ZXJlZCBtYXN0ZXIgc3Bp MQpbICAgIDAuMjQyNzMxXSBzcGkgc3BpMS4wOiBzZXR1cCBtb2RlIDAsIDggYml0cy93LCA0MDAw MDAwMCBIeiBtYXggLS0+IDAKWyAgICAwLjI0MjkwM10gc3BpX21hc3RlciBzcGkxOiBzM2M2NHh4 X3NwaV9jb25maWc6IGNsa19mcm9tX2NtdSAxIHNyY19jbGsgc2Nsa19zcGkxIG1vZGUgYnB3IDgK WyAgICAwLjI0Mjk1MV0gc3BpX21hc3RlciBzcGkxOiBzcGkxLjAgczNjNjR4eF9zcGlfdHJhbnNm ZXJfb25lOiB4ZmVyIGJwdyA4IHNwZWVkIDQwMDAwMDAwClsgICAgMC4yNDI5NjhdIHNwaV9tYXN0 ZXIgc3BpMTogc3BpMS4wIHMzYzY0eHhfc3BpX3RyYW5zZmVyX29uZTogbm90IHVzaW5nIGRtYQpb ICAgIDAuMjQyOTg5XSBzcGlfbWFzdGVyIHNwaTE6IHNwaTEuMCBzM2M2NHh4X3NwaV90cmFuc2Zl cl9vbmU6IHhmZXIgYnB3IDggc3BlZWQgNDAwMDAwMDAKWyAgICAwLjI0MzAwNV0gc3BpX21hc3Rl ciBzcGkxOiBzcGkxLjAgczNjNjR4eF9zcGlfdHJhbnNmZXJfb25lOiBub3QgdXNpbmcgZG1hClsg ICAgMC4yNDMwMzddIG0yNXA4MCBzcGkxLjA6IGdkMjVscTMyYyAoNDA5NiBLYnl0ZXMpClsgICAg MC4yNDMwNTJdIG0yNXA4MCBzcGkxLjA6IG10ZCAubmFtZSA9IHNwaTEuMCwgLnNpemUgPSAweDQw MDAwMCAoNE1pQiksIC5lcmFzZXNpemUgPSAweDAwMDAxMDAwICg0S2lCKSAubnVtZXJhc2VyZWdp b25zID0gMApbICAgIDAuMjQzMDcxXSBtMjVwODAgc3BpMS4wOiBVc2luZyBtYXhpbXVtIHRyYW5z ZmVyIGxlbmd0aCAxMzEwNzIKWyAgICAwLjI0MzA4N10gTm8gdmFsaWQgcGFydGl0aW9uIGZvdW5k IG9uIC9zcGlAMTJkMzAwMDAvbTI1cDgwQDAKWyAgICAwLjI0MzM5M10gczNjNjR4eC1zcGkgMTJk MzAwMDAuc3BpOiByZWdpc3RlcmVkIGNoaWxkIHNwaTEuMApbICAgIDAuMjQzNDEwXSBzM2M2NHh4 LXNwaSAxMmQzMDAwMC5zcGk6IFNhbXN1bmcgU29DIFNQSSBEcml2ZXIgbG9hZGVkIGZvciBCdXMg U1BJLTEgd2l0aCAxIFNsYXZlcyBhdHRhY2hlZApbICAgIDAuMjQzNDI5XSBzM2M2NHh4LXNwaSAx MmQzMDAwMC5zcGk6IAlJT21lbT1bW21lbSAweDEyZDMwMDAwLTB4MTJkMzAwZmZdXQlETUE9W1J4 LTAsIFR4LTBdClsgICAgMC44NDEwODFdIG1heDc3Njg2LXJ0YyBtYXg3NzY4Ni1ydGM6IG1heDc3 Njg2X3J0Y19wcm9iZQpbICAgIDAuOTQwODY3XSBtYXg3NzY4Ni1ydGMgbWF4Nzc2ODYtcnRjOiBy dGMgY29yZTogcmVnaXN0ZXJlZCBtYXg3NzY4Ni1ydGMgYXMgcnRjMApbICAgIDAuOTQxNDUxXSBz M2MtcnRjIDEwMWUwMDAwLnJ0YzogZmFpbGVkIHRvIGZpbmQgcnRjIHNvdXJjZSBjbG9jawpbICAg IDAuOTQxNzA2XSBpMmMgL2RldiBlbnRyaWVzIGRyaXZlcgpbICAgIDAuOTQzMTc3XSBvZl9nZXRf bmFtZWRfZ3Bpb2RfZmxhZ3M6IHBhcnNlZCAnb3VyLWNsYWltLWdwaW8nIHByb3BlcnR5IG9mIG5v ZGUgJy9pMmMtYXJiaXRyYXRvclswXScgLSBzdGF0dXMgKDApClsgICAgMC45NDMyMTBdIG9mX2dl dF9uYW1lZF9ncGlvZF9mbGFnczogcGFyc2VkICd0aGVpci1jbGFpbS1ncGlvcycgcHJvcGVydHkg b2Ygbm9kZSAnL2kyYy1hcmJpdHJhdG9yWzBdJyAtIHN0YXR1cyAoMCkKWyAgICAwLjk0MzIzN10g b2ZfZ2V0X25hbWVkX2dwaW9kX2ZsYWdzOiBjYW4ndCBwYXJzZSAndGhlaXItY2xhaW0tZ3Bpb3Mn IHByb3BlcnR5IG9mIG5vZGUgJy9pMmMtYXJiaXRyYXRvclsxXScKWyAgICAwLjk0NDE2Nl0gaW5w dXQ6IGNyb3MtZWMtaTJjIGFzIC9kZXZpY2VzL3BsYXRmb3JtLzEyY2EwMDAwLmkyYy9pMmMtNC9p MmMtMTA0LzEwNC0wMDFlL2Nyb3MtZWMta2V5Yi4xL2lucHV0L2lucHV0MQpbICAgIDAuOTQ0NTA4 XSBjcm9zLWVjLWkyYy10dW5uZWwgY3Jvcy1lYy1pMmMtdHVubmVsLjI6IENvdWxkbid0IHJlYWQg cmVtb3RlLWJ1cyBwcm9wZXJ0eQpbICAgIDAuOTQ0NTMzXSBjcm9zLWVjLWkyYy10dW5uZWw6IHBy b2JlIG9mIGNyb3MtZWMtaTJjLXR1bm5lbC4yIGZhaWxlZCB3aXRoIGVycm9yIC0yMgpbICAgIDAu OTQ0NjUwXSBjcm9zLWVjLWkyYyAxMDQtMDAxZTogQ2hyb21lIEVDIGRldmljZSByZWdpc3RlcmVk ClsgICAgMC45NDQ4MjVdIHRwczY1MDkwIDEwNC0wMDQ4OiBObyBjYWNoZSBkZWZhdWx0cywgcmVh ZGluZyBiYWNrIGZyb20gSFcKWyAgICAwLjk0ODk3N10gb2ZfZ2V0X25hbWVkX2dwaW9kX2ZsYWdz OiBjYW4ndCBwYXJzZSAnZGNkYy1leHQtY29udHJvbC1ncGlvcycgcHJvcGVydHkgb2Ygbm9kZSAn L2kyYy1hcmJpdHJhdG9yL2kyY0AwL3Bvd2VyLXJlZ3VsYXRvclswXScKWyAgICAwLjk0ODk5OV0g b2ZfZ2V0X25hbWVkX2dwaW9kX2ZsYWdzOiBjYW4ndCBwYXJzZSAnZGNkYy1leHQtY29udHJvbC1n cGlvcycgcHJvcGVydHkgb2Ygbm9kZSAnL2kyYy1hcmJpdHJhdG9yL2kyY0AwL3Bvd2VyLXJlZ3Vs YXRvclswXScKWyAgICAwLjk0OTAxOV0gb2ZfZ2V0X25hbWVkX2dwaW9kX2ZsYWdzOiBjYW4ndCBw YXJzZSAnZGNkYy1leHQtY29udHJvbC1ncGlvcycgcHJvcGVydHkgb2Ygbm9kZSAnL2kyYy1hcmJp dHJhdG9yL2kyY0AwL3Bvd2VyLXJlZ3VsYXRvclswXScKWyAgICAwLjk2NzMzMV0gaTJjIGkyYy00 OiBBZGRlZCBtdWx0aXBsZXhlZCBpMmMgYnVzIDEwNApbICAgIDEuMDEyMjk2XSBzYnMtYmF0dGVy eSAxMDQtMDAwYjogc2JzLWJhdHRlcnk6IGJhdHRlcnkgZ2FzIGdhdWdlIGRldmljZSByZWdpc3Rl cmVkClsgICAgMS4wMTc2MjJdIHRoZXJtYWwgdGhlcm1hbF96b25lMDogZmFpbGVkIHRvIHJlYWQg b3V0IHRoZXJtYWwgem9uZSAoLTIyKQpbICAgIDEuMDE3NjUxXSAxMDA2MDAwMC50bXUgc3VwcGx5 IHZ0bXUgbm90IGZvdW5kLCB1c2luZyBkdW1teSByZWd1bGF0b3IKWyAgICAxLjAxODM5NF0gczNj MjQxMC13ZHQgMTAxZDAwMDAud2F0Y2hkb2c6IHdhdGNoZG9nIGluYWN0aXZlLCByZXNldCBkaXNh YmxlZCwgaXJxIGRpc2FibGVkClsgICAgMS4xODE1MDRdIG1heDk4MDk1IDctMDAxMTogSGFyZHdh cmUgcmV2aXNpb246IEMKWyAgICAxLjE4OTk2Ml0gbWF4OTgwOTUgNy0wMDExOiBBU29DOiBtdXgg TGluZWluIE11eCBoYXMgbm8gcGF0aHMKWyAgICAxLjE4OTk4Ml0gbWF4OTgwOTUgNy0wMDExOiBB U29DOiBtdXggRXh0ZXJuYWwgTUlDIGhhcyBubyBwYXRocwpbICAgIDEuMTk5NDE5XSBueHAscHRu MzQ2MCA3LTAwMjA6IEdQSU8gbG9va3VwIGZvciBjb25zdW1lciBwb3dlcmRvd24KWyAgICAxLjE5 OTQzMV0gbnhwLHB0bjM0NjAgNy0wMDIwOiB1c2luZyBkZXZpY2UgdHJlZSBmb3IgR1BJTyBsb29r dXAKWyAgICAxLjE5OTQ0OF0gb2ZfZ2V0X25hbWVkX2dwaW9kX2ZsYWdzOiBwYXJzZWQgJ3Bvd2Vy ZG93bi1ncGlvcycgcHJvcGVydHkgb2Ygbm9kZSAnL2kyY0AxMkNEMDAwMC9sdmRzLWJyaWRnZUAy MFswXScgLSBzdGF0dXMgKDApClsgICAgMS4xOTk0NzBdIG5vIGZsYWdzIGZvdW5kIGZvciBwb3dl cmRvd24KWyAgICAxLjE5OTQ4M10gbnhwLHB0bjM0NjAgNy0wMDIwOiBHUElPIGxvb2t1cCBmb3Ig Y29uc3VtZXIgcmVzZXQKWyAgICAxLjE5OTQ5NV0gbnhwLHB0bjM0NjAgNy0wMDIwOiB1c2luZyBk ZXZpY2UgdHJlZSBmb3IgR1BJTyBsb29rdXAKWyAgICAxLjE5OTUwOV0gb2ZfZ2V0X25hbWVkX2dw aW9kX2ZsYWdzOiBwYXJzZWQgJ3Jlc2V0LWdwaW9zJyBwcm9wZXJ0eSBvZiBub2RlICcvaTJjQDEy Q0QwMDAwL2x2ZHMtYnJpZGdlQDIwWzBdJyAtIHN0YXR1cyAoMCkKWyAgICAxLjE5OTUzMF0gbm8g ZmxhZ3MgZm91bmQgZm9yIHJlc2V0ClsgICAgMS4xOTk4NTRdIHMzYy1ydGMgMTAxZTAwMDAucnRj OiBydGMgZGlzYWJsZWQsIHJlLWVuYWJsaW5nClsgICAgMS4xOTk5MTNdIHMzYy1ydGMgMTAxZTAw MDAucnRjOiB3YXJuaW5nOiBpbnZhbGlkIFJUQyB2YWx1ZSBzbyBpbml0aWFsaXppbmcgaXQKWyAg ICAxLjIwMDEwNF0gczNjLXJ0YyAxMDFlMDAwMC5ydGM6IHJ0YyBjb3JlOiByZWdpc3RlcmVkIHMz YyBhcyBydGMxClsgICAgMS41NzA5MjRdIG9mX2dldF9uYW1lZF9ncGlvZF9mbGFnczogcGFyc2Vk ICdncGlvcycgcHJvcGVydHkgb2Ygbm9kZSAnL2dwaW8ta2V5cy9wb3dlclswXScgLSBzdGF0dXMg KDApClsgICAgMS41NzEwMDddIG9mX2dldF9uYW1lZF9ncGlvZF9mbGFnczogcGFyc2VkICdncGlv cycgcHJvcGVydHkgb2Ygbm9kZSAnL2dwaW8ta2V5cy9saWQtc3dpdGNoWzBdJyAtIHN0YXR1cyAo MCkKWyAgICAxLjU3MTEwMV0gZ3Bpby0xNDMgKFBvd2VyKTogZ3Bpb2Rfc2V0X2RlYm91bmNlOiBt aXNzaW5nIHNldCgpIG9yIHNldF9kZWJvdW5jZSgpIG9wZXJhdGlvbnMKWyAgICAxLjU3MTIxMV0g Z3Bpby0xNjEgKExpZCk6IGdwaW9kX3NldF9kZWJvdW5jZTogbWlzc2luZyBzZXQoKSBvciBzZXRf ZGVib3VuY2UoKSBvcGVyYXRpb25zClsgICAgMS41NzE0NjNdIGlucHV0OiBncGlvLWtleXMgYXMg L2RldmljZXMvcGxhdGZvcm0vZ3Bpby1rZXlzL2lucHV0L2lucHV0MgpbICAgIDEuNTk1NzYzXSBt YXg3NzY4Ni1ydGMgbWF4Nzc2ODYtcnRjOiBzZXR0aW5nIHN5c3RlbSBjbG9jayB0byAyMDE1LTA2 LTE3IDEyOjQ4OjIyIFVUQyAoMTQzNDU0NTMwMikKWyAgICAxLjYyNDQ2NV0gVFBTNjUwOTBfUkFJ TFNMRE8yOiBkaXNhYmxpbmcKWyAgICAxLjYyNjQyOF0gVFBTNjUwOTBfUkFJTFNMRE8xOiBkaXNh YmxpbmcKWyAgICAxLjYyOTA0N10gVFBTNjUwOTBfUkFJTFNEQ0RDMzogZGlzYWJsaW5nClsgICAg MS42MzA5NTddIFRQUzY1MDkwX1JBSUxTRENEQzI6IGRpc2FibGluZwpbICAgIDEuNjMyODA5XSBU UFM2NTA5MF9SQUlMU0RDREMxOiBkaXNhYmxpbmcKWyAgICAyLjIzMjYzN10gRVhUNC1mcyAobW1j YmxrMXA1KTogcmVjb3ZlcnkgY29tcGxldGUKWyAgICAyLjI0MDk2NV0gRVhUNC1mcyAobW1jYmxr MXA1KTogbW91bnRlZCBmaWxlc3lzdGVtIHdpdGggb3JkZXJlZCBkYXRhIG1vZGUuIE9wdHM6IChu dWxsKQpbICAgIDIuMjQyNjk5XSBWRlM6IE1vdW50ZWQgcm9vdCAoZXh0NCBmaWxlc3lzdGVtKSBv biBkZXZpY2UgMTc5OjY5LgpbICAgIDIuMjUzMTc3XSBkZXZ0bXBmczogbW91bnRlZApbICAgIDIu MjU1MDY4XSBGcmVlaW5nIHVudXNlZCBrZXJuZWwgbWVtb3J5OiA0MzZLIChjMDkzNTAwMCAtIGMw OWEyMDAwKQpbICAgIDUuMTA3MzM2XSBtYXg3NzY4Ni1ydGMgbWF4Nzc2ODYtcnRjOiBtYXg3NzY4 Nl9ydGNfYWxhcm1faXJxOmlycSgxMjMpClsgIDEyNi4yNDcyMjVdIG0yNXA4MCBzcGkxLjA6IGZy b20gMHgwMDAwMDAwMCwgbGVuIDMyNzY4ClsgIDEyNi4yNDczMDldIHNwaV9tYXN0ZXIgc3BpMTog c3BpMS4wIHMzYzY0eHhfc3BpX3RyYW5zZmVyX29uZTogeGZlciBicHcgOCBzcGVlZCA0MDAwMDAw MApbICAxMjYuMjQ3MzE3XSBzcGlfbWFzdGVyIHNwaTE6IHNwaTEuMCBzM2M2NHh4X3NwaV90cmFu c2Zlcl9vbmU6IG5vdCB1c2luZyBkbWEKWyAgMTI2LjI0NzMzMl0gc3BpX21hc3RlciBzcGkxOiBz cGkxLjAgczNjNjR4eF9zcGlfdHJhbnNmZXJfb25lOiB4ZmVyIGJwdyA4IHNwZWVkIDQwMDAwMDAw ClsgIDEyNi4yNDczMzhdIHNwaV9tYXN0ZXIgc3BpMTogc3BpMS4wIHMzYzY0eHhfc3BpX3RyYW5z ZmVyX29uZTogdXNpbmcgZG1hClsgIDEyNi4yNDczNTBdIGRtYS1wbDMzMCAxMjFiMDAwMC5wZG1h OiBzZXR0aW5nIHVwIHJlcXVlc3Qgb24gdGhyZWFkIDAKWyAgMTI2LjI0NzM1NF0gYmMwNDEwMDA6 CURNQU1PViBDQ1IgMHg4MDQyMDAKWyAgMTI2LjI0NzM2MV0gYmMwNDEwMDY6CURNQU1PViBTQVIg MHgxMmQzMDAxYwpbICAxMjYuMjQ3MzY2XSBiYzA0MTAwYzoJRE1BTU9WIERBUiAweDY4MDMwMDAw ClsgIDEyNi4yNDczNzJdIGJjMDQxMDEyOglETUFMUF8wIDEyNwpbICAxMjYuMjQ3Mzc3XSBiYzA0 MTAxNDoJRE1BTFBfMSAyNTUKWyAgMTI2LjI0NzM4M10gYmMwNDEwMTY6CURNQVdGUFMgNApbICAx MjYuMjQ3Mzg4XSBiYzA0MTAxODoJRE1BTERQUyA0ClsgIDEyNi4yNDczOTNdIGJjMDQxMDFhOglE TUFTVEEKWyAgMTI2LjI0NzM5OF0gYmMwNDEwMWI6CURNQUZMVVNIUCA0ClsgIDEyNi4yNDc0MDNd IGJjMDQxMDFkOglETUFMUEVOREFfMSBiam1wdG9fNwpbICAxMjYuMjQ3NDA5XSBiYzA0MTAxZjoJ RE1BTFBFTkRBXzAgYmptcHRvX2IKWyAgMTI2LjI0NzQxNF0gYmMwNDEwMjE6CURNQVNFViAwClsg IDEyNi4yNDc0MTldIGJjMDQxMDIzOglETUFFTkQKWyAgMTI2LjI0NzQzMl0gc3BpX21hc3RlciBz cGkxOiB3YWl0X2Zvcl9kbWE6IHdhaXRpbmcgZm9yIDE2MG1zIHRyYW5zZmVycmluZyAzMjc2OGJ5 dGVzQDQwMDAwMDAwSHoKWyAgMTI2LjI2Njg1N10gZG1hLXBsMzMwIDEyMWIwMDAwLnBkbWE6IGV2 ZW50IHNpZ25hbGxlZCBvbiB0aHJlYWQgaWQgMApbICAxMjYuMjY2ODg2XSBzcGlfbWFzdGVyIHNw aTE6IHdhaXRfZm9yX2RtYTogd2FpdGVkIDIwIG1zClsgIDEyNi4yNzQ1MTNdIG0yNXA4MCBzcGkx LjA6IGZyb20gMHgwMDAwMDAwMCwgbGVuIDY1NTM2ClsgIDEyNi4yNzQ2MDJdIHNwaV9tYXN0ZXIg c3BpMTogc3BpMS4wIHMzYzY0eHhfc3BpX3RyYW5zZmVyX29uZTogeGZlciBicHcgOCBzcGVlZCA0 MDAwMDAwMApbICAxMjYuMjc0NjEwXSBzcGlfbWFzdGVyIHNwaTE6IHNwaTEuMCBzM2M2NHh4X3Nw aV90cmFuc2Zlcl9vbmU6IG5vdCB1c2luZyBkbWEKWyAgMTI2LjI3NDYyNV0gc3BpX21hc3RlciBz cGkxOiBzcGkxLjAgczNjNjR4eF9zcGlfdHJhbnNmZXJfb25lOiB4ZmVyIGJwdyA4IHNwZWVkIDQw MDAwMDAwClsgIDEyNi4yNzQ2MzFdIHNwaV9tYXN0ZXIgc3BpMTogc3BpMS4wIHMzYzY0eHhfc3Bp X3RyYW5zZmVyX29uZTogdXNpbmcgZG1hClsgIDEyNi4yNzQ2NDNdIGRtYS1wbDMzMCAxMjFiMDAw MC5wZG1hOiBzZXR0aW5nIHVwIHJlcXVlc3Qgb24gdGhyZWFkIDAKWyAgMTI2LjI3NDY0OF0gYmMw NDEwMDA6CURNQU1PViBDQ1IgMHg4MDQyMDAKWyAgMTI2LjI3NDY1NF0gYmMwNDEwMDY6CURNQU1P ViBTQVIgMHgxMmQzMDAxYwpbICAxMjYuMjc0NjYwXSBiYzA0MTAwYzoJRE1BTU9WIERBUiAweDY4 MDMwMDAwClsgIDEyNi4yNzQ2NjVdIGJjMDQxMDEyOglETUFMUF8wIDI1NQpbICAxMjYuMjc0Njcx XSBiYzA0MTAxNDoJRE1BTFBfMSAyNTUKWyAgMTI2LjI3NDY3Nl0gYmMwNDEwMTY6CURNQVdGUFMg NApbICAxMjYuMjc0NjgxXSBiYzA0MTAxODoJRE1BTERQUyA0ClsgIDEyNi4yNzQ2ODddIGJjMDQx MDFhOglETUFTVEEKWyAgMTI2LjI3NDY5Ml0gYmMwNDEwMWI6CURNQUZMVVNIUCA0ClsgIDEyNi4y NzQ2OTddIGJjMDQxMDFkOglETUFMUEVOREFfMSBiam1wdG9fNwpbICAxMjYuMjc0NzAyXSBiYzA0 MTAxZjoJRE1BTFBFTkRBXzAgYmptcHRvX2IKWyAgMTI2LjI3NDcwOF0gYmMwNDEwMjE6CURNQVNF ViAwClsgIDEyNi4yNzQ3MTNdIGJjMDQxMDIzOglETUFFTkQKWyAgMTI2LjI3NDcyNV0gc3BpX21h c3RlciBzcGkxOiB3YWl0X2Zvcl9kbWE6IHdhaXRpbmcgZm9yIDIzMG1zIHRyYW5zZmVycmluZyA2 NTUzNmJ5dGVzQDQwMDAwMDAwSHoKWyAgMTI2LjMxMzU3M10gZG1hLXBsMzMwIDEyMWIwMDAwLnBk bWE6IGV2ZW50IHNpZ25hbGxlZCBvbiB0aHJlYWQgaWQgMApbICAxMjYuMzEzNjEyXSBzcGlfbWFz dGVyIHNwaTE6IHdhaXRfZm9yX2RtYTogd2FpdGVkIDQwIG1zClsgIDEyNi4zMjQzOTBdIG0yNXA4 MCBzcGkxLjA6IGZyb20gMHgwMDAwMDAwMCwgbGVuIDEzMTA3MgpbICAxMjYuMzI0NDc2XSBzcGlf bWFzdGVyIHNwaTE6IHNwaTEuMCBzM2M2NHh4X3NwaV90cmFuc2Zlcl9vbmU6IHhmZXIgYnB3IDgg c3BlZWQgNDAwMDAwMDAKWyAgMTI2LjMyNDQ4NF0gc3BpX21hc3RlciBzcGkxOiBzcGkxLjAgczNj NjR4eF9zcGlfdHJhbnNmZXJfb25lOiBub3QgdXNpbmcgZG1hClsgIDEyNi4zMjQ0OThdIHNwaV9t YXN0ZXIgc3BpMTogc3BpMS4wIHMzYzY0eHhfc3BpX3RyYW5zZmVyX29uZTogeGZlciBicHcgOCBz cGVlZCA0MDAwMDAwMApbICAxMjYuMzI0NTA0XSBzcGlfbWFzdGVyIHNwaTE6IHNwaTEuMCBzM2M2 NHh4X3NwaV90cmFuc2Zlcl9vbmU6IHVzaW5nIGRtYQpbICAxMjYuMzI0NTE2XSBkbWEtcGwzMzAg MTIxYjAwMDAucGRtYTogc2V0dGluZyB1cCByZXF1ZXN0IG9uIHRocmVhZCAwClsgIDEyNi4zMjQ1 MjFdIGJjMDQxMDAwOglETUFNT1YgQ0NSIDB4ODA0MjAwClsgIDEyNi4zMjQ1MjddIGJjMDQxMDA2 OglETUFNT1YgU0FSIDB4MTJkMzAwMWMKWyAgMTI2LjMyNDUzM10gYmMwNDEwMGM6CURNQU1PViBE QVIgMHg2ODA0MDAwMApbICAxMjYuMzI0NTM5XSBiYzA0MTAxMjoJRE1BTFBfMCAyNTUKWyAgMTI2 LjMyNDU0NF0gYmMwNDEwMTQ6CURNQUxQXzEgMjU1ClsgIDEyNi4zMjQ1NDldIGJjMDQxMDE2OglE TUFXRlBTIDQKWyAgMTI2LjMyNDU1NF0gYmMwNDEwMTg6CURNQUxEUFMgNApbICAxMjYuMzI0NTYw XSBiYzA0MTAxYToJRE1BU1RBClsgIDEyNi4zMjQ1NjVdIGJjMDQxMDFiOglETUFGTFVTSFAgNApb ICAxMjYuMzI0NTcwXSBiYzA0MTAxZDoJRE1BTk9QClsgIDEyNi4zMjQ1NzVdIGJjMDQxMDFlOglE TUFOT1AKWyAgMTI2LjMyNDU3OV0gYmMwNDEwMWY6CURNQVdGUFMgNApbICAxMjYuMzI0NTg0XSBi YzA0MTAyMToJRE1BTERQUyA0ClsgIDEyNi4zMjQ1OTBdIGJjMDQxMDIzOglETUFTVEEKWyAgMTI2 LjMyNDU5NF0gYmMwNDEwMjQ6CURNQUZMVVNIUCA0ClsgIDEyNi4zMjQ2MDBdIGJjMDQxMDI2OglE TUFMUEVOREFfMSBiam1wdG9fMTAKWyAgMTI2LjMyNDYwNV0gYmMwNDEwMjg6CURNQUxQRU5EQV8w IGJqbXB0b18xNApbICAxMjYuMzI0NjEwXSBiYzA0MTAyYToJRE1BU0VWIDAKWyAgMTI2LjMyNDYx NV0gYmMwNDEwMmM6CURNQUVORApbICAxMjYuMzI0NjI4XSBzcGlfbWFzdGVyIHNwaTE6IHdhaXRf Zm9yX2RtYTogd2FpdGluZyBmb3IgMzYwbXMgdHJhbnNmZXJyaW5nIDEzMTA3MmJ5dGVzQDQwMDAw MDAwSHoKWyAgMTI2LjczMDQyMl0gc3BpX21hc3RlciBzcGkxOiB3YWl0X2Zvcl9kbWE6IHdhaXRl ZCA0MTAgbXMKWyAgMTI2LjczMDQzM10gbTI1cDgwIHNwaTEuMDogSS9PIEVycm9yOiByeC0xIHR4 LTAgcmVzOnJ4LWYgdHgtcCBsZW4tMTMxMDcyClsgIDEyNi43MzA0NDVdIG0yNXA4MCBzcGkxLjA6 IFNQSSB0cmFuc2ZlciBmYWlsZWQ6IC01ClsgIDEyNi43MzA1MDNdIHNwaV9tYXN0ZXIgc3BpMTog ZmFpbGVkIHRvIHRyYW5zZmVyIG9uZSBtZXNzYWdlIGZyb20gcXVldWUK --f46d043c7ba228ce370518b7d122-- -- 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/