RE: [PATCH v5 4/4] powerpc/85xx: add sysfs for pw20 state and altivec idle
From: Wang Dongsheng-B40534 <hidden>
Date: 2013-10-21 03:10:51
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogV29vZCBTY290dC1CMDc0 MjENCj4gU2VudDogU2F0dXJkYXksIE9jdG9iZXIgMTksIDIwMTMgMzoyMiBBTQ0KPiBUbzogV2Fu ZyBEb25nc2hlbmctQjQwNTM0DQo+IENjOiBCaHVzaGFuIEJoYXJhdC1SNjU3Nzc7IFdvb2QgU2Nv dHQtQjA3NDIxOyBsaW51eHBwYy0NCj4gZGV2QGxpc3RzLm96bGFicy5vcmcNCj4gU3ViamVjdDog UmU6IFtQQVRDSCB2NSA0LzRdIHBvd2VycGMvODV4eDogYWRkIHN5c2ZzIGZvciBwdzIwIHN0YXRl IGFuZA0KPiBhbHRpdmVjIGlkbGUNCj4gDQo+IE9uIFRodSwgMjAxMy0xMC0xNyBhdCAyMjowMiAt MDUwMCwgV2FuZyBEb25nc2hlbmctQjQwNTM0IHdyb3RlOg0KPiA+DQo+ID4gPiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogQmh1c2hhbiBCaGFyYXQtUjY1Nzc3DQo+ID4g PiBTZW50OiBUaHVyc2RheSwgT2N0b2JlciAxNywgMjAxMyAyOjQ2IFBNDQo+ID4gPiBUbzogV2Fu ZyBEb25nc2hlbmctQjQwNTM0OyBXb29kIFNjb3R0LUIwNzQyMQ0KPiA+ID4gQ2M6IGxpbnV4cHBj LWRldkBsaXN0cy5vemxhYnMub3JnDQo+ID4gPiBTdWJqZWN0OiBSRTogW1BBVENIIHY1IDQvNF0g cG93ZXJwYy84NXh4OiBhZGQgc3lzZnMgZm9yIHB3MjAgc3RhdGUNCj4gPiA+IGFuZCBhbHRpdmVj IGlkbGUNCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+ID4gPiA+ID4gPiBGcm9tOiBXYW5nIERvbmdzaGVuZy1CNDA1MzQNCj4gPiA+ ID4gPiA+IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDE3LCAyMDEzIDExOjIyIEFNDQo+ID4gPiA+ ID4gPiBUbzogQmh1c2hhbiBCaGFyYXQtUjY1Nzc3OyBXb29kIFNjb3R0LUIwNzQyMQ0KPiA+ID4g PiA+ID4gQ2M6IGxpbnV4cHBjLWRldkBsaXN0cy5vemxhYnMub3JnDQo+ID4gPiA+ID4gPiBTdWJq ZWN0OiBSRTogW1BBVENIIHY1IDQvNF0gcG93ZXJwYy84NXh4OiBhZGQgc3lzZnMgZm9yIHB3MjAN Cj4gPiA+ID4gPiA+IHN0YXRlIGFuZCBhbHRpdmVjIGlkbGUNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4gPiA+ID4gPiA+ID4gRnJvbTogQmh1c2hhbiBCaGFyYXQtUjY1Nzc3DQo+ID4gPiA+ID4g PiA+IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDE3LCAyMDEzIDExOjIwIEFNDQo+ID4gPiA+ID4g PiA+IFRvOiBXYW5nIERvbmdzaGVuZy1CNDA1MzQ7IFdvb2QgU2NvdHQtQjA3NDIxDQo+ID4gPiA+ ID4gPiA+IENjOiBsaW51eHBwYy1kZXZAbGlzdHMub3psYWJzLm9yZw0KPiA+ID4gPiA+ID4gPiBT dWJqZWN0OiBSRTogW1BBVENIIHY1IDQvNF0gcG93ZXJwYy84NXh4OiBhZGQgc3lzZnMgZm9yIHB3 MjANCj4gPiA+ID4gPiA+ID4gc3RhdGUgYW5kIGFsdGl2ZWMgaWRsZQ0KPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gPiA+ID4gRnJvbTogV2FuZyBEb25nc2hlbmctQjQw NTM0DQo+ID4gPiA+ID4gPiA+ID4gU2VudDogVGh1cnNkYXksIE9jdG9iZXIgMTcsIDIwMTMgODox NiBBTQ0KPiA+ID4gPiA+ID4gPiA+IFRvOiBCaHVzaGFuIEJoYXJhdC1SNjU3Nzc7IFdvb2QgU2Nv dHQtQjA3NDIxDQo+ID4gPiA+ID4gPiA+ID4gQ2M6IGxpbnV4cHBjLWRldkBsaXN0cy5vemxhYnMu b3JnDQo+ID4gPiA+ID4gPiA+ID4gU3ViamVjdDogUkU6IFtQQVRDSCB2NSA0LzRdIHBvd2VycGMv ODV4eDogYWRkIHN5c2ZzIGZvcg0KPiA+ID4gPiA+ID4gPiA+IHB3MjAgc3RhdGUgYW5kIGFsdGl2 ZWMgaWRsZQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4g PiA+ID4gPiA+IEZyb206IEJodXNoYW4gQmhhcmF0LVI2NTc3Nw0KPiA+ID4gPiA+ID4gPiA+ID4g U2VudDogVGh1cnNkYXksIE9jdG9iZXIgMTcsIDIwMTMgMTowMSBBTQ0KPiA+ID4gPiA+ID4gPiA+ ID4gVG86IFdhbmcgRG9uZ3NoZW5nLUI0MDUzNDsgV29vZCBTY290dC1CMDc0MjENCj4gPiA+ID4g PiA+ID4gPiA+IENjOiBsaW51eHBwYy1kZXZAbGlzdHMub3psYWJzLm9yZw0KPiA+ID4gPiA+ID4g PiA+ID4gU3ViamVjdDogUkU6IFtQQVRDSCB2NSA0LzRdIHBvd2VycGMvODV4eDogYWRkIHN5c2Zz IGZvcg0KPiA+ID4gPiA+ID4gPiA+ID4gcHcyMCBzdGF0ZSBhbmQgYWx0aXZlYyBpZGxlDQo+ID4g PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gPiA+ ID4gPiA+IEZyb206IFdhbmcgRG9uZ3NoZW5nLUI0MDUzNA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBT ZW50OiBUdWVzZGF5LCBPY3RvYmVyIDE1LCAyMDEzIDI6NTEgUE0NCj4gPiA+ID4gPiA+ID4gPiA+ ID4gVG86IFdvb2QgU2NvdHQtQjA3NDIxDQo+ID4gPiA+ID4gPiA+ID4gPiA+IENjOiBCaHVzaGFu IEJoYXJhdC1SNjU3Nzc7DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGxpbnV4cHBjLWRldkBsaXN0cy5v emxhYnMub3JnOyBXYW5nDQo+ID4gPiA+ID4gPiA+ID4gPiBEb25nc2hlbmctQjQwNTM0DQo+ID4g PiA+ID4gPiA+ID4gPiA+IFN1YmplY3Q6IFtQQVRDSCB2NSA0LzRdIHBvd2VycGMvODV4eDogYWRk IHN5c2ZzIGZvcg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBwdzIwIHN0YXRlIGFuZA0KPiA+ID4gPiA+ ID4gPiA+ID4gYWx0aXZlYyBpZGxlDQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ID4gPiA+IEZyb206IFdhbmcgRG9uZ3NoZW5nIDxkb25nc2hlbmcud2FuZ0BmcmVlc2NhbGUuY29t Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBBZGQgYSBzeXMgaW50 ZXJmYWNlIHRvIGVuYWJsZS9kaWFibGUgcHcyMCBzdGF0ZSBvcg0KPiA+ID4gPiA+ID4gPiA+ID4g PiBhbHRpdmVjIGlkbGUsIGFuZA0KPiA+ID4gPiA+ID4gPiA+ID4gY29udHJvbCB0aGUNCj4gPiA+ ID4gPiA+ID4gPiA+ID4gd2FpdCBlbnRyeSB0aW1lLg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiA+ID4gPiBFbmFibGUvRGlzYWJsZSBpbnRlcmZhY2U6DQo+ID4gPiA+ID4gPiA+ ID4gPiA+IDAsIGRpc2FibGUuIDEsIGVuYWJsZS4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gL3N5cy9k ZXZpY2VzL3N5c3RlbS9jcHUvY3B1WC9wdzIwX3N0YXRlDQo+ID4gPiA+ID4gPiA+ID4gPiA+IC9z eXMvZGV2aWNlcy9zeXN0ZW0vY3B1L2NwdVgvYWx0aXZlY19pZGxlDQo+ID4gPiA+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFNldCB3YWl0IHRpbWUgaW50ZXJmYWNlOihOYW5vc2Vj b25kKQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiAvc3lzL2RldmljZXMvc3lzdGVtL2NwdS9jcHVYL3B3 MjBfd2FpdF90aW1lDQo+ID4gPiA+ID4gPiA+ID4gPiA+IC9zeXMvZGV2aWNlcy9zeXN0ZW0vY3B1 L2NwdVgvYWx0aXZlY19pZGxlX3dhaXRfdGltZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBFeGFtcGxl OiBCYXNlIG9uIFRCZnJlcSBpcyA0MU1IWi4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gMX40OChucyk6 IFRCWzYzXQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA0OX45Nyhucyk6IFRCWzYyXQ0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA5OH4xOTUobnMpOiBUQls2MV0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gMTk2fjM5 MChucyk6IFRCWzYwXQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiAzOTF+NzgwKG5zKTogVEJbNTldDQo+ ID4gPiA+ID4gPiA+ID4gPiA+IDc4MX4xNTYwKG5zKTogVEJbNThdDQo+ID4gPiA+ID4gPiA+ID4g PiA+IC4uLg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBTaWduZWQt b2ZmLWJ5OiBXYW5nIERvbmdzaGVuZw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA8ZG9uZ3NoZW5nLndh bmdAZnJlZXNjYWxlLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ICp2NToNCj4gPiA+ID4gPiA+ID4gPiA+ID4gQ2hhbmdlIGdldF9pZGxlX3RpY2tzX2Jp dCBmdW5jdGlvbiBpbXBsZW1lbnRhdGlvbi4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gPiA+ID4gKnY0Og0KPiA+ID4gPiA+ID4gPiA+ID4gPiBNb3ZlIGNvZGUgZnJvbSA4NXh4 L2NvbW1vbi5jIHRvIGtlcm5lbC9zeXNmcy5jLg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiA+ID4gPiBSZW1vdmUgaGFzX3B3MjBfYWx0aXZlY19pZGxlIGZ1bmN0aW9uLg0KPiA+ ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBDaGFuZ2Ugd2FpdCAiZW50cnlf Yml0IiB0byB3YWl0IHRpbWUuDQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g PiA+IGRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL3N5c2ZzLmMNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gYi9hcmNoL3Bvd2VycGMva2VybmVsL3N5c2ZzLmMNCj4gPiA+ID4gPiA+ID4gPiA+ IGluZGV4DQo+ID4gPiA+ID4gPiA+ID4gPiA+IDI3YTkwYjkuLjEwZDExMjggMTAwNjQ0DQo+ID4g PiA+ID4gPiA+ID4gPiA+IC0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvc3lzZnMuYw0KPiA+ID4g PiA+ID4gPiA+ID4gPiArKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL3N5c2ZzLmMNCj4gPiA+ID4g PiA+ID4gPiA+ID4gQEAgLTg1LDYgKzg1LDI4NCBAQCBfX3NldHVwKCJzbXQtc25vb3plLWRlbGF5 PSIsDQo+ID4gPiA+ID4gPiA+ID4gPiBzZXR1cF9zbXRfc25vb3plX2RlbGF5KTsNCj4gPiA+ID4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICNlbmRpZiAvKiBDT05GSUdfUFBDNjQg Ki8NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyNpZmRlZiBDT05G SUdfRlNMX1NPQw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArI2RlZmluZSBNQVhfQklUCQkJCTYzDQo+ ID4gPiA+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gK3N0YXRpYyB1NjQgcHcy MF93dDsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gK3N0YXRpYyB1NjQgYWx0aXZlY19pZGxlX3d0Ow0K PiA+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICtzdGF0aWMgdW5zaWdu ZWQgaW50IGdldF9pZGxlX3RpY2tzX2JpdCh1NjQgbnMpIHsNCj4gPiA+ID4gPiA+ID4gPiA+ID4g Kwl1NjQgY3ljbGU7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ID4g KwlpZiAobnMgPj0gMTAwMDApDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsJCWN5Y2xlID0gZGl2X3U2 NChucyArIDUwMCwgMTAwMCkgKg0KPiA+ID4gdGJfdGlja3NfcGVyX3VzZWM7DQo+ID4gPiA+ID4g PiA+ID4gPiA+ICsJZWxzZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCQljeWNsZSA9IGRpdl91NjQo bnMgKiB0Yl90aWNrc19wZXJfdXNlYywNCj4gMTAwMCk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsN Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKwlpZiAoIWN5Y2xlKQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiAr CQlyZXR1cm4gMDsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gPiAr CXJldHVybiBpbG9nMihjeWNsZSk7IH0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ ID4gPiA+ID4gPiArc3RhdGljIHZvaWQgZG9fc2hvd19wd3JtZ3RjcjAodm9pZCAqdmFsKSB7DQo+ ID4gPiA+ID4gPiA+ID4gPiA+ICsJdTMyICp2YWx1ZSA9IHZhbDsNCj4gPiA+ID4gPiA+ID4gPiA+ ID4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCSp2YWx1ZSA9IG1mc3ByKFNQUk5fUFdSTUdUQ1Iw KTsgfQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICtzdGF0aWMg c3NpemVfdCBzaG93X3B3MjBfc3RhdGUoc3RydWN0IGRldmljZSAqZGV2LA0KPiA+ID4gPiA+ID4g PiA+ID4gPiArCQkJCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLA0KPiBjaGFyDQo+ID4g PiAqYnVmKSB7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsJdTMyIHZhbHVlOw0KPiA+ID4gPiA+ID4g PiA+ID4gPiArCXVuc2lnbmVkIGludCBjcHUgPSBkZXYtPmlkOw0KPiA+ID4gPiA+ID4gPiA+ID4g PiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsJc21wX2NhbGxfZnVuY3Rpb25fc2luZ2xlKGNwdSwg ZG9fc2hvd19wd3JtZ3RjcjAsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsmdmFsdWUsIDEpOw0KPiA+ ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsJdmFsdWUgJj0gUFdSTUdU Q1IwX1BXMjBfV0FJVDsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiA+ID4g PiArCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiV1XG4iLCB2YWx1ZSA/IDEgOiAwKTsgfQ0KPiA+ID4g PiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICtzdGF0aWMgdm9pZCBkb19zdG9y ZV9wdzIwX3N0YXRlKHZvaWQgKnZhbCkgew0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCXUzMiAqdmFs dWUgPSB2YWw7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsJdTMyIHB3MjBfc3RhdGU7DQo+ID4gPiA+ ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKwlwdzIwX3N0YXRlID0gbWZzcHIo U1BSTl9QV1JNR1RDUjApOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4g PiA+ICsJaWYgKCp2YWx1ZSkNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKwkJcHcyMF9zdGF0ZSB8PSBQ V1JNR1RDUjBfUFcyMF9XQUlUOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCWVsc2UNCj4gPiA+ID4g PiA+ID4gPiA+ID4gKwkJcHcyMF9zdGF0ZSAmPSB+UFdSTUdUQ1IwX1BXMjBfV0FJVDsNCj4gPiA+ ID4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCW10c3ByKFNQUk5fUFdSTUdU Q1IwLCBwdzIwX3N0YXRlKTsgfQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ICtzdGF0aWMgc3NpemVfdCBzdG9yZV9wdzIwX3N0YXRlKHN0cnVjdCBkZXZpY2UgKmRl diwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKwkJCQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0 ciwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKwkJCQljb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3Vu dCkNCj4gew0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCXUzMiB2YWx1ZTsNCj4gPiA+ID4gPiA+ID4g PiA+ID4gKwl1bnNpZ25lZCBpbnQgY3B1ID0gZGV2LT5pZDsNCj4gPiA+ID4gPiA+ID4gPiA+ID4g Kw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCWlmIChrc3RydG91MzIoYnVmLCAwLCAmdmFsdWUpKQ0K PiA+ID4gPiA+ID4gPiA+ID4gPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gPiA+ID4gPiA+ID4gPiA+ ID4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCWlmICh2YWx1ZSA+IDEpDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ICsJCXJldHVybiAtRUlOVkFMOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ ID4gPiA+ID4gPiA+ICsJc21wX2NhbGxfZnVuY3Rpb25fc2luZ2xlKGNwdSwgZG9fc3RvcmVfcHcy MF9zdGF0ZSwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyZ2YWx1ZSwgMSk7DQo+ID4gPiA+ID4gPiA+ ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKwlyZXR1cm4gY291bnQ7DQo+ID4gPiA+ID4g PiA+ID4gPiA+ICt9DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ID4g K3N0YXRpYyBzc2l6ZV90IHNob3dfcHcyMF93YWl0X3RpbWUoc3RydWN0IGRldmljZSAqZGV2LA0K PiA+ID4gPiA+ID4gPiA+ID4gPiArCQkJCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLA0K PiBjaGFyDQo+ID4gPiAqYnVmKSB7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsJdTMyIHZhbHVlOw0K PiA+ID4gPiA+ID4gPiA+ID4gPiArCXU2NCB0Yl9jeWNsZTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4g KwlzNjQgdGltZTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gPiAr CXVuc2lnbmVkIGludCBjcHUgPSBkZXYtPmlkOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4g PiA+ID4gPiA+ID4gPiA+ICsJaWYgKCFwdzIwX3d0KSB7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsJ CXNtcF9jYWxsX2Z1bmN0aW9uX3NpbmdsZShjcHUsDQo+IGRvX3Nob3dfcHdybWd0Y3IwLA0KPiA+ ID4gPiA+ID4gPiA+ID4gPiArJnZhbHVlLA0KPiA+ID4gPiA+ID4gPiAxKTsNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gKwkJdmFsdWUgPSAodmFsdWUgJiBQV1JNR1RDUjBfUFcyMF9FTlQpID4+DQo+ID4g PiA+ID4gPiA+ID4gPiA+ICsJCQkJCVBXUk1HVENSMF9QVzIwX0VOVF9TSElGVDsNCj4gPiA+ID4g PiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArCQl0Yl9jeWNsZSA9ICgxIDw8IChN QVhfQklUIC0gdmFsdWUpKSAqIDI7DQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ ID4gSXMgdmFsdWUgPSAwIGFuZCB2YWx1ZSA9IDEgbGVnYWw/IFRoZXNlIHdpbGwgbWFrZQ0KPiA+ ID4gPiA+ID4gPiA+ID4gdGJfY3ljbGUgPSAwLA0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gPiA+ID4gKwkJdGltZSA9IGRpdl91NjQodGJfY3ljbGUgKiAxMDAwLA0KPiB0Yl90aWNr c19wZXJfdXNlYykNCj4gPiA+IC0gMTsNCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ID4gPiBBbmQgdGltZSA9IC0xOw0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBQ bGVhc2UgbG9vayBhdCB0aGUgZW5kIG9mIHRoZSBmdW5jdGlvbiwgOikNCj4gPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiA+ICJyZXR1cm4gc3ByaW50ZihidWYsICIlbGx1XG4iLCB0aW1lID4g MCA/IHRpbWUgOiAwKTsiDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEkga25vdyB5b3Ug cmV0dXJuIDAgaWYgdmFsdWUgPSAwLzEsIG15IHF1ZXN0aW9uIHdhcyB0aGF0LCBpcw0KPiA+ID4g PiA+ID4gPiB0aGlzIGNvcnJlY3QgYXMgcGVyIHNwZWNpZmljYXRpb24/DQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+IEFoaCwgYWxzbyBmb3IgInZhbHVlIiB1cHRvIDcgeW91IHdpbGwgcmV0 dXJuIDAsIG5vPw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gSWYgdmFsdWUgPSAwLCBNQVhf QklUIC0gdmFsdWUgPSA2MyB0Yl9jeWNsZSA9DQo+ID4gPiA+ID4gPiAweGZmZmZmZmZmX2ZmZmZm ZmZmLCB0Yl9jeWNsZSAqIDEwMDAgd2lsbCBvdmVyZmxvdywgYnV0IHRoaXMNCj4gc2l0dWF0aW9u IGlzIG5vdCBwb3NzaWJsZS4NCj4gPiA+ID4gPiA+IEJlY2F1c2UgaWYgdGhlICJ2YWx1ZSA9IDAi IG1lYW5zIHRoaXMgZmVhdHVyZSB3aWxsIGJlICJkaXNhYmxlIi4NCj4gPiA+ID4gPiA+IE5vdyBU aGUgZGVmYXVsdCB3YWl0IGJpdCBpcyA1MChNQVhfQklUIC0gdmFsdWUsIHZhbHVlID0gMTMpLA0K PiA+ID4gPiA+ID4gdGhlIFBXMjAvQWx0aXZlYyBJZGxlIHdhaXQgZW50cnkgdGltZSBpcyBhYm91 dCAxbXMsIHRoaXMgdGltZQ0KPiA+ID4gPiA+ID4gaXMgdmVyeSBsb25nIGZvciB3YWl0IGlkbGUg dGltZSwgYW5kIGl0J3MgY2Fubm90IGJlDQo+ID4gPiA+ID4gPiBpbmNyZWFzZWQobWVhbnMgKE1B WF9CSVQNCj4gPiA+ID4gPiA+IC0gdmFsdWUpDQo+ID4gPiA+ID4gY2Fubm90IGdyZWF0ZXIgdGhh biA1MCkuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBXaGF0IHlvdSBzYWlkIGlzIG5vdCBvYnZpb3Vz IGZyb20gY29kZSBhbmQgc28gYXQgbGVhc3Qgd3JpdGUgYQ0KPiA+ID4gPiA+IGNvbW1lbnQgdGhh dCB2YWx1ZSB3aWxsIGJlIGFsd2F5cyA+PSAxMyBvciB2YWx1ZSB3aWxsIG5ldmVyIGJlDQo+ID4g PiA+ID4gbGVzcyB0aGFuIDwgOCBhbmQgYmVsb3cgY2FsY3VsYXRpb24gd2lsbCBub3Qgb3ZlcmZs b3cuIG1heSBiZQ0KPiA+ID4gPiA+IGVycm9yIG91dCBpZiB2YWx1ZSBpcyBsZXNzIHRoYW4gOC4N Cj4gPiA+ID4gPg0KPiA+ID4gPiBUaGUgInZhbHVlIiBsZXNzIHRoYW4gMTAsIHRoaXMgd2lsbCBv dmVyZmxvdy4NCj4gPiA+ID4gVGhlcmUgaXMgbm90IGVycm9yLCBUaGUgY29kZSBJIGtuZXcgaXQg Y291bGQgbm90IGJlIGxlc3MgdGhhbiAxMCwNCj4gPiA+ID4gdGhhdCdzIHdoeSBJIHVzZSB0aGUg Zm9sbG93aW5nIGNvZGUuIDopDQo+ID4gPg0KPiA+ID4gSSBhbSBzb3JyeSB0byBwZXJzaXN0IGJ1 dCB0aGlzIGlzIG5vdCBhYm91dCB3aGF0IHlvdSBrbm93LCB0aGlzIGlzDQo+ID4gPiBhYm91dCBo b3cgY29kZSBpcyByZWFkIGFuZCBjb2RlIGRvZXMgbm90IHNheSB3aGF0IHlvdSBrbm93LCBzbyBh ZGQgYQ0KPiA+ID4gY29tbWVudCBhdCBsZWFzdCBhbmQgZXJyb3Igb3V0L3dhcm4gd2hlbiAidmFs dWUiIGlzIGxlc3MgdGhhbiBhDQo+IGNlcnRhaW4gbnVtYmVyLg0KPiA+ID4NCj4gPiBTb3JyeSBm b3IgdGhlIGxhdGUgdG8gcmVzcG9uc2UgdGhlIG1haWwuIElmIGl0IGNhdXNlZCBjb25mdXNpb24s IHdlIGNhbg0KPiBhZGQgYSBjb21tZW50Lg0KPiA+DQo+ID4gSG93IGFib3V0IHRoZSBmb2xsb3dp bmcgY29tbWVudD8NCj4gPiAvKg0KPiA+ICAqIElmIHRoZSAidmFsdWUiIGxlc3MgdGhhbiAxMCwg dGhpcyB3aWxsIG92ZXJmbG93Lg0KPiA+ICAqIEZyb20gYmVuY2htYXJrIHRlc3QsIHRoZSBkZWZh dWx0IHdhaXQgYml0IHdpbGwgbm90IGJlIHNldCBsZXNzIHRoYW4NCj4gMTBiaXQuDQo+ID4gICog QmVjYXVzZSAxMCBiaXQgY29ycmVzcG9uZHMgdG8gdGhlIHdhaXQgZW50cnkgdGltZSBpcw0KPiA+ IDQzOTM3NTU3MzQwMTk5OTYwOShucyksDQo+ID4gICogZm9yIHdhaXQtZW50cnktaWRsZSB0aW1l IHRoaXMgdmFsdWUgbG9va3MgdG9vIGxvbmcsIGFuZCB3ZSBjYW5ub3QNCj4gPiB1c2UgdGhvc2UN Cj4gPiAgKiAibG9uZyIgdGltZSBhcyBhIGRlZmF1bHQgd2FpdC1lbnRyeSB0aW1lLiBTbyBvdmVy ZmxvdyBjb3VsZCBub3QNCj4gPiBoYXZlIGhhcHBlbmVkDQo+ID4gICogYW5kIHdlIHVzZSB0aGlz IGNhbGN1bGF0aW9uIG1ldGhvZCB0byBnZXQgd2FpdC1lbnRyeS1pZGxlIHRpbWUuDQo+ID4gICov DQo+IA0KPiBJZiB0aGVyZSdzIHRvIGJlIGEgbGltaXQgb24gdGhlIHRpbWVzIHdlIGFjY2VwdCwg bWFrZSBpdCBleHBsaWNpdC4NCj4gQ2hlY2sgZm9yIGl0IGJlZm9yZSBkb2luZyBhbnkgY29udmVy c2lvbnMsIGFuZCByZXR1cm4gYW4gZXJyb3IgaWYNCj4gdXNlcnNwYWNlIHRyaWVzIHRvIHNldCBp dC4NCj4gDQpUaGUgYnJhbmNoIG9ubHkgdXNlIHRvIHJlYWQgZGVmYXVsdCB3YWl0LWVudHJ5LXRp bWUuDQpXZSBoYXZlIG5vIGxpbWl0IHRoZSB1c2VyJ3MgaW5wdXQsIGFuZCB3ZSBjYW4ndCByZXN0 cmljdC4gT25jZSB0aGUgdXNlciBzZXQgdGhlIHdhaXQtZW50cnktdGltZSwNCnRoZSBjb2RlIHdp bGwgZG8gYW5vdGhlciBicmFuY2guDQoNCj4gLVNjb3R0DQo+IA0KDQo=