From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael Chan" Subject: [PATCH 2.6.12-rc2 11/11] tg3: Add msi test Date: Mon, 18 Apr 2005 01:02:40 -0700 Message-ID: <1113811360.6504.85.camel@rh4> References: <04132005193843.8300@laptop> <1113806551.6504.11.camel@rh4> <1113809864.6504.58.camel@rh4> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-/I08wEcZ8vbjsMdzaBww" Cc: netdev@oss.sgi.com Return-path: To: "John W. Linville" , davem@davemloft.net In-Reply-To: <1113809864.6504.58.camel@rh4> Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com List-Id: netdev.vger.kernel.org --=-/I08wEcZ8vbjsMdzaBww Content-Type: text/plain Content-Transfer-Encoding: 7bit Add MSI test for chips that support MSI. If MSI test fails, it will switch back to INTx mode and will print a message asking the user to report the failure. Signed-off-by: Michael Chan --=-/I08wEcZ8vbjsMdzaBww Content-Disposition: attachment; filename=tg3-111.patch Content-Type: text/x-patch; charset=utf-8; name=tg3-111.patch Content-Transfer-Encoding: base64 ZGlmZiAtTnJ1IDExMC9kcml2ZXJzL25ldC90ZzMuYyAxMTEvZHJpdmVycy9uZXQvdGczLmMNCi0t LSAxMTAvZHJpdmVycy9uZXQvdGczLmMJMjAwNS0wNC0xNSAyMToyNzoxNy4wMDAwMDAwMDAgLTA3 MDANCisrKyAxMTEvZHJpdmVycy9uZXQvdGczLmMJMjAwNS0wNC0xNyAyMzoxMTowNy4wMDAwMDAw MDAgLTA3MDANCkBAIC0yOTk2LDYgKzI5OTYsMjIgQEANCiAJcmV0dXJuIElSUV9SRVRWQUwoaGFu ZGxlZCk7DQogfQ0KIA0KKy8qIElTUiBmb3IgaW50ZXJydXB0IHRlc3QgKi8NCitzdGF0aWMgaXJx cmV0dXJuX3QgdGczX3Rlc3RfaXNyKGludCBpcnEsIHZvaWQgKmRldl9pZCwNCisJCXN0cnVjdCBw dF9yZWdzICpyZWdzKQ0KK3sNCisJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IGRldl9pZDsNCisJ c3RydWN0IHRnMyAqdHAgPSBuZXRkZXZfcHJpdihkZXYpOw0KKwlzdHJ1Y3QgdGczX2h3X3N0YXR1 cyAqc2JsayA9IHRwLT5od19zdGF0dXM7DQorDQorCWlmIChzYmxrLT5zdGF0dXMgJiBTRF9TVEFU VVNfVVBEQVRFRCkgew0KKwkJdHczMl9tYWlsYm94KE1BSUxCT1hfSU5URVJSVVBUXzAgKyBURzNf NjRCSVRfUkVHX0xPVywNCisJCQkgICAgIDB4MDAwMDAwMDEpOw0KKwkJcmV0dXJuIElSUV9SRVRW QUwoMSk7DQorCX0NCisJcmV0dXJuIElSUV9SRVRWQUwoMCk7DQorfQ0KKw0KIHN0YXRpYyBpbnQg dGczX2luaXRfaHcoc3RydWN0IHRnMyAqKTsNCiBzdGF0aWMgaW50IHRnM19oYWx0KHN0cnVjdCB0 ZzMgKik7DQogDQpAQCAtNTc5Niw2ICs1ODEyLDExOCBAQA0KIAlhZGRfdGltZXIoJnRwLT50aW1l cik7DQogfQ0KIA0KK3N0YXRpYyBpbnQgdGczX3Rlc3RfaW50ZXJydXB0KHN0cnVjdCB0ZzMgKnRw KQ0KK3sNCisJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IHRwLT5kZXY7DQorCWludCBlcnIsIGk7 DQorCXUzMiBpbnRfbWJveCA9IDA7DQorDQorCXRnM19kaXNhYmxlX2ludHModHApOw0KKw0KKwlm cmVlX2lycSh0cC0+cGRldi0+aXJxLCBkZXYpOw0KKw0KKwllcnIgPSByZXF1ZXN0X2lycSh0cC0+ cGRldi0+aXJxLCB0ZzNfdGVzdF9pc3IsDQorCQkJICBTQV9TSElSUSwgZGV2LT5uYW1lLCBkZXYp Ow0KKwlpZiAoZXJyKQ0KKwkJcmV0dXJuIGVycjsNCisNCisJdGczX2VuYWJsZV9pbnRzKHRwKTsN CisNCisJdHczMl9mKEhPU1RDQ19NT0RFLCB0cC0+Y29hbGVzY2VfbW9kZSB8IEhPU1RDQ19NT0RF X0VOQUJMRSB8DQorCSAgICAgICBIT1NUQ0NfTU9ERV9OT1cpOw0KKw0KKwlmb3IgKGkgPSAwOyBp IDwgNTsgaSsrKSB7DQorCQlpbnRfbWJveCA9IHRyMzIoTUFJTEJPWF9JTlRFUlJVUFRfMCArIFRH M182NEJJVF9SRUdfTE9XKTsNCisJCWlmIChpbnRfbWJveCAhPSAwKQ0KKwkJCWJyZWFrOw0KKwkJ bXNsZWVwKDEwKTsNCisJfQ0KKw0KKwl0ZzNfZGlzYWJsZV9pbnRzKHRwKTsNCisNCisJZnJlZV9p cnEodHAtPnBkZXYtPmlycSwgZGV2KTsNCisJDQorCWlmICh0cC0+dGczX2ZsYWdzMiAmIFRHM19G TEcyX1VTSU5HX01TSSkNCisJCWVyciA9IHJlcXVlc3RfaXJxKHRwLT5wZGV2LT5pcnEsIHRnM19t c2ksDQorCQkJCSAgMCwgZGV2LT5uYW1lLCBkZXYpOw0KKwllbHNlDQorCQllcnIgPSByZXF1ZXN0 X2lycSh0cC0+cGRldi0+aXJxLCB0ZzNfaW50ZXJydXB0LA0KKwkJCQkgIFNBX1NISVJRLCBkZXYt Pm5hbWUsIGRldik7DQorDQorCWlmIChlcnIpDQorCQlyZXR1cm4gZXJyOw0KKw0KKwlpZiAoaW50 X21ib3ggIT0gMCkNCisJCXJldHVybiAwOw0KKw0KKwlyZXR1cm4gLUVJTzsNCit9DQorDQorLyog UmV0dXJucyAwIGlmIE1TSSB0ZXN0IHN1Y2NlZWRzIG9yIE1TSSB0ZXN0IGZhaWxzIGFuZCBJTlR4 IG1vZGUgaXMNCisgKiBzdWNjZXNzZnVsbHkgcmVzdG9yZWQNCisgKi8NCitzdGF0aWMgaW50IHRn M190ZXN0X21zaShzdHJ1Y3QgdGczICp0cCkNCit7DQorCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYg PSB0cC0+ZGV2Ow0KKwlpbnQgZXJyOw0KKwl1MTYgcGNpX2NtZDsNCisNCisJaWYgKCEodHAtPnRn M19mbGFnczIgJiBURzNfRkxHMl9VU0lOR19NU0kpKQ0KKwkJcmV0dXJuIDA7DQorDQorCS8qIFR1 cm4gb2ZmIFNFUlIgcmVwb3J0aW5nIGluIGNhc2UgTVNJIHRlcm1pbmF0ZXMgd2l0aCBNYXN0ZXIN CisJICogQWJvcnQuDQorCSAqLw0KKwlwY2lfcmVhZF9jb25maWdfd29yZCh0cC0+cGRldiwgUENJ X0NPTU1BTkQsICZwY2lfY21kKTsNCisJcGNpX3dyaXRlX2NvbmZpZ193b3JkKHRwLT5wZGV2LCBQ Q0lfQ09NTUFORCwNCisJCQkgICAgICBwY2lfY21kICYgflBDSV9DT01NQU5EX1NFUlIpOw0KKw0K KwllcnIgPSB0ZzNfdGVzdF9pbnRlcnJ1cHQodHApOw0KKw0KKwlwY2lfd3JpdGVfY29uZmlnX3dv cmQodHAtPnBkZXYsIFBDSV9DT01NQU5ELCBwY2lfY21kKTsNCisNCisJaWYgKCFlcnIpDQorCQly ZXR1cm4gMDsNCisNCisJLyogb3RoZXIgZmFpbHVyZXMgKi8NCisJaWYgKGVyciAhPSAtRUlPKQ0K KwkJcmV0dXJuIGVycjsNCisNCisJLyogTVNJIHRlc3QgZmFpbGVkLCBnbyBiYWNrIHRvIElOVHgg bW9kZSAqLw0KKwlwcmludGsoS0VSTl9XQVJOSU5HIFBGWCAiJXM6IE5vIGludGVycnVwdCB3YXMg Z2VuZXJhdGVkIHVzaW5nIE1TSSwgIg0KKwkgICAgICAgInN3aXRjaGluZyB0byBJTlR4IG1vZGUu IFBsZWFzZSByZXBvcnQgdGhpcyBmYWlsdXJlIHRvICINCisJICAgICAgICJ0aGUgUENJIG1haW50 YWluZXIgYW5kIGluY2x1ZGUgc3lzdGVtIGNoaXBzZXQgaW5mb3JtYXRpb24uXG4iLA0KKwkJICAg ICAgIHRwLT5kZXYtPm5hbWUpOw0KKw0KKwlmcmVlX2lycSh0cC0+cGRldi0+aXJxLCBkZXYpOw0K KwlwY2lfZGlzYWJsZV9tc2kodHAtPnBkZXYpOw0KKw0KKwl0cC0+dGczX2ZsYWdzMiAmPSB+VEcz X0ZMRzJfVVNJTkdfTVNJOw0KKw0KKwllcnIgPSByZXF1ZXN0X2lycSh0cC0+cGRldi0+aXJxLCB0 ZzNfaW50ZXJydXB0LA0KKwkJCSAgU0FfU0hJUlEsIGRldi0+bmFtZSwgZGV2KTsNCisNCisJaWYg KGVycikNCisJCXJldHVybiBlcnI7DQorDQorCS8qIE5lZWQgdG8gcmVzZXQgdGhlIGNoaXAgYmVj YXVzZSB0aGUgTVNJIGN5Y2xlIG1heSBoYXZlIHRlcm1pbmF0ZWQNCisJICogd2l0aCBNYXN0ZXIg QWJvcnQuDQorCSAqLw0KKwlzcGluX2xvY2tfaXJxKCZ0cC0+bG9jayk7DQorCXNwaW5fbG9jaygm dHAtPnR4X2xvY2spOw0KKw0KKwl0ZzNfaGFsdCh0cCk7DQorCWVyciA9IHRnM19pbml0X2h3KHRw KTsNCisNCisJc3Bpbl91bmxvY2soJnRwLT50eF9sb2NrKTsNCisJc3Bpbl91bmxvY2tfaXJxKCZ0 cC0+bG9jayk7DQorDQorCWlmIChlcnIpDQorCQlmcmVlX2lycSh0cC0+cGRldi0+aXJxLCBkZXYp Ow0KKw0KKwlyZXR1cm4gZXJyOw0KK30NCisNCiBzdGF0aWMgaW50IHRnM19vcGVuKHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYpDQogew0KIAlzdHJ1Y3QgdGczICp0cCA9IG5ldGRldl9wcml2KGRldik7 DQpAQCAtNTg2MCw5ICs1OTg4LDYgQEANCiAJCXRwLT50aW1lci5leHBpcmVzID0gamlmZmllcyAr IHRwLT50aW1lcl9vZmZzZXQ7DQogCQl0cC0+dGltZXIuZGF0YSA9ICh1bnNpZ25lZCBsb25nKSB0 cDsNCiAJCXRwLT50aW1lci5mdW5jdGlvbiA9IHRnM190aW1lcjsNCi0JCWFkZF90aW1lcigmdHAt PnRpbWVyKTsNCi0NCi0JCXRwLT50ZzNfZmxhZ3MgfD0gVEczX0ZMQUdfSU5JVF9DT01QTEVURTsN CiAJfQ0KIA0KIAlzcGluX3VubG9jaygmdHAtPnR4X2xvY2spOw0KQEAgLTU4NzgsOSArNjAwMywz MiBAQA0KIAkJcmV0dXJuIGVycjsNCiAJfQ0KIA0KKwlpZiAodHAtPnRnM19mbGFnczIgJiBURzNf RkxHMl9VU0lOR19NU0kpIHsNCisJCWVyciA9IHRnM190ZXN0X21zaSh0cCk7DQorCQlpZiAoZXJy KSB7DQorCQkJc3Bpbl9sb2NrX2lycSgmdHAtPmxvY2spOw0KKwkJCXNwaW5fbG9jaygmdHAtPnR4 X2xvY2spOw0KKw0KKwkJCWlmICh0cC0+dGczX2ZsYWdzMiAmIFRHM19GTEcyX1VTSU5HX01TSSkg ew0KKwkJCQlwY2lfZGlzYWJsZV9tc2kodHAtPnBkZXYpOw0KKwkJCQl0cC0+dGczX2ZsYWdzMiAm PSB+VEczX0ZMRzJfVVNJTkdfTVNJOw0KKwkJCX0NCisJCQl0ZzNfaGFsdCh0cCk7DQorCQkJdGcz X2ZyZWVfcmluZ3ModHApOw0KKwkJCXRnM19mcmVlX2NvbnNpc3RlbnQodHApOw0KKw0KKwkJCXNw aW5fdW5sb2NrKCZ0cC0+dHhfbG9jayk7DQorCQkJc3Bpbl91bmxvY2tfaXJxKCZ0cC0+bG9jayk7 DQorDQorCQkJcmV0dXJuIGVycjsNCisJCX0NCisJfQ0KKw0KIAlzcGluX2xvY2tfaXJxKCZ0cC0+ bG9jayk7DQogCXNwaW5fbG9jaygmdHAtPnR4X2xvY2spOw0KIA0KKwlhZGRfdGltZXIoJnRwLT50 aW1lcik7DQorCXRwLT50ZzNfZmxhZ3MgfD0gVEczX0ZMQUdfSU5JVF9DT01QTEVURTsNCiAJdGcz X2VuYWJsZV9pbnRzKHRwKTsNCiANCiAJc3Bpbl91bmxvY2soJnRwLT50eF9sb2NrKTsNCg== --=-/I08wEcZ8vbjsMdzaBww--