RE: [PATCH 3/4 RFC] fsl/msi: Add MSI bank allocation for kernel owned devices
From: Bharat.Bhushan@freescale.com <hidden>
Date: 2015-03-12 15:46:22
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogV29vZCBTY290dC1CMDc0 MjENCj4gU2VudDogVGh1cnNkYXksIE1hcmNoIDEyLCAyMDE1IDQ6NTMgQU0NCj4gVG86IEJodXNo YW4gQmhhcmF0LVI2NTc3Nw0KPiBDYzogbGludXhwcGMtZGV2QG96bGFicy5vcmcNCj4gU3ViamVj dDogUmU6IFtQQVRDSCAzLzQgUkZDXSBmc2wvbXNpOiBBZGQgTVNJIGJhbmsgYWxsb2NhdGlvbiBm b3Iga2VybmVsDQo+IG93bmVkIGRldmljZXMNCj4gDQo+IE9uIFR1ZSwgMjAxNS0wMy0wMyBhdCAx MDo0NyArMDUzMCwgQmhhcmF0IEJodXNoYW4gd3JvdGU6DQo+ID4gV2l0aCB0aGlzIHBhdGNoIGEg ImNvbnRleHQiIGNhbiBhbGxvY2F0ZSBhIE1TSSBiYW5rIGFuZCB1c2UgdGhlDQo+ID4gYWxsb2Nh dGVkIE1TSS1iYW5rIGZvciB0aGUgZGV2aWNlcyBpbiB0aGF0ICJjb250ZXh0Ii4NCj4gPg0KPiA+ IGtlcm5lbC9ob3N0ICJjb250ZXh0IiBpcyAiTlVMTCIsIFNvIGFsbCBkZXZpY2VzIG93bmVkIGJ5 IGtlcm5lbCB3aWxsDQo+ID4gc2hhcmUgYSBNU0kgYmFuayBhbGxvY2F0ZWQgd2l0aCAiY29udGV4 dCA9IE5VTEwuDQo+ID4NCj4gPiBUaGlzIHBhdGNoIGlzIGluIGRpcmVjdGlvbiB0byBoYXZlIHNl cGFyYXRlIE1TSSBiYW5rIGZvciBrZXJuZWwNCj4gPiBjb250ZXh0IGFuZCB1c2Vyc3BhY2UvVk0g Y29udGV4dC4gV2UgZG8gbm90IHdhbnQgdHdvIHNvZnR3YXJlIGNvbnRleHQNCj4gPiAoa2VybmVs IGFuZCBWTXMpIHRvIHNoYXJlIGEgTVNJIGJhbmsgZm9yIHNhZmUvcmVsaWFibGUgaW50ZXJydXB0 cyB3aXRoDQo+ID4gZnVsbCBpc29sYXRpb24uIEZvbGxvdyB1cCBwYXRjaCB3aWxsIGFkZCBpbnRl cmZhY2UgdG8gYWxsb2NhdGUgYSBNU0kNCj4gPiBiYW5rIGZvciB1c2Vyc3BhY2UvVk0gY29udGV4 dC4NCj4gPg0KPiA+IE5PVEU6IFRoaXMgUkZDIHBhdGNoIGFsbG93cyBvbmx5IG9uZSBNU0kgYmFu ayB0byBiZSBhbGxvY2F0ZWQgZm9yDQo+ID4ga2VybmVsIGNvbnRleHQuIFdoaWNoIHNlZW1zIHRv IGJlIHN1ZmZpY2llbnQgdG8gbWUuIEJ1dCBpZiB3ZSBzZWUgdGhpcw0KPiA+IGlzIGxpbWl0aW5n IHNvbWUgcmVhbCB1c2VjYXNlIHNjYW5lcmlvIHRoZW4gdGhpcyBsaW1pdGF0aW9uIGNhbiBiZQ0K PiA+IHJlbW92ZWQNCj4gPg0KPiA+IE9uZSBpc3N1ZSB3aGljaCBzdGlsbCBuZWVkIHRvIGFkZHJl c3NlZCBpcyB3aGVuIHRvIGZyZWUga2VybmVsIGNvbnRleHQNCj4gPiBhbGxvY2F0ZWQgTVNJIGJh bms/IFNheSBhbGwgTVNJIGNhcGFibGUgZGV2aWNlcyBhcmUgYXNzaWduZWQgdG8NCj4gPiBWTS91 c2Vyc3BhY2UgdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGhhdmUgYW55IE1TSSBiYW5rIHJlc2Vy dmVkIGZvcg0KPiA+IGtlcm5lbCBjb250ZXh0Lg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogQmhh cmF0IEJodXNoYW4gPEJoYXJhdC5CaHVzaGFuQGZyZWVzY2FsZS5jb20+DQo+ID4gLS0tDQo+ID4g IGFyY2gvcG93ZXJwYy9zeXNkZXYvZnNsX21zaS5jIHwgODgNCj4gPiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tDQo+ID4gIGFyY2gvcG93ZXJwYy9zeXNkZXYvZnNs X21zaS5oIHwgIDQgKysNCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCA5 IGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9zeXNkZXYv ZnNsX21zaS5jDQo+ID4gYi9hcmNoL3Bvd2VycGMvc3lzZGV2L2ZzbF9tc2kuYyBpbmRleCAzMmJh MWUzLi4wMjdhZWViIDEwMDY0NA0KPiA+IC0tLSBhL2FyY2gvcG93ZXJwYy9zeXNkZXYvZnNsX21z aS5jDQo+ID4gKysrIGIvYXJjaC9wb3dlcnBjL3N5c2Rldi9mc2xfbXNpLmMNCj4gPiBAQCAtMTQy LDYgKzE0Miw3OSBAQCBzdGF0aWMgdm9pZCBmc2xfdGVhcmRvd25fbXNpX2lycXMoc3RydWN0IHBj aV9kZXYNCj4gKnBkZXYpDQo+ID4gIAlyZXR1cm47DQo+ID4gIH0NCj4gPg0KPiA+ICsvKg0KPiA+ ICsgKiBBbGxvY2F0ZSBhIE1TSSBCYW5rIGZvciB0aGUgcmVxdWVzdGVkICJjb250ZXh0Ii4NCj4g PiArICogTlVMTCAiY29udGV4dCIgbWVhbnMgdGhhdCB0aGlzIHJlcXVlc3QgaXMgdG8gYWxsb2Nh dGUNCj4gPiArICogTVNJIGJhbmsgZm9yIGtlcm5lbCBvd25lZCBkZXZpY2VzLiBBbmQgY3VycmVu dGx5IHdlDQo+ID4gKyAqIGFzc3VtZSB0aGF0IG9uZSBNU0kgYmFuayBpcyBzdWZmaWNpZW50IGZv ciBrZXJuZWwuDQo+ID4gKyAqLw0KPiA+ICtzdGF0aWMgc3RydWN0IGZzbF9tc2kgKmZzbF9tc2lf YWxsb2NhdGVfbXNpX2Jhbmsodm9pZCAqY29udGV4dCkgew0KPiA+ICsJc3RydWN0IGZzbF9tc2kg Km1zaV9kYXRhOw0KPiA+ICsNCj4gPiArCS8qIEtlcm5lbCBjb250ZXh0IChOVUxMKSBjYW4gcmVz ZXJ2ZSBvbmx5IG9uZSBtc2kgYmFuayAqLw0KPiA+ICsJaWYgKCFjb250ZXh0KSB7DQo+ID4gKwkJ bGlzdF9mb3JfZWFjaF9lbnRyeShtc2lfZGF0YSwgJm1zaV9oZWFkLCBsaXN0KSB7DQo+ID4gKwkJ CWlmICgobXNpX2RhdGEtPnJlc2VydmVkID09IE1TSV9SRVNFUlZFRCkgJiYNCj4gPiArCQkJICAg IChtc2lfZGF0YS0+Y29udGV4dCA9PSBOVUxMKSkNCj4gPiArCQkJCXJldHVybiBOVUxMOw0KPiA+ ICsJCX0NCj4gDQo+IFVubmVjZXNzYXJ5IHBhcmVudGhlc2VzDQo+IA0KPiBJcyB0aGVyZSBhbnkg cmVhc29uIHdoeSB0aGUga2VybmVsIGJhbmsgbmVlZHMgdG8gcGFydGljaXBhdGUgaW4gdGhpcw0K PiBtZWNoYW5pc20gYXQgYWxsPyAgU2V0IGl0IGFzaWRlIGF0IE1TSSBkcml2ZXIgaW5pdCwgYW5k IGRvbid0IHB1dCBpdCBvbg0KPiB0aGUgbGlzdC4gIEkga25vdyB5b3UndmUgcHJldmlvdXNseSBz YWlkIHRoYXQgeW91IHdhbnQgdG8gc3VwcG9ydCBjb25maWdzDQo+IHdoZXJlIHRoZSBrZXJuZWwg ZG9lc24ndCBnZXQgYW55IGJhbmtzLCBidXQgdGhhdCBjYW4ganVzdCBiZSBhIGJvb3QNCj4gb3B0 aW9uIHRoYXQgdGVsbHMgdGhlIE1TSSBjb2RlIHRvIG5vdCBzZXQgYXNpZGUgYSBiYW5rIGZvciB0 aGUga2VybmVsLg0KPiBJdCB3b3VsZCBzaW1wbGlmeSB0aGUgY29kZS4NCg0KSSB0aGluayB3ZSBj YW5ub3QgY29tcGxldGVseSByZW1vdmUgdGhlIE1TSSBiYW5rIGZyb20ga2VybmVsIHByYWN0aWNh bGx5LiBTbyBJIGNhbiBtYWtlIHRoZSBrZXJuZWwgbXNpIGJhbmsgb3V0IG9mIGxpc3QuDQoNCj4g DQo+IFdpdGggdGhlIHBhdGNoc2V0IGFzIGlzLCBob3cgd291bGQgb25lIGluZGljYXRlIHdoZXRo ZXIga2VybmVsIGRldmljZXMNCj4gc2hvdWxkIGdldCBhIGJhbms/DQoNCkZvciBrZXJuZWwgb3du ZWQgZGV2aWNlLCBpbiBmc2xfc2V0dXBfbXNpX2lycXMoKSB3ZSBjaGVjayBpZiB0aGVyZSBpcyBh IHJlc2VydmVkIE1TSSBiYW5rLCBpZiBub3QgdGhlbiByZXNlcnZlIGEgbXNpIGJhbmsuIElmIHJl c2VydmUgZmFpbHMgdGhlbiBzZXR1cF9tc2lfaXJxKCkgZmFpbHMuIEkgdGhpbmsgdGhlcmUgaXMg bm8gZmFsbGJhY2sgdG8gTGVnYWN5IGludGVycnVwdC4NCg0KPiAgU3BlY2lmaWNhbGx5LCB3aGVu IHRoZSBrZXJuZWwgZG9lcyBoYXZlIGFuIE1TSS0NCj4gY2FwYWJsZSBkZXZpY2UgYnV0IHdlJ2Qg cHJlZmVyIHRvIHVzZSBsZWdhY3kgaW50ZXJydXB0cyB0byBrZWVwIE1TSXMNCj4gYXZhaWxhYmxl IHRvIFZGSU8uDQoNCkRvIHdlIHdhbnQgdGhpcz8NCg0KPiANCj4gPiArCX0NCj4gPiArDQo+ID4g KwlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1zaV9kYXRhLCAmbXNpX2hlYWQsIGxpc3QpIHsNCj4gPiAr CQlpZiAobXNpX2RhdGEtPnJlc2VydmVkID09IE1TSV9GUkVFKSB7DQo+ID4gKwkJCW1zaV9kYXRh LT5yZXNlcnZlZCA9IE1TSV9SRVNFUlZFRDsNCj4gPiArCQkJbXNpX2RhdGEtPmNvbnRleHQgPSBj b250ZXh0Ow0KPiA+ICsJCQlyZXR1cm4gbXNpX2RhdGE7DQo+ID4gKwkJfQ0KPiA+ICsJfQ0KPiAN Cj4gV2hhdCBwcmV2ZW50cyByYWNlcyBmcm9tIHBhcmFsbGVsIGNhbGxlcnM/DQoNCldpbGwgYWRk IGEgbG9jay4NCg0KPiANCj4gPiArLyogRklYTUU6IEFzc3VtcHRpb24gdGhhdCBob3N0IGtlcm5l bCB3aWxsIGFsbG9jYXRlIG9ubHkgb25lIE1TSSBiYW5rDQo+ID4gKyovDQo+IA0KPiBJdCdzIG5v dCBhIEZJWE1FIGlmIHdlIHRoaW5rIHRoZSBsaW1pdGF0aW9uIGlzIG5vdCBidXJkZW5zb21lLg0K DQpPaw0KDQo+IA0KPiA+ICsgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpIHN0YXRpYyBpbnQgZnNs X21zaV9mcmVlX21zaV9iYW5rKHZvaWQNCj4gPiArICpjb250ZXh0KQ0KPiANCj4gc3RhdGljIGlu dCBfX21heWJlX3VudXNlZCBmc2xfbXNpX2ZyZWVfbXNpX2Jhbmsodm9pZCAqY29udGV4dCkNCj4g DQo+IFdoeSBhcmUgeW91IGFkZGluZyB0aGlzIGZ1bmN0aW9uIHRoZW4gcmVtb3ZpbmcgaXQgaW4g dGhlIG5leHQgcGF0Y2g/DQoNCldpbGwgZml4IHRoaXMNCg0KPiANCj4gPiArCS8qIElmIG5vIE1T SSBiYW5rIGFsbG9jYXRlZCBmb3Iga2VybmVsIG93bmVkIGRldmljZSwgYWxsb2NhdGUgb25lDQo+ ICovDQo+ID4gKwltc2lfZGF0YSA9IGZzbF9tc2lfYWxsb2NhdGVfbXNpX2JhbmsoTlVMTCk7DQo+ ID4gKwlpZiAobXNpX2RhdGEpDQo+ID4gKwkJcmV0dXJuIG1zaV9kYXRhOw0KPiA+ICsNCj4gPiAr CXJldHVybiBOVUxMOw0KPiANCj4gcmV0dXJuIGZzbF9tc2lfYWxsb2NhdGVfbXNpX2JhbmsoTlVM TCk7DQoNCk9rDQoNCj4gDQo+IA0KPiA+ICt9DQo+ID4gKw0KPiA+ICBzdGF0aWMgdm9pZCBmc2xf Y29tcG9zZV9tc2lfbXNnKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBpbnQgaHdpcnEsDQo+ID4gIAkJ CQlzdHJ1Y3QgbXNpX21zZyAqbXNnLA0KPiA+ICAJCQkJc3RydWN0IGZzbF9tc2kgKmZzbF9tc2lf ZGF0YSkNCj4gPiBAQCAtMTc0LDcgKzI0Nyw3IEBAIHN0YXRpYyBpbnQgZnNsX3NldHVwX21zaV9p cnFzKHN0cnVjdCBwY2lfZGV2ICpwZGV2LA0KPiBpbnQgbnZlYywgaW50IHR5cGUpDQo+ID4gIAlz dHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UgPSBwY2lfYnVzX3RvX2hvc3QocGRldi0+YnVzKTsN Cj4gPiAgCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbnA7DQo+ID4gIAlwaGFuZGxlIHBoYW5kbGUgPSAw Ow0KPiA+IC0JaW50IHJjLCBod2lycSA9IC1FTk9NRU07DQo+ID4gKwlpbnQgcmMgPSAtRU5PREVW LCBod2lycSA9IC1FTk9NRU07DQo+IA0KPiBJbml0aWFsaXplIHJjIHdoZW4geW91IGRldGVjdCB0 aGUgZXJyb3IgaW5zdGVhZCBvZiBoZXJlIChpdCdkIGJlIE9LIHRvDQo+IGluaXRpYWxpemUgaXQg dG8gemVybyBoZXJlLCB0byBtaXRpZ2F0ZSBwb3RlbnRpYWwgdW5pbml0aWFsaXplZCB2YWx1ZQ0K PiBidWdzKS4NCg0KT2sNCg0KPiANCj4gPiAgCXVuc2lnbmVkIGludCB2aXJxOw0KPiA+ICAJc3Ry dWN0IG1zaV9kZXNjICplbnRyeTsNCj4gPiAgCXN0cnVjdCBtc2lfbXNnIG1zZzsNCj4gPiBAQCAt MjMxLDE1ICszMDQsMTIgQEAgc3RhdGljIGludCBmc2xfc2V0dXBfbXNpX2lycXMoc3RydWN0IHBj aV9kZXYNCj4gKnBkZXYsIGludCBudmVjLCBpbnQgdHlwZSkNCj4gPiAgCQlpZiAoc3BlY2lmaWNf bXNpX2JhbmspIHsNCj4gPiAgCQkJaHdpcnEgPSBtc2lfYml0bWFwX2FsbG9jX2h3aXJxcygmbXNp X2RhdGEtPmJpdG1hcCwgMSk7DQo+ID4gIAkJfSBlbHNlIHsNCj4gPiAtCQkJLyoNCj4gPiAtCQkJ ICogTG9vcCBvdmVyIGFsbCB0aGUgTVNJIGRldmljZXMgdW50aWwgd2UgZmluZCBvbmUgdGhhdA0K PiBoYXMgYW4NCj4gPiAtCQkJICogYXZhaWxhYmxlIGludGVycnVwdC4NCj4gPiAtCQkJICovDQo+ ID4gLQkJCWxpc3RfZm9yX2VhY2hfZW50cnkobXNpX2RhdGEsICZtc2lfaGVhZCwgbGlzdCkgew0K PiA+IC0JCQkJaHdpcnEgPSBtc2lfYml0bWFwX2FsbG9jX2h3aXJxcygmbXNpX2RhdGEtDQo+ID5i aXRtYXAsIDEpOw0KPiA+IC0JCQkJaWYgKGh3aXJxID49IDApDQo+ID4gLQkJCQkJYnJlYWs7DQo+ ID4gKwkJCW1zaV9kYXRhID0gZnNsX21zaV9nZXRfcmVzZXJ2ZWRfbXNpX2JhbmsocGRldik7DQo+ ID4gKwkJCWlmICghbXNpX2RhdGEpIHsNCj4gPiArCQkJCWRldl9lcnIoJnBkZXYtPmRldiwgIk5v IE1TSSBCYW5rIGFsbG9jYXRlZFxuIik7DQo+ID4gKwkJCQlnb3RvIG91dF9mcmVlOw0KPiANCj4g SXMgdGhpcyByZWFsbHkgYW4gZXJyb3I/ICBTZWVtcyBsaWtlIGRldl9pbmZvKCkgd291bGQgYmUg bW9yZSBhcHByb3ByaWF0ZQ0KPiB0byBpbmRpY2F0ZSB0aGUgYWJzZW5jZSBvZiBhIHJlc291cmNl IHdoZXJlIHlvdSBjYW4gZmFsbCBiYWNrIHRvIGFub3RoZXINCj4gb3B0aW9uLg0KDQpUaGVyZSBp cyBubyBmYWxsYmFjayBpbiBmc2xfc2V0dXBfbXNpX2lycXMoKSwgV2UgaGF2ZSB0byBlcnJvciBv dXQgZnJvbSBmc2xfc2V0dXBfbXNpX2lycXMoKSwgbm8/DQoNCj4gDQo+ID4gZGlmZiAtLWdpdCBh L2FyY2gvcG93ZXJwYy9zeXNkZXYvZnNsX21zaS5oDQo+ID4gYi9hcmNoL3Bvd2VycGMvc3lzZGV2 L2ZzbF9tc2kuaCBpbmRleCA5YjBhYjg0Li5jNjk3MDJiIDEwMDY0NA0KPiA+IC0tLSBhL2FyY2gv cG93ZXJwYy9zeXNkZXYvZnNsX21zaS5oDQo+ID4gKysrIGIvYXJjaC9wb3dlcnBjL3N5c2Rldi9m c2xfbXNpLmgNCj4gPiBAQCAtNDYsNiArNDYsMTAgQEAgc3RydWN0IGZzbF9tc2kgew0KPiA+ICAJ c3RydWN0IGxpc3RfaGVhZCBsaXN0OyAgICAgICAgICAvKiBzdXBwb3J0IG11bHRpcGxlIE1TSSBi YW5rcyAqLw0KPiA+DQo+ID4gIAlwaGFuZGxlIHBoYW5kbGU7DQo+ID4gKyNkZWZpbmUgTVNJX0ZS RUUJCTANCj4gPiArI2RlZmluZSBNU0lfUkVTRVJWRUQJCTENCj4gPiArICAgICAgICBpbnQgcmVz ZXJ2ZWQ7DQo+ID4gKyAgICAgICAgdm9pZCAqY29udGV4dDsNCj4gDQo+IFdoaXRlc3BhY2UNCj4g DQo+IEhvdyBhYm91dCBqdXN0ICJib29sIHJlc2VydmVkIj8gIE9yIGlmIHRoZSBrZXJuZWwgYmFu ayBpcyBrZXB0IG9mZiB0aGUNCj4gbGlzdCwganVzdCBjaGVjayBjb250ZXh0IGZvciBOVUxMLg0K DQpJIHdpbGwgdHJ5IHRvIG1ha2Uga2VybmVsIGJhbmsgb3V0IG9mIGxpc3QgYW5kIHNlZSBob3cg bXVjaCB0aGlzIHNpbXBsaWZpZXMgdGhlIGNvZGUuDQoNClRoYW5rcw0KLUJoYXJhdA0KDQo+IA0K PiAtU2NvdHQNCj4gDQoNCg==