From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Renninger Subject: [PATCH 1/2] RFC: ACPI: Interface for ACPI drivers to place quirk code which gets executed early Date: Mon, 2 Feb 2009 18:22:10 +0100 Message-ID: <200902021822.11906.trenn@suse.de> References: <20090125210520.GA12963@dreamland.darkstar.lan> <20090202101103.1208c035@hyperion.delvare> <68676e00902020338o7326ff7dx4efadf94ed534acf@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx2.suse.de ([195.135.220.15]:50400 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753212AbZBBRWO (ORCPT ); Mon, 2 Feb 2009 12:22:14 -0500 In-Reply-To: <68676e00902020338o7326ff7dx4efadf94ed534acf@mail.gmail.com> Content-Disposition: inline Sender: linux-acpi-owner@vger.kernel.org List-Id: linux-acpi@vger.kernel.org To: Luca Tettamanti Cc: Jean Delvare , Hans de Goede , linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org, Len Brown SGksCgpPbiBNb25kYXkgMDIgRmVicnVhcnkgMjAwOSAxMjozODoyNCBMdWNhIFRldHRhbWFudGkg d3JvdGU6Cj4gT24gTW9uLCBGZWIgMiwgMjAwOSBhdCAxMDoxMSBBTSwgSmVhbiBEZWx2YXJlIDxr aGFsaUBsaW51eC1mci5vcmc+IHdyb3RlOgo+ID4gT24gU3VuLCAxIEZlYiAyMDA5IDIyOjIyOjQz ICswMTAwLCBMdWNhIFRldHRhbWFudGkgd3JvdGU6Cj4gPj4gLS0tIGEvZHJpdmVycy9hY3BpL29z bC5jCj4gPj4gKysrIGIvZHJpdmVycy9hY3BpL29zbC5jCj4gPj4gQEAgLTEwNjMsNyArMTA2Mywx MCBAQCBfX3NldHVwKCJhY3BpX3dha2VfZ3Blc19hbHdheXNfb24iLAo+ID4+IGFjcGlfd2FrZV9n cGVzX2Fsd2F5c19vbl9zZXR1cCk7ICogaW4gYXJiaXRyYXJ5IEFNTCBjb2RlIGFuZCBjYW4KPiA+ PiBpbnRlcmZlcmUgd2l0aCBsZWdhY3kgZHJpdmVycy4gKiBhY3BpX2VuZm9yY2VfcmVzb3VyY2Vz PSBjYW4gYmUgc2V0IHRvOgo+ID4+ICAgKgo+ID4+IC0gKiAgIC0gc3RyaWN0ICAgICAgICAgICAo MikKPiA+PiArICogICAtIGF1dG8gICAgICAgICAgICAgKDIpCj4gPj4gKyAqICAgICAtPiBkZXRl Y3QgcG9zc2libGUgY29uZmxpY3RzIHdpdGggQUNQSSBkcml2ZXJzIGFuZCBzd2l0Y2ggdG8KPiA+ PiArICogICAgIHN0cmljdCBpZiBuZWVkZWQsIG90aGVyd2lzZSBhY3QgbGlrZSBsYXgKPiA+PiAr ICogICAtIHN0cmljdCAgICAgICAgICAgKDMpCj4gPj4gICAqICAgICAtPiBmdXJ0aGVyIGRyaXZl ciB0cnlpbmcgdG8gYWNjZXNzIHRoZSByZXNvdXJjZXMgd2lsbCBub3QgbG9hZAo+ID4+ICAgKiAg IC0gbGF4IChkZWZhdWx0KSAgICAoMSkKPiA+PiAgICogICAgIC0+IGZ1cnRoZXIgZHJpdmVyIHRy eWluZyB0byBhY2Nlc3MgdGhlIHJlc291cmNlcyB3aWxsIGxvYWQsIGJ1dAo+ID4+IHlvdSBAQCAt MTA3MywxMSArMTA3NiwxMiBAQCBfX3NldHVwKCJhY3BpX3dha2VfZ3Blc19hbHdheXNfb24iLAo+ ID4+IGFjcGlfd2FrZV9ncGVzX2Fsd2F5c19vbl9zZXR1cCk7ICogICAgIC0+IEFDUEkgT3BlcmF0 aW9uIFJlZ2lvbgo+ID4+IHJlc291cmNlcyB3aWxsIG5vdCBiZSByZWdpc3RlcmVkICoKPiA+PiAg ICovCj4gPj4gLSNkZWZpbmUgRU5GT1JDRV9SRVNPVVJDRVNfU1RSSUNUIDIKPiA+PiArI2RlZmlu ZSBFTkZPUkNFX1JFU09VUkNFU19TVFJJQ1QgMwo+ID4+ICsjZGVmaW5lIEVORk9SQ0VfUkVTT1VS Q0VTX0FVVE8gICAyCj4gPj4gICNkZWZpbmUgRU5GT1JDRV9SRVNPVVJDRVNfTEFYICAgIDEKPiA+ PiAgI2RlZmluZSBFTkZPUkNFX1JFU09VUkNFU19OTyAgICAgMAo+ID4KPiA+IEkgZG9uJ3Qgc2Vl IGFueSByZWFzb24gdG8gY2hhbmdlIEVORk9SQ0VfUkVTT1VSQ0VTX1NUUklDVCBmcm9tIDIgdG8g My4KPiA+IEp1c3QgYWRkIEVORk9SQ0VfUkVTT1VSQ0VTX0FVVE8gYXMgMyBhbmQgdGhhdCdzIGl0 LCBtYWtlcyB5b3VyIHBhdGNoCj4gPiBzbWFsbGVyLgo+Cj4gVGhlcmUncyBhbiB1bnNwb2tlbiBy ZWFzb24gOy0pIFRoZSBvcHRpb25zIGFyZSBvcmRlcmVkIGJ5Cj4gInN0cmljdG5lc3MiLCBJIHdh cyBleHBlcmltZW50aW5nIHdpdGggYW4gQVBJIHRvIGV4cG9ydCB0aGUgcGFyYW1ldGVyLAo+IGlu IG9yZGVyIHRvIG1vdmUgdGhlIGNvZGUgdG8gYSBzZXBhcmF0ZSBxdWlyayBmaWxlLiBTaW5jZSBp dCdzIG5vdAo+IHJlbGV2YW50IGluIHRoaXMgcGF0Y2ggSSdsbCBiYWNrIG91dCB0aGUgY2hhbmdl LgoKSSBhbSBzdGlsbCBydW5uaW5nIGFuIGZzY2sgYXMgSSBmaWxsZWQgdXAgdGhlIGZzIEkgd29y a2VkIG9uIHRvIDEwMCUsIHdoaWNoCnRha2VzIGhvdXJzIGZvciB0aGUgMzAwRyBwYXJ0aXRpb24u IEkgaG9wZSBJIGRpZG4ndCBtZXNzIHVwIHNvbWV0aGluZywgZHVlCnRvIHRoZSBmdWxsIGZzLCBi dXQgSSBkbyBub3Qgd2FudCB0byB3YWl0IHVudGlsIHRvbW9ycm93LCB5b3UgYWxyZWFkeSBtaWdo dAp3YW50IHRvIGhhdmUgYSBsb29rIGF0IHRoaXMuCgpUaGVzZSB0d28gcGF0Y2hlcyBhcmUgdGVz dGVkIG9uIGEgQVNVUyBtYWNoaW5lIGFuZCB3b3JrZWQgYXMgZXhwZWN0ZWQsCmJ1dCBwcm9iYWJs eSBtYXkgc3RpbGwgbmVlZCBzb21lIGNsZWFudXAuCgpUaGVyZSBpcyB0aGUgcHJvYmxlbSB0aGF0 IHRoZSBxdWlya3MgYXJlIG5vdCBleGVjdXRlZCBmb3IgZGV2aWNlcwp3aGljaCBhcmUgbm90IHBy ZXNlbnQuIEJ1dCB0aGlzIGlzIGR1ZSB0byB0aGUgcG9vciBBQ1BJIGhvdHBsdWcgZGVzaWduLAp3 aGljaCBob3BlZnVsbHkgd2lsbCBiZSByZXdvcmtlZCBhdCBzb21lIHRpbWUuCgpCb3RoIGFyZSBh Z2FpbnN0IExlbidzIGxhdGVzdCBBQ1BJIGdpdCB0ZXN0IGJyYW5jaC4KCkxlbiwgaWYgeW91IGxp a2UgdGhlc2UsIHRlbGwgbWUgYW5kIEkgYW0gZ29pbmcgdG8gbWFrZSB0aGVtCmNoZWNrX3BhdGNo IGNsZWFuIGFuZCBJIHdpbGwgc2VuZCB0aGVtIGFnYWluLgoKVGhhbmtzLAoKICAgIFRob21hcwoK LS0tCgpBQ1BJOiBJbnRlcmZhY2UgZm9yIEFDUEkgZHJpdmVycyB0byBwbGFjZSBxdWlyayBjb2Rl IHdoaWNoIGdldHMgZXhlY3V0ZWQgZWFybHkKClNvbWUgQUNQSSBkcml2ZXJzIG5lZWQgQUNQSSBu YW1lc3BhY2UgaW5mbyBiZWZvcmUgdGhlIGRyaXZlciBpcyBhY3R1YWxseQpsb2FkZWQuCkJlc3Qg ZXhhbXBsZXMgYXJlIGxlZ2FjeSB2cyBBQ1BJIGRyaXZlciBjb21wZXRpdG9ycyBsaWtlIEFUSzAx MTAgdnMgaHdtb24KZHJpdmVycyBhbmQgdGhlIGdlbmVyaWMgQUNQSSB2aWRlbyBkcml2ZXIgdnMg bGFwdG9wIGRyaXZlcnMuClRoZXJlIG1heSBhbHNvIHBvcCB1cCBvdGhlciBleGFtcGxlcyBpbiB0 aGUgZnV0dXJlIHdoZXJlIHRoaXMgaW50ZXJmYWNlIHdpbGwKYmVjb21lIGNvbnZlbmllbnQuCgpT aWduZWQtb2ZmLWJ5OiBUaG9tYXMgUmVubmluZ2VyIDx0cmVubkBzdXNlLmRlPgoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvYWNwaS9NYWtlZmlsZSBiL2RyaXZlcnMvYWNwaS9NYWtlZmlsZQppbmRleCA2 NWQ5MGM3Li40OThjYzZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvTWFrZWZpbGUKKysrIGIv ZHJpdmVycy9hY3BpL01ha2VmaWxlCkBAIC01OSwzICs1OSw0IEBAIG9iai0kKENPTkZJR19BQ1BJ X0hPVFBMVUdfTUVNT1JZKQkrPSBhY3BpX21lbWhvdHBsdWcubwogb2JqLSQoQ09ORklHX0FDUElf UFJPQ0ZTX1BPV0VSKQkrPSBjbV9zYnMubwogb2JqLSQoQ09ORklHX0FDUElfU0JTKQkJKz0gc2Jz aGMubwogb2JqLSQoQ09ORklHX0FDUElfU0JTKQkJKz0gc2JzLm8KK29iai15ICAgICAgICAgICAg ICAgICAgICAgICAgICAgKz0gcXVpcmtzLm8KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvYWNwaS5oIGIvZHJpdmVycy9hY3BpL2FjcGkuaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NWUyOWNhCi0tLSAvZGV2L251bGwKKysr IGIvZHJpdmVycy9hY3BpL2FjcGkuaApAQCAtMCwwICsxLDggQEAKKyNpZm5kZWYgX0xJTlVYX0xP Q0FMX0FDUElfSAorI2RlZmluZSBfTElOVVhfTE9DQUxfQUNQSV9ICisKKyNpbmNsdWRlIDxsaW51 eC9pbml0Lmg+CisKK3ZvaWQgX19pbml0IGFjcGlfZGV2aWNlX3F1aXJrcyh2b2lkKTsKKworI2Vu ZGlmIC8qIF9MSU5VWF9MT0NBTF9BQ1BJX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9x dWlya3MuYyBiL2RyaXZlcnMvYWNwaS9xdWlya3MuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi44NDQ0ODBlCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9hY3BpL3F1aXJr cy5jCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDA4IFRob21hcyBS ZW5uaW5nZXIgPHRyZW5uQHN1c2UuZGU+CisgKgorICogfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKyAqCisg KiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK KyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90 LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDU5IFRl bXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAqCisg KiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgorICovCisKKyNpbmNsdWRlIDxsaW51eC9tb2RfZGV2aWNldGFi bGUuaD4KKyNpbmNsdWRlIDxhY3BpL2FjcGlfYnVzLmg+CisjaW5jbHVkZSAiYWNwaS5oIgorCitz dHJ1Y3QgYWNwaV9kZXZpY2VfZml4dXAgeworCWNvbnN0IGNoYXIgKmhpZDsKKwlpbnQgKCpmaXh1 cF9jYikoc3RydWN0IGFjcGlfZGV2aWNlKik7Cit9OworCisvKgorICogQWRkIGEgY2FsbGJhY2sg aGVyZSBpZiB5b3VyIG1vZHVsZSBuZWVkcyB0byBwcm9jZXNzIGNvZGUgYWZ0ZXIgdGhlIEFDUEkK KyAqIGNvcmUgaGFzIHBhcnNlZCB0aGUgRFNEVCBhbmQgaW5pdGlhbGl6ZWQgYWxsIGRldmljZXMs IGJ1dCB0aGUgY29kZSBtdXN0CisgKiBiZSBwcm9jZXNzZWQgYmVmb3JlIG1vZHVsZSBsb2FkIHRp bWUuCisgKiBHb29kIGNhbmRpYXRlcyBhcmUgQUNQSSB2cyBsZWdhY3kgZHJpdmVyIGRlY2lzaW9u cyB3aGljaCBtdXN0IGJlIG1hZGUKKyAqIGJlZm9yZSB0aGUgZHJpdmVyIGlzIGxvYWRlZC4KKyAq LworY29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlX2ZpeHVwIF9faW5pdGRhdGEgZml4dXBfdGFibGVb XSA9IHsKK307CisKK3N0YXRpYyBhY3BpX3N0YXR1cyBfX2luaXQKK2FjcGlfZGV2aWNlX3F1aXJr c19jYWxsYmFjayhhY3BpX2hhbmRsZSBoYW5kbGUsCisJCQkgICAgdTMyIGxldmVsLCB2b2lkICpj dHh0LCB2b2lkICoqcmV0dikKK3sKKwlhY3BpX3N0YXR1cyBzdGF0dXM7CisJc3RydWN0IGFjcGlf ZGV2aWNlICpkZXY7CisJc3RydWN0IGFjcGlfZGV2aWNlX2lkIGRldl9pZDsKKwlpbnQgeCwgcmV0 OworCisJc3RhdHVzID0gYWNwaV9idXNfZ2V0X2RldmljZShoYW5kbGUsICZkZXYpOworCWlmIChB Q1BJX0ZBSUxVUkUoc3RhdHVzKSkKKwkJcmV0dXJuIEFFX09LOworCisJZm9yICh4ID0gMDsgeCA8 IEFSUkFZX1NJWkUoZml4dXBfdGFibGUpOyB4KyspIHsKKwkJbWVtY3B5KCZkZXZfaWQuaWQsIGZp eHVwX3RhYmxlW3hdLmhpZCwgQUNQSV9JRF9MRU4pOworCQlpZiAoIWFjcGlfbWF0Y2hfZGV2aWNl X2lkcyhkZXYsICZkZXZfaWQpKSB7CisJCQlyZXQgPSBmaXh1cF90YWJsZVt4XS5maXh1cF9jYihk ZXYpOworCQkJaWYgKHJldCkKKwkJCQlwcmludGsgKEtFUk5fRVJSICJGaXh1cCBmYWlsZWQgZm9y IGRldmljZTogIgorCQkJCQkiJXNcbiIsIGZpeHVwX3RhYmxlW3hdLmhpZCk7CisJCX0KKwl9CisJ cmV0dXJuIEFFX09LOworfQorCit2b2lkIF9faW5pdCBhY3BpX2RldmljZV9xdWlya3Modm9pZCkg eworCisJYWNwaV93YWxrX25hbWVzcGFjZShBQ1BJX1RZUEVfREVWSUNFLCBBQ1BJX1JPT1RfT0JK RUNULAorCQkJICAgIEFDUElfVUlOVDMyX01BWCwKKwkJCSAgICBhY3BpX2RldmljZV9xdWlya3Nf Y2FsbGJhY2ssCisJCQkgICAgTlVMTCwgTlVMTCk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Fj cGkvc2Nhbi5jIGIvZHJpdmVycy9hY3BpL3NjYW4uYwppbmRleCBjNTRkN2I2Li4xYzI1NzQ3IDEw MDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvc2Nhbi5jCisrKyBiL2RyaXZlcnMvYWNwaS9zY2FuLmMK QEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9rdGhyZWFkLmg+CiAKICNpbmNsdWRl IDxhY3BpL2FjcGlfZHJpdmVycy5oPgorI2luY2x1ZGUgImFjcGkuaCIKIAogI2RlZmluZSBfQ09N UE9ORU5UCQlBQ1BJX0JVU19DT01QT05FTlQKIEFDUElfTU9EVUxFX05BTUUoInNjYW4iKTsKQEAg LTE1NjIsNiArMTU2Myw4IEBAIHN0YXRpYyBpbnQgX19pbml0IGFjcGlfc2Nhbl9pbml0KHZvaWQp CiAKIAlpZiAocmVzdWx0KQogCQlhY3BpX2RldmljZV91bnJlZ2lzdGVyKGFjcGlfcm9vdCwgQUNQ SV9CVVNfUkVNT1ZBTF9OT1JNQUwpOworCWVsc2UKKwkJYWNwaV9kZXZpY2VfcXVpcmtzKCk7CiAK ICAgICAgIERvbmU6CiAJcmV0dXJuIHJlc3VsdDsKAAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753655AbZBBRWy (ORCPT ); Mon, 2 Feb 2009 12:22:54 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1755893AbZBBRWS (ORCPT ); Mon, 2 Feb 2009 12:22:18 -0500 Received: from mx2.suse.de ([195.135.220.15]:50400 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753212AbZBBRWO (ORCPT ); Mon, 2 Feb 2009 12:22:14 -0500 From: Thomas Renninger Organization: SUSE Products GmbH To: Luca Tettamanti Subject: [PATCH 1/2] RFC: ACPI: Interface for ACPI drivers to place quirk code which gets executed early Date: Mon, 2 Feb 2009 18:22:10 +0100 User-Agent: KMail/1.10.3 (Linux/2.6.27.13-HEAD_20090130075504_71baee03-default; KDE/4.1.3; x86_64; ; ) Cc: Jean Delvare , Hans de Goede , linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org, Len Brown References: <20090125210520.GA12963@dreamland.darkstar.lan> <20090202101103.1208c035@hyperion.delvare> <68676e00902020338o7326ff7dx4efadf94ed534acf@mail.gmail.com> In-Reply-To: <68676e00902020338o7326ff7dx4efadf94ed534acf@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Message-Id: <200902021822.11906.trenn@suse.de> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by alpha id n12HNfwM000745 Hi, On Monday 02 February 2009 12:38:24 Luca Tettamanti wrote:> On Mon, Feb 2, 2009 at 10:11 AM, Jean Delvare wrote:> > On Sun, 1 Feb 2009 22:22:43 +0100, Luca Tettamanti wrote:> >> --- a/drivers/acpi/osl.c> >> +++ b/drivers/acpi/osl.c> >> @@ -1063,7 +1063,10 @@ __setup("acpi_wake_gpes_always_on",> >> acpi_wake_gpes_always_on_setup); * in arbitrary AML code and can> >> interfere with legacy drivers. * acpi_enforce_resources= can be set to:> >> *> >> - * - strict (2)> >> + * - auto (2)> >> + * -> detect possible conflicts with ACPI drivers and switch to> >> + * strict if needed, otherwise act like lax> >> + * - strict (3)> >> * -> further driver trying to access the resources will not load> >> * - lax (default) (1)> >> * -> further driver trying to access the resources will load, but> >> you @@ -1073,11 +1076,12 @@ __setup("acpi_wake_gpes_always_on",> >> acpi_wake_gpes_always_on_setup); * -> ACPI Operation Region> >> resources will not be registered *> >> */> >> -#define ENFORCE_RESOURCES_STRICT 2> >> +#define ENFORCE_RESOURCES_STRICT 3> >> +#define ENFORCE_RESOURCES_AUTO 2> >> #define ENFORCE_RESOURCES_LAX 1> >> #define ENFORCE_RESOURCES_NO 0> >> > I don't see any reason to change ENFORCE_RESOURCES_STRICT from 2 to 3.> > Just add ENFORCE_RESOURCES_AUTO as 3 and that's it, makes your patch> > smaller.>> There's an unspoken reason ;-) The options are ordered by> "strictness", I was experimenting with an API to export the parameter,> in order to move the code to a separate quirk file. Since it's not> relevant in this patch I'll back out the change. I am still running an fsck as I filled up the fs I worked on to 100%, whichtakes hours for the 300G partition. I hope I didn't mess up something, dueto the full fs, but I do not want to wait until tomorrow, you already mightwant to have a look at this. These two patches are tested on a ASUS machine and worked as expected,but probably may still need some cleanup. There is the problem that the quirks are not executed for deviceswhich are not present. But this is due to the poor ACPI hotplug design,which hopefully will be reworked at some time. Both are against Len's latest ACPI git test branch. Len, if you like these, tell me and I am going to make themcheck_patch clean and I will send them again. Thanks, Thomas --- ACPI: Interface for ACPI drivers to place quirk code which gets executed early Some ACPI drivers need ACPI namespace info before the driver is actuallyloaded.Best examples are legacy vs ACPI driver competitors like ATK0110 vs hwmondrivers and the generic ACPI video driver vs laptop drivers.There may also pop up other examples in the future where this interface willbecome convenient. Signed-off-by: Thomas Renninger diff --git a/drivers/acpi/Makefile b/drivers/acpi/Makefileindex 65d90c7..498cc6f 100644--- a/drivers/acpi/Makefile+++ b/drivers/acpi/Makefile@@ -59,3 +59,4 @@ obj-$(CONFIG_ACPI_HOTPLUG_MEMORY) += acpi_memhotplug.o obj-$(CONFIG_ACPI_PROCFS_POWER) += cm_sbs.o obj-$(CONFIG_ACPI_SBS) += sbshc.o obj-$(CONFIG_ACPI_SBS) += sbs.o+obj-y += quirks.o\ No newline at end of filediff --git a/drivers/acpi/acpi.h b/drivers/acpi/acpi.hnew file mode 100644index 0000000..95e29ca--- /dev/null+++ b/drivers/acpi/acpi.h@@ -0,0 +1,8 @@+#ifndef _LINUX_LOCAL_ACPI_H+#define _LINUX_LOCAL_ACPI_H++#include ++void __init acpi_device_quirks(void);++#endif /* _LINUX_LOCAL_ACPI_H */diff --git a/drivers/acpi/quirks.c b/drivers/acpi/quirks.cnew file mode 100644index 0000000..844480e--- /dev/null+++ b/drivers/acpi/quirks.c@@ -0,0 +1,73 @@+/*+ * Copyright (c) 2008 Thomas Renninger + *+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ *+ * This program is free software; you can redistribute it and/or modify+ * it under the terms of the GNU General Public License as published by+ * the Free Software Foundation; either version 2 of the License, or+ * (at your option) any later version.+ *+ * This program is distributed in the hope that it will be useful,+ * but WITHOUT ANY WARRANTY; without even the implied warranty of+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the+ * GNU General Public License for more details.+ *+ * You should have received a copy of the GNU General Public License+ * along with this program; if not, write to the Free Software+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA+ *+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ */++#include +#include +#include "acpi.h"++struct acpi_device_fixup {+ const char *hid;+ int (*fixup_cb)(struct acpi_device*);+};++/*+ * Add a callback here if your module needs to process code after the ACPI+ * core has parsed the DSDT and initialized all devices, but the code must+ * be processed before module load time.+ * Good candiates are ACPI vs legacy driver decisions which must be made+ * before the driver is loaded.+ */+const struct acpi_device_fixup __initdata fixup_table[] = {+};++static acpi_status __init+acpi_device_quirks_callback(acpi_handle handle,+ u32 level, void *ctxt, void **retv)+{+ acpi_status status;+ struct acpi_device *dev;+ struct acpi_device_id dev_id;+ int x, ret;++ status = acpi_bus_get_device(handle, &dev);+ if (ACPI_FAILURE(status))+ return AE_OK;++ for (x = 0; x < ARRAY_SIZE(fixup_table); x++) {+ memcpy(&dev_id.id, fixup_table[x].hid, ACPI_ID_LEN);+ if (!acpi_match_device_ids(dev, &dev_id)) {+ ret = fixup_table[x].fixup_cb(dev);+ if (ret)+ printk (KERN_ERR "Fixup failed for device: "+ "%s\n", fixup_table[x].hid);+ }+ }+ return AE_OK;+}++void __init acpi_device_quirks(void) {++ acpi_walk_namespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT,+ ACPI_UINT32_MAX,+ acpi_device_quirks_callback,+ NULL, NULL);+}diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.cindex c54d7b6..1c25747 100644--- a/drivers/acpi/scan.c+++ b/drivers/acpi/scan.c@@ -10,6 +10,7 @@ #include #include +#include "acpi.h" #define _COMPONENT ACPI_BUS_COMPONENT ACPI_MODULE_NAME("scan");@@ -1562,6 +1563,8 @@ static int __init acpi_scan_init(void) if (result) acpi_device_unregister(acpi_root, ACPI_BUS_REMOVAL_NORMAL);+ else+ acpi_device_quirks(); Done: return result;{.n++%ݶw{.n+{G{ayʇڙ,jfhz_(階ݢj"mG?&~iOzv^m ?I