From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: net: lan78xx: fix "enabled interrupts" warninig From: Jisheng Zhang Message-Id: <20190408140301.3dcbccdd@xhacker.debian> Date: Mon, 8 Apr 2019 06:10:58 +0000 To: Woojung Huh , Microchip Linux Driver Support , "David S. Miller" , "netdev@vger.kernel.org" , "linux-usb@vger.kernel.org" , "linux-kernel@vger.kernel.org" List-ID: SSBtZXQgYmVsb3cgd2FybmluZyBvbiByYXNwYmVycnkgcGkgM0IrOgoKWyAgICA0LjgzMzIwN10g LS0tLS0tLS0tLS0tWyBjdXQgaGVyZSBdLS0tLS0tLS0tLS0tClsgICAgNC44MzM0NDJdIGlycSA3 OSBoYW5kbGVyIGlycV9kZWZhdWx0X3ByaW1hcnlfaGFuZGxlcisweDAvMHg4IGVuYWJsZWQgaW50 ZXJydXB0cwpbICAgIDQuODMzNzU4XSBXQVJOSU5HOiBDUFU6IDAgUElEOiAwIGF0IF9faGFuZGxl X2lycV9ldmVudF9wZXJjcHUrMHgxMjQvMHgxNTAKWyAgICA0LjgzNDAzN10gQ1BVOiAwIFBJRDog MCBDb21tOiBzd2FwcGVyLzAgTm90IHRhaW50ZWQgNS4wLjArICM4ClsgICAgNC44MzQyNjZdIEhh cmR3YXJlIG5hbWU6IFJhc3BiZXJyeSBQaSAzIE1vZGVsIEIgUGx1cyBSZXYgMS4zIChEVCkKWyAg ICA0LjgzNDUxMV0gcHN0YXRlOiA2MDAwMDAwNSAoblpDdiBkYWlmIC1QQU4gLVVBTykKWyAgICA0 LjgzNDcwMl0gcGMgOiBfX2hhbmRsZV9pcnFfZXZlbnRfcGVyY3B1KzB4MTI0LzB4MTUwClsgICAg NC44MzQ5MDRdIGxyIDogX19oYW5kbGVfaXJxX2V2ZW50X3BlcmNwdSsweDEyNC8weDE1MApbICAg IDQuODM1MTAzXSBzcCA6IGZmZmZmZmMwMzVmYjU2MDAKWyAgICA0LjgzNTIzNl0geDI5OiBmZmZm ZmZjMDM1ZmI1NjAwIHgyODogZmZmZmZmODAxMDcyMDQ4MApbICAgIDQuODM1NDQ2XSB4Mjc6IDAw MDAwMDAwMDAwMDAwMDEgeDI2OiBmZmZmZmY4MDEwNjUwZmEwClsgICAgNC44MzU2NTVdIHgyNTog ZmZmZmZmODAxMDc1N2VjNiB4MjQ6IGZmZmZmZmMwMzQ3ODRlMDAKWyAgICA0LjgzNTg2NF0geDIz OiAwMDAwMDAwMDAwMDAwMDRmIHgyMjogZmZmZmZmYzAzNWZiNTY4YwpbICAgIDQuODM2MDczXSB4 MjE6IDAwMDAwMDAwMDAwMDAwMDAgeDIwOiAwMDAwMDAwMDAwMDAwMDAyClsgICAgNC44MzYyODJd IHgxOTogZmZmZmZmYzAzMzMwYWYwMCB4MTg6IDAwMDAwMDAwMDAwMDAwMDAKWyAgICA0LjgzNjQ5 NV0geDE3OiAwMDAwMDAwMDAwMDAwMDAwIHgxNjogMDAwMDAwMDAwMDAwMDAwMApbICAgIDQuODM2 NzA0XSB4MTU6IDAwMDAwMDAwMDBhYWFhYWEgeDE0OiA3MjY1NzQ2ZTY5MjA2NDY1ClsgICAgNC44 MzY5MTRdIHgxMzogMDAwMDAwMDAwMDAwMDAwMSB4MTI6IDAwMDAwMDAwZmZmZmZmZmYKWyAgICA0 LjgzNzEyMl0geDExOiBmZmZmZmY4MDEwNTljZjQ4IHgxMDogMDAwMDAwMDAwMDAwMDAwMQpbICAg IDQuODM3MzMxXSB4OSA6IDAwMDAwMDAwMDAwMDAwMDEgeDggOiAwMDAwMDAwMDAwMDAwMDIwClsg ICAgNC44Mzc1NDBdIHg3IDogMDAwMDAwMDAwMDAwMDAwMCB4NiA6IDAwMDAwMDAwMDAwMDAwYjcK WyAgICA0LjgzNzc0OF0geDUgOiBmZmZmZmY4MDEwMmE5ZjUwIHg0IDogMDAwMDAwMDAwMDAwMDAw MQpbICAgIDQuODM3OTU2XSB4MyA6IDAwMDAwMDAwMDAwMDAwMDAgeDIgOiAwMDAwMDAwMDAwMDAw MDA0ClsgICAgNC44MzgxNjVdIHgxIDogZmZmZmZmODAxMDcyMDQ4MCB4MCA6IDAwMDAwMDAwMDAw MDAwNDUKWyAgICA0LjgzODM3NF0gQ2FsbCB0cmFjZToKWyAgICA0LjgzODQ4MF0gIF9faGFuZGxl X2lycV9ldmVudF9wZXJjcHUrMHgxMjQvMHgxNTAKWyAgICA0LjgzODY3Ml0gIGhhbmRsZV9pcnFf ZXZlbnRfcGVyY3B1KzB4MWMvMHg2OApbICAgIDQuODQyMTM0XSAgaGFuZGxlX2lycV9ldmVudCsw eDQ4LzB4NzgKWyAgICA0Ljg0NTUyN10gIGhhbmRsZV9zaW1wbGVfaXJxKzB4OWMvMHhkOApbICAg IDQuODQ4ODkwXSAgZ2VuZXJpY19oYW5kbGVfaXJxKzB4MjgvMHg0MApbICAgIDQuODUyMTg2XSAg aW50cl9jb21wbGV0ZSsweGI0LzB4ZTgKWyAgICA0Ljg1NTMxNV0gIF9fdXNiX2hjZF9naXZlYmFj a191cmIrMHg1OC8weGQwClsgICAgNC44NTgzNjhdICB1c2JfZ2l2ZWJhY2tfdXJiX2JoKzB4OTQv MHhkOApbICAgIDQuODYxMzIzXSAgdGFza2xldF9hY3Rpb25fY29tbW9uLmlzcmEuMSsweDg4LzB4 MTMwClsgICAgNC44NjQyNjhdICB0YXNrbGV0X2hpX2FjdGlvbisweDI0LzB4MzAKWyAgICA0Ljg2 NzExMl0gIF9fZG9fc29mdGlycSsweDExNC8weDIyNApbICAgIDQuODY5OTA3XSAgaXJxX2V4aXQr MHg5Yy8weGI4ClsgICAgNC44NzI3NTJdICBfX2hhbmRsZV9kb21haW5faXJxKzB4NjQvMHhiOApb ICAgIDQuODc1NjA0XSAgYmNtMjgzNl9hcm1faXJxY2hpcF9oYW5kbGVfaXJxKzB4NjAvMHhjMApb ICAgIDQuODc4NTQ0XSAgZWwxX2lycSsweGIwLzB4MTI4ClsgICAgNC44ODE0NzJdICBhcmNoX2Nw dV9pZGxlKzB4MTAvMHgxOApbICAgIDQuODg0NDExXSAgZG9faWRsZSsweDEyYy8weDE0MApbICAg IDQuODg3MzI0XSAgY3B1X3N0YXJ0dXBfZW50cnkrMHgyNC8weDI4ClsgICAgNC44OTAyODVdICBy ZXN0X2luaXQrMHhkMC8weGRjClsgICAgNC44OTMyNDddICBhcmNoX2NhbGxfcmVzdF9pbml0KzB4 Yy8weDE0ClsgICAgNC44OTYyNzFdICBzdGFydF9rZXJuZWwrMHgzMTQvMHgzMjgKWyAgICA0Ljg5 OTI5MV0gLS0tWyBlbmQgdHJhY2UgMTIyZmEwM2ZlM2MyMTkzMCBdLS0tCgpQZXIgbXkgdW5kZXJz dGFuZGluZywgdGhlIHByb3BlciBoYW5kbGluZyBvZiBQSFkgaXJxIGlzIHRvIG1ha2UgdXNlIG9m ClBIWV9JR05PUkVfSU5URVJSVVBUIHRoZW4gY2FsbCBwaHlfbWFjX2ludGVycnVwdCB3aGVuIElO VF9FTlBfUEhZX0lOVAppcyB0cmlnZ2VyZWQuCgpTaWduZWQtb2ZmLWJ5OiBKaXNoZW5nIFpoYW5n IDxKaXNoZW5nLlpoYW5nQHN5bmFwdGljcy5jb20+Ci0tLQogZHJpdmVycy9uZXQvdXNiL2xhbjc4 eHguYyB8IDIwOCArKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDE5MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jIGIvZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYwpp bmRleCAzZDkyZWE2ZmNjMDIuLjI0NmEwZDFiYmM2YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv dXNiL2xhbjc4eHguYworKysgYi9kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jCkBAIC0yMCwxMCAr MjAsNiBAQAogI2luY2x1ZGUgPGxpbnV4L21kaW8uaD4KICNpbmNsdWRlIDxsaW51eC9waHkuaD4K ICNpbmNsdWRlIDxuZXQvaXA2X2NoZWNrc3VtLmg+Ci0jaW5jbHVkZSA8bGludXgvaW50ZXJydXB0 Lmg+Ci0jaW5jbHVkZSA8bGludXgvaXJxZG9tYWluLmg+Ci0jaW5jbHVkZSA8bGludXgvaXJxLmg+ Ci0jaW5jbHVkZSA8bGludXgvaXJxY2hpcC9jaGFpbmVkX2lycS5oPgogI2luY2x1ZGUgPGxpbnV4 L21pY3JvY2hpcHBoeS5oPgogI2luY2x1ZGUgPGxpbnV4L3BoeV9maXhlZC5oPgogI2luY2x1ZGUg PGxpbnV4L29mX21kaW8uaD4KQEAgLTg3LDM4ICs4Myw2IEBACiAvKiBzdGF0aXN0aWMgdXBkYXRl IGludGVydmFsIChtU2VjKSAqLwogI2RlZmluZSBTVEFUX1VQREFURV9USU1FUgkJKDEgKiAxMDAw KQogCi0vKiBkZWZpbmVzIGludGVycnVwdHMgZnJvbSBpbnRlcnJ1cHQgRVAgKi8KLSNkZWZpbmUg TUFYX0lOVF9FUAkJCSgzMikKLSNkZWZpbmUgSU5UX0VQX0lOVEVQCQkJKDMxKQotI2RlZmluZSBJ TlRfRVBfT1RQX1dSX0RPTkUJCSgyOCkKLSNkZWZpbmUgSU5UX0VQX0VFRV9UWF9MUElfU1RBUlQJ CSgyNikKLSNkZWZpbmUgSU5UX0VQX0VFRV9UWF9MUElfU1RPUAkJKDI1KQotI2RlZmluZSBJTlRf RVBfRUVFX1JYX0xQSQkJKDI0KQotI2RlZmluZSBJTlRfRVBfTUFDX1JFU0VUX1RJTUVPVVQJKDIz KQotI2RlZmluZSBJTlRfRVBfUkRGTwkJCSgyMikKLSNkZWZpbmUgSU5UX0VQX1RYRQkJCSgyMSkK LSNkZWZpbmUgSU5UX0VQX1VTQl9TVEFUVVMJCSgyMCkKLSNkZWZpbmUgSU5UX0VQX1RYX0RJUwkJ CSgxOSkKLSNkZWZpbmUgSU5UX0VQX1JYX0RJUwkJCSgxOCkKLSNkZWZpbmUgSU5UX0VQX1BIWQkJ CSgxNykKLSNkZWZpbmUgSU5UX0VQX0RQCQkJKDE2KQotI2RlZmluZSBJTlRfRVBfTUFDX0VSUgkJ CSgxNSkKLSNkZWZpbmUgSU5UX0VQX1RERlUJCQkoMTQpCi0jZGVmaW5lIElOVF9FUF9UREZPCQkJ KDEzKQotI2RlZmluZSBJTlRfRVBfVVRYCQkJKDEyKQotI2RlZmluZSBJTlRfRVBfR1BJT18xMQkJ CSgxMSkKLSNkZWZpbmUgSU5UX0VQX0dQSU9fMTAJCQkoMTApCi0jZGVmaW5lIElOVF9FUF9HUElP XzkJCQkoOSkKLSNkZWZpbmUgSU5UX0VQX0dQSU9fOAkJCSg4KQotI2RlZmluZSBJTlRfRVBfR1BJ T183CQkJKDcpCi0jZGVmaW5lIElOVF9FUF9HUElPXzYJCQkoNikKLSNkZWZpbmUgSU5UX0VQX0dQ SU9fNQkJCSg1KQotI2RlZmluZSBJTlRfRVBfR1BJT180CQkJKDQpCi0jZGVmaW5lIElOVF9FUF9H UElPXzMJCQkoMykKLSNkZWZpbmUgSU5UX0VQX0dQSU9fMgkJCSgyKQotI2RlZmluZSBJTlRfRVBf R1BJT18xCQkJKDEpCi0jZGVmaW5lIElOVF9FUF9HUElPXzAJCQkoMCkKLQogc3RhdGljIGNvbnN0 IGNoYXIgbGFuNzh4eF9nc3RyaW5nc1tdW0VUSF9HU1RSSU5HX0xFTl0gPSB7CiAJIlJYIEZDUyBF cnJvcnMiLAogCSJSWCBBbGlnbm1lbnQgRXJyb3JzIiwKQEAgLTM1MCwxNSArMzE0LDYgQEAgc3Ry dWN0IHN0YXRzdGFnZSB7CiAJc3RydWN0IGxhbjc4eHhfc3RhdHN0YWdlNjQJY3Vycl9zdGF0Owog fTsKIAotc3RydWN0IGlycV9kb21haW5fZGF0YSB7Ci0Jc3RydWN0IGlycV9kb21haW4JKmlycWRv bWFpbjsKLQl1bnNpZ25lZCBpbnQJCXBoeWlycTsKLQlzdHJ1Y3QgaXJxX2NoaXAJCSppcnFjaGlw OwotCWlycV9mbG93X2hhbmRsZXJfdAlpcnFfaGFuZGxlcjsKLQl1MzIJCQlpcnFlbmFibGU7Ci0J c3RydWN0IG11dGV4CQlpcnFfbG9jazsJCS8qIGZvciBpcnEgYnVzIGFjY2VzcyAqLwotfTsKLQog c3RydWN0IGxhbjc4eHhfbmV0IHsKIAlzdHJ1Y3QgbmV0X2RldmljZQkqbmV0OwogCXN0cnVjdCB1 c2JfZGV2aWNlCSp1ZGV2OwpAQCAtNDE1LDggKzM3MCw2IEBAIHN0cnVjdCBsYW43OHh4X25ldCB7 CiAKIAlpbnQJCQlkZWx0YTsKIAlzdHJ1Y3Qgc3RhdHN0YWdlCXN0YXRzOwotCi0Jc3RydWN0IGly cV9kb21haW5fZGF0YQlkb21haW5fZGF0YTsKIH07CiAKIC8qIGRlZmluZSBleHRlcm5hbCBwaHkg aWQgKi8KQEAgLTEyNTEsNiArMTIwNCw3IEBAIHN0YXRpYyB2b2lkIGxhbjc4eHhfZGVmZXJfa2V2 ZW50KHN0cnVjdCBsYW43OHh4X25ldCAqZGV2LCBpbnQgd29yaykKIHN0YXRpYyB2b2lkIGxhbjc4 eHhfc3RhdHVzKHN0cnVjdCBsYW43OHh4X25ldCAqZGV2LCBzdHJ1Y3QgdXJiICp1cmIpCiB7CiAJ dTMyIGludGRhdGE7CisJc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiA9IGRldi0+bmV0LT5waHlk ZXY7CiAKIAlpZiAodXJiLT5hY3R1YWxfbGVuZ3RoICE9IDQpIHsKIAkJbmV0ZGV2X3dhcm4oZGV2 LT5uZXQsCkBAIC0xMjY0LDkgKzEyMTgsNyBAQCBzdGF0aWMgdm9pZCBsYW43OHh4X3N0YXR1cyhz dHJ1Y3QgbGFuNzh4eF9uZXQgKmRldiwgc3RydWN0IHVyYiAqdXJiKQogCWlmIChpbnRkYXRhICYg SU5UX0VOUF9QSFlfSU5UKSB7CiAJCW5ldGlmX2RiZyhkZXYsIGxpbmssIGRldi0+bmV0LCAiUEhZ IElOVFI6IDB4JTA4eFxuIiwgaW50ZGF0YSk7CiAJCWxhbjc4eHhfZGVmZXJfa2V2ZW50KGRldiwg RVZFTlRfTElOS19SRVNFVCk7Ci0KLQkJaWYgKGRldi0+ZG9tYWluX2RhdGEucGh5aXJxID4gMCkK LQkJCWdlbmVyaWNfaGFuZGxlX2lycShkZXYtPmRvbWFpbl9kYXRhLnBoeWlycSk7CisJCXBoeV9t YWNfaW50ZXJydXB0KHBoeWRldik7CiAJfSBlbHNlCiAJCW5ldGRldl93YXJuKGRldi0+bmV0LAog CQkJICAgICJ1bmV4cGVjdGVkIGludGVycnVwdDogMHglMDh4XG4iLCBpbnRkYXRhKTsKQEAgLTE4 NzUsMTI3ICsxODI3LDYgQEAgc3RhdGljIHZvaWQgbGFuNzh4eF9saW5rX3N0YXR1c19jaGFuZ2Uo c3RydWN0IG5ldF9kZXZpY2UgKm5ldCkKIAl9CiB9CiAKLXN0YXRpYyBpbnQgaXJxX21hcChzdHJ1 Y3QgaXJxX2RvbWFpbiAqZCwgdW5zaWduZWQgaW50IGlycSwKLQkJICAgaXJxX2h3X251bWJlcl90 IGh3aXJxKQotewotCXN0cnVjdCBpcnFfZG9tYWluX2RhdGEgKmRhdGEgPSBkLT5ob3N0X2RhdGE7 Ci0KLQlpcnFfc2V0X2NoaXBfZGF0YShpcnEsIGRhdGEpOwotCWlycV9zZXRfY2hpcF9hbmRfaGFu ZGxlcihpcnEsIGRhdGEtPmlycWNoaXAsIGRhdGEtPmlycV9oYW5kbGVyKTsKLQlpcnFfc2V0X25v cHJvYmUoaXJxKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBpcnFfdW5tYXAoc3Ry dWN0IGlycV9kb21haW4gKmQsIHVuc2lnbmVkIGludCBpcnEpCi17Ci0JaXJxX3NldF9jaGlwX2Fu ZF9oYW5kbGVyKGlycSwgTlVMTCwgTlVMTCk7Ci0JaXJxX3NldF9jaGlwX2RhdGEoaXJxLCBOVUxM KTsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBpcnFfZG9tYWluX29wcyBjaGlwX2RvbWFpbl9v cHMgPSB7Ci0JLm1hcAk9IGlycV9tYXAsCi0JLnVubWFwCT0gaXJxX3VubWFwLAotfTsKLQotc3Rh dGljIHZvaWQgbGFuNzh4eF9pcnFfbWFzayhzdHJ1Y3QgaXJxX2RhdGEgKmlycWQpCi17Ci0Jc3Ry dWN0IGlycV9kb21haW5fZGF0YSAqZGF0YSA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGly cWQpOwotCi0JZGF0YS0+aXJxZW5hYmxlICY9IH5CSVQoaXJxZF90b19od2lycShpcnFkKSk7Ci19 Ci0KLXN0YXRpYyB2b2lkIGxhbjc4eHhfaXJxX3VubWFzayhzdHJ1Y3QgaXJxX2RhdGEgKmlycWQp Ci17Ci0Jc3RydWN0IGlycV9kb21haW5fZGF0YSAqZGF0YSA9IGlycV9kYXRhX2dldF9pcnFfY2hp cF9kYXRhKGlycWQpOwotCi0JZGF0YS0+aXJxZW5hYmxlIHw9IEJJVChpcnFkX3RvX2h3aXJxKGly cWQpKTsKLX0KLQotc3RhdGljIHZvaWQgbGFuNzh4eF9pcnFfYnVzX2xvY2soc3RydWN0IGlycV9k YXRhICppcnFkKQotewotCXN0cnVjdCBpcnFfZG9tYWluX2RhdGEgKmRhdGEgPSBpcnFfZGF0YV9n ZXRfaXJxX2NoaXBfZGF0YShpcnFkKTsKLQotCW11dGV4X2xvY2soJmRhdGEtPmlycV9sb2NrKTsK LX0KLQotc3RhdGljIHZvaWQgbGFuNzh4eF9pcnFfYnVzX3N5bmNfdW5sb2NrKHN0cnVjdCBpcnFf ZGF0YSAqaXJxZCkKLXsKLQlzdHJ1Y3QgaXJxX2RvbWFpbl9kYXRhICpkYXRhID0gaXJxX2RhdGFf Z2V0X2lycV9jaGlwX2RhdGEoaXJxZCk7Ci0Jc3RydWN0IGxhbjc4eHhfbmV0ICpkZXYgPQotCQkJ Y29udGFpbmVyX29mKGRhdGEsIHN0cnVjdCBsYW43OHh4X25ldCwgZG9tYWluX2RhdGEpOwotCXUz MiBidWY7Ci0JaW50IHJldDsKLQotCS8qIGNhbGwgcmVnaXN0ZXIgYWNjZXNzIGhlcmUgYmVjYXVz ZSBpcnFfYnVzX2xvY2sgJiBpcnFfYnVzX3N5bmNfdW5sb2NrCi0JICogYXJlIG9ubHkgdHdvIGNh bGxiYWNrcyBleGVjdXRlZCBpbiBub24tYXRvbWljIGNvbnRleC4KLQkgKi8KLQlyZXQgPSBsYW43 OHh4X3JlYWRfcmVnKGRldiwgSU5UX0VQX0NUTCwgJmJ1Zik7Ci0JaWYgKGJ1ZiAhPSBkYXRhLT5p cnFlbmFibGUpCi0JCXJldCA9IGxhbjc4eHhfd3JpdGVfcmVnKGRldiwgSU5UX0VQX0NUTCwgZGF0 YS0+aXJxZW5hYmxlKTsKLQotCW11dGV4X3VubG9jaygmZGF0YS0+aXJxX2xvY2spOwotfQotCi1z dGF0aWMgc3RydWN0IGlycV9jaGlwIGxhbjc4eHhfaXJxY2hpcCA9IHsKLQkubmFtZQkJCT0gImxh bjc4eHgtaXJxcyIsCi0JLmlycV9tYXNrCQk9IGxhbjc4eHhfaXJxX21hc2ssCi0JLmlycV91bm1h c2sJCT0gbGFuNzh4eF9pcnFfdW5tYXNrLAotCS5pcnFfYnVzX2xvY2sJCT0gbGFuNzh4eF9pcnFf YnVzX2xvY2ssCi0JLmlycV9idXNfc3luY191bmxvY2sJPSBsYW43OHh4X2lycV9idXNfc3luY191 bmxvY2ssCi19OwotCi1zdGF0aWMgaW50IGxhbjc4eHhfc2V0dXBfaXJxX2RvbWFpbihzdHJ1Y3Qg bGFuNzh4eF9uZXQgKmRldikKLXsKLQlzdHJ1Y3QgZGV2aWNlX25vZGUgKm9mX25vZGU7Ci0Jc3Ry dWN0IGlycV9kb21haW4gKmlycWRvbWFpbjsKLQl1bnNpZ25lZCBpbnQgaXJxbWFwID0gMDsKLQl1 MzIgYnVmOwotCWludCByZXQgPSAwOwotCi0Jb2Zfbm9kZSA9IGRldi0+dWRldi0+ZGV2LnBhcmVu dC0+b2Zfbm9kZTsKLQotCW11dGV4X2luaXQoJmRldi0+ZG9tYWluX2RhdGEuaXJxX2xvY2spOwot Ci0JbGFuNzh4eF9yZWFkX3JlZyhkZXYsIElOVF9FUF9DVEwsICZidWYpOwotCWRldi0+ZG9tYWlu X2RhdGEuaXJxZW5hYmxlID0gYnVmOwotCi0JZGV2LT5kb21haW5fZGF0YS5pcnFjaGlwID0gJmxh bjc4eHhfaXJxY2hpcDsKLQlkZXYtPmRvbWFpbl9kYXRhLmlycV9oYW5kbGVyID0gaGFuZGxlX3Np bXBsZV9pcnE7Ci0KLQlpcnFkb21haW4gPSBpcnFfZG9tYWluX2FkZF9zaW1wbGUob2Zfbm9kZSwg TUFYX0lOVF9FUCwgMCwKLQkJCQkJICAmY2hpcF9kb21haW5fb3BzLCAmZGV2LT5kb21haW5fZGF0 YSk7Ci0JaWYgKGlycWRvbWFpbikgewotCQkvKiBjcmVhdGUgbWFwcGluZyBmb3IgUEhZIGludGVy cnVwdCAqLwotCQlpcnFtYXAgPSBpcnFfY3JlYXRlX21hcHBpbmcoaXJxZG9tYWluLCBJTlRfRVBf UEhZKTsKLQkJaWYgKCFpcnFtYXApIHsKLQkJCWlycV9kb21haW5fcmVtb3ZlKGlycWRvbWFpbik7 Ci0KLQkJCWlycWRvbWFpbiA9IE5VTEw7Ci0JCQlyZXQgPSAtRUlOVkFMOwotCQl9Ci0JfSBlbHNl IHsKLQkJcmV0ID0gLUVJTlZBTDsKLQl9Ci0KLQlkZXYtPmRvbWFpbl9kYXRhLmlycWRvbWFpbiA9 IGlycWRvbWFpbjsKLQlkZXYtPmRvbWFpbl9kYXRhLnBoeWlycSA9IGlycW1hcDsKLQotCXJldHVy biByZXQ7Ci19Ci0KLXN0YXRpYyB2b2lkIGxhbjc4eHhfcmVtb3ZlX2lycV9kb21haW4oc3RydWN0 IGxhbjc4eHhfbmV0ICpkZXYpCi17Ci0JaWYgKGRldi0+ZG9tYWluX2RhdGEucGh5aXJxID4gMCkg ewotCQlpcnFfZGlzcG9zZV9tYXBwaW5nKGRldi0+ZG9tYWluX2RhdGEucGh5aXJxKTsKLQotCQlp ZiAoZGV2LT5kb21haW5fZGF0YS5pcnFkb21haW4pCi0JCQlpcnFfZG9tYWluX3JlbW92ZShkZXYt PmRvbWFpbl9kYXRhLmlycWRvbWFpbik7Ci0JfQotCWRldi0+ZG9tYWluX2RhdGEucGh5aXJxID0g MDsKLQlkZXYtPmRvbWFpbl9kYXRhLmlycWRvbWFpbiA9IE5VTEw7Ci19Ci0KIHN0YXRpYyBpbnQg bGFuODgzNV9maXh1cChzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQogewogCWludCBidWY7CkBA IC0yMTI0LDE2ICsxOTU1LDE1IEBAIHN0YXRpYyBpbnQgbGFuNzh4eF9waHlfaW5pdChzdHJ1Y3Qg bGFuNzh4eF9uZXQgKmRldikKIAkJcmV0dXJuIC1FSU87CiAJfQogCi0JLyogaWYgcGh5aXJxIGlz IG5vdCBzZXQsIHVzZSBwb2xsaW5nIG1vZGUgaW4gcGh5bGliICovCi0JaWYgKGRldi0+ZG9tYWlu X2RhdGEucGh5aXJxID4gMCkKLQkJcGh5ZGV2LT5pcnEgPSBkZXYtPmRvbWFpbl9kYXRhLnBoeWly cTsKLQllbHNlCi0JCXBoeWRldi0+aXJxID0gMDsKLQluZXRkZXZfZGJnKGRldi0+bmV0LCAicGh5 ZGV2LT5pcnEgPSAlZFxuIiwgcGh5ZGV2LT5pcnEpOwotCiAJLyogc2V0IHRvIEFVVE9NRElYICov CiAJcGh5ZGV2LT5tZGl4ID0gRVRIX1RQX01ESV9BVVRPOwogCisJcmV0ID0gcGh5X3JlYWQocGh5 ZGV2LCBMQU44OFhYX0lOVF9TVFMpOworCXJldCA9IHBoeV93cml0ZShwaHlkZXYsIExBTjg4WFhf SU5UX01BU0ssCisJCQlMQU44OFhYX0lOVF9NQVNLX01ESU5UUElOX0VOXyB8CisJCQlMQU44OFhY X0lOVF9NQVNLX0xJTktfQ0hBTkdFXyk7CisJcGh5ZGV2LT5pcnEgPSBQSFlfSUdOT1JFX0lOVEVS UlVQVDsKKwogCXJldCA9IHBoeV9jb25uZWN0X2RpcmVjdChkZXYtPm5ldCwgcGh5ZGV2LAogCQkJ CSBsYW43OHh4X2xpbmtfc3RhdHVzX2NoYW5nZSwKIAkJCQkgZGV2LT5pbnRlcmZhY2UpOwpAQCAt MjU3MSw2ICsyNDAxLDExIEBAIHN0YXRpYyBpbnQgbGFuNzh4eF9yZXNldChzdHJ1Y3QgbGFuNzh4 eF9uZXQgKmRldikKIAl9CiAJcmV0ID0gbGFuNzh4eF93cml0ZV9yZWcoZGV2LCBNQUNfQ1IsIGJ1 Zik7CiAKKwkvKiBlbmFibGUgUEhZIGludGVycnVwdHMgKi8KKwlyZXQgPSBsYW43OHh4X3JlYWRf cmVnKGRldiwgSU5UX0VQX0NUTCwgJmJ1Zik7CisJYnVmIHw9IElOVF9FTlBfUEhZX0lOVDsKKwly ZXQgPSBsYW43OHh4X3dyaXRlX3JlZyhkZXYsIElOVF9FUF9DVEwsIGJ1Zik7CisKIAlyZXQgPSBs YW43OHh4X3JlYWRfcmVnKGRldiwgTUFDX1RYLCAmYnVmKTsKIAlidWYgfD0gTUFDX1RYX1RYRU5f OwogCXJldCA9IGxhbjc4eHhfd3JpdGVfcmVnKGRldiwgTUFDX1RYLCBidWYpOwpAQCAtMjk4MSwx MyArMjgxNiw2IEBAIHN0YXRpYyBpbnQgbGFuNzh4eF9iaW5kKHN0cnVjdCBsYW43OHh4X25ldCAq ZGV2LCBzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZikKIAogCWRldi0+bmV0LT5od19mZWF0dXJl cyA9IGRldi0+bmV0LT5mZWF0dXJlczsKIAotCXJldCA9IGxhbjc4eHhfc2V0dXBfaXJxX2RvbWFp bihkZXYpOwotCWlmIChyZXQgPCAwKSB7Ci0JCW5ldGRldl93YXJuKGRldi0+bmV0LAotCQkJICAg ICJsYW43OHh4X3NldHVwX2lycV9kb21haW4oKSBmYWlsZWQgOiAlZCIsIHJldCk7Ci0JCWdvdG8g b3V0MTsKLQl9Ci0KIAlkZXYtPm5ldC0+aGFyZF9oZWFkZXJfbGVuICs9IFRYX09WRVJIRUFEOwog CWRldi0+aGFyZF9tdHUgPSBkZXYtPm5ldC0+bXR1ICsgZGV2LT5uZXQtPmhhcmRfaGVhZGVyX2xl bjsKIApAQCAtMjk5NSwxMyArMjgyMywxMyBAQCBzdGF0aWMgaW50IGxhbjc4eHhfYmluZChzdHJ1 Y3QgbGFuNzh4eF9uZXQgKmRldiwgc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpCiAJcmV0ID0g bGFuNzh4eF9yZXNldChkZXYpOwogCWlmIChyZXQpIHsKIAkJbmV0ZGV2X3dhcm4oZGV2LT5uZXQs ICJSZWdpc3RlcnMgSU5JVCBGQUlMRUQuLi4uIik7Ci0JCWdvdG8gb3V0MjsKKwkJZ290byBvdXQ7 CiAJfQogCiAJcmV0ID0gbGFuNzh4eF9tZGlvX2luaXQoZGV2KTsKIAlpZiAocmV0KSB7CiAJCW5l dGRldl93YXJuKGRldi0+bmV0LCAiTURJTyBJTklUIEZBSUxFRC4uLi4uIik7Ci0JCWdvdG8gb3V0 MjsKKwkJZ290byBvdXQ7CiAJfQogCiAJZGV2LT5uZXQtPmZsYWdzIHw9IElGRl9NVUxUSUNBU1Q7 CkBAIC0zMDEwLDEwICsyODM4LDcgQEAgc3RhdGljIGludCBsYW43OHh4X2JpbmQoc3RydWN0IGxh bjc4eHhfbmV0ICpkZXYsIHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmKQogCiAJcmV0dXJuIHJl dDsKIAotb3V0MjoKLQlsYW43OHh4X3JlbW92ZV9pcnFfZG9tYWluKGRldik7Ci0KLW91dDE6Citv dXQ6CiAJbmV0ZGV2X3dhcm4oZGV2LT5uZXQsICJCaW5kIHJvdXRpbmUgRkFJTEVEIik7CiAJY2Fu Y2VsX3dvcmtfc3luYygmcGRhdGEtPnNldF9tdWx0aWNhc3QpOwogCWNhbmNlbF93b3JrX3N5bmMo JnBkYXRhLT5zZXRfdmxhbik7CkBAIC0zMDI1LDcgKzI4NTAsNiBAQCBzdGF0aWMgdm9pZCBsYW43 OHh4X3VuYmluZChzdHJ1Y3QgbGFuNzh4eF9uZXQgKmRldiwgc3RydWN0IHVzYl9pbnRlcmZhY2Ug KmludGYpCiB7CiAJc3RydWN0IGxhbjc4eHhfcHJpdiAqcGRhdGEgPSAoc3RydWN0IGxhbjc4eHhf cHJpdiAqKShkZXYtPmRhdGFbMF0pOwogCi0JbGFuNzh4eF9yZW1vdmVfaXJxX2RvbWFpbihkZXYp OwogCiAJbGFuNzh4eF9yZW1vdmVfbWRpbyhkZXYpOwogCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,UNWANTED_LANGUAGE_BODY,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E6B40C282DD for ; Mon, 8 Apr 2019 06:11:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id ABD2F20870 for ; Mon, 8 Apr 2019 06:11:13 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Synaptics.onmicrosoft.com header.i=@Synaptics.onmicrosoft.com header.b="uyPfsns6" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725984AbfDHGLG (ORCPT ); Mon, 8 Apr 2019 02:11:06 -0400 Received: from mail-eopbgr710053.outbound.protection.outlook.com ([40.107.71.53]:34222 "EHLO NAM05-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725871AbfDHGLG (ORCPT ); Mon, 8 Apr 2019 02:11:06 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Synaptics.onmicrosoft.com; s=selector1-synaptics-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MYkFD2Jq4mL6BGDgRBkBhU7dppL7qnzM8I0IUmfYLYg=; b=uyPfsns6cNCSwT1JC5gKpxelrZWftrGGKznoJ9d6eCfoBcqHb09vm6xrJ9OdqjKuoybEongMhKzuW4f5XraphW29EaMfVpSvkqwngMUuGevEhqqKTvZWRcQTnR9jKMwq6WC0EBuBc6jWm8MbyolfbwKHb0tax7fNT+24dbHtEfY= Received: from BYAPR03MB4773.namprd03.prod.outlook.com (20.179.92.152) by BYAPR03MB3510.namprd03.prod.outlook.com (52.135.213.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1771.16; Mon, 8 Apr 2019 06:10:59 +0000 Received: from BYAPR03MB4773.namprd03.prod.outlook.com ([fe80::1a8:1bc4:174b:472b]) by BYAPR03MB4773.namprd03.prod.outlook.com ([fe80::1a8:1bc4:174b:472b%2]) with mapi id 15.20.1771.016; Mon, 8 Apr 2019 06:10:59 +0000 From: Jisheng Zhang To: Woojung Huh , Microchip Linux Driver Support , "David S. Miller" , "netdev@vger.kernel.org" , "linux-usb@vger.kernel.org" , "linux-kernel@vger.kernel.org" Subject: [PATCH] net: lan78xx: fix "enabled interrupts" warninig Thread-Topic: [PATCH] net: lan78xx: fix "enabled interrupts" warninig Thread-Index: AQHU7dHV0yp6Fa7I5USr12hPuITf3g== Date: Mon, 8 Apr 2019 06:10:58 +0000 Message-ID: <20190408140301.3dcbccdd@xhacker.debian> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [124.74.246.114] x-clientproxiedby: TYAPR01CA0019.jpnprd01.prod.outlook.com (2603:1096:404::31) To BYAPR03MB4773.namprd03.prod.outlook.com (2603:10b6:a03:134::24) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Jisheng.Zhang@synaptics.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-pc-linux-gnu) x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1758977c-6a37-4436-93eb-08d6bbe8f7e9 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600139)(711020)(4605104)(2017052603328)(7193020);SRVR:BYAPR03MB3510; x-ms-traffictypediagnostic: BYAPR03MB3510: x-microsoft-antispam-prvs: x-forefront-prvs: 0001227049 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(346002)(396003)(376002)(39850400004)(366004)(136003)(199004)(189003)(14444005)(30864003)(9686003)(97736004)(26005)(486006)(256004)(8676002)(86362001)(2201001)(102836004)(5660300002)(105586002)(71200400001)(71190400001)(6486002)(2501003)(6436002)(53936002)(52116002)(25786009)(1076003)(66066001)(2906002)(476003)(99286004)(186003)(106356001)(81156014)(81166006)(50226002)(8936002)(6512007)(68736007)(3846002)(6506007)(110136005)(478600001)(14454004)(72206003)(305945005)(316002)(6116002)(386003)(7736002)(39210200001);DIR:OUT;SFP:1101;SCL:1;SRVR:BYAPR03MB3510;H:BYAPR03MB4773.namprd03.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:0;MX:1; received-spf: None (protection.outlook.com: synaptics.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: +xTJ62OoFR8Egoz2hYacrrgZwmoifORrcPZ/3Lu4wNk5w5EI9IzdA8lYxYEUYIRzHxTG/a0UzNTYz234MgpDKM4KTualeukkw6mQWxUepCJjwXw6h6tRSwFV6A9kzt9vpqh29ExFKCMUISu9koEuUnxGCJoKPhp5cC4YQnmMXddbsVvcBYJN7qOUOcGNsepQfFHdh8ctVdl5E0uOFpEkvNr8ZXWr4r6ZlC+j7RDbNAuKCqB8TPNb7z8vQYzO48a/Knf/TdwNm427JfhdtawNHmHcqXPPMevffauYGs3MYWfA9D4jdzUr3l24/081gqPGZqDwVrE7hn42tZgz2hhk7gN8KicA2rtlL6JP1IJdKqx2SIX03tZqxSpnLNOAnys/tgon8FWZvpoBB8bZKYGjZSSfMjDVLXwjDTSbLVECI8U= Content-Type: text/plain; charset="UTF-8" Content-ID: <11353D8539B5DA4F97BCB9F418629B6A@namprd03.prod.outlook.com> Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: synaptics.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1758977c-6a37-4436-93eb-08d6bbe8f7e9 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Apr 2019 06:10:58.9853 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 335d1fbc-2124-4173-9863-17e7051a2a0e X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR03MB3510 Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Message-ID: <20190408061058.3wV6nVB83rx--FayGSgqUR_G9np70kr2ENnl2WcgPC4@z> I met below warning on raspberry pi 3B+: [ 4.833207] ------------[ cut here ]------------ [ 4.833442] irq 79 handler irq_default_primary_handler+0x0/0x8 enabled i= nterrupts [ 4.833758] WARNING: CPU: 0 PID: 0 at __handle_irq_event_percpu+0x124/0x= 150 [ 4.834037] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.0.0+ #8 [ 4.834266] Hardware name: Raspberry Pi 3 Model B Plus Rev 1.3 (DT) [ 4.834511] pstate: 60000005 (nZCv daif -PAN -UAO) [ 4.834702] pc : __handle_irq_event_percpu+0x124/0x150 [ 4.834904] lr : __handle_irq_event_percpu+0x124/0x150 [ 4.835103] sp : ffffffc035fb5600 [ 4.835236] x29: ffffffc035fb5600 x28: ffffff8010720480 [ 4.835446] x27: 0000000000000001 x26: ffffff8010650fa0 [ 4.835655] x25: ffffff8010757ec6 x24: ffffffc034784e00 [ 4.835864] x23: 000000000000004f x22: ffffffc035fb568c [ 4.836073] x21: 0000000000000000 x20: 0000000000000002 [ 4.836282] x19: ffffffc03330af00 x18: 0000000000000000 [ 4.836495] x17: 0000000000000000 x16: 0000000000000000 [ 4.836704] x15: 0000000000aaaaaa x14: 7265746e69206465 [ 4.836914] x13: 0000000000000001 x12: 00000000ffffffff [ 4.837122] x11: ffffff801059cf48 x10: 0000000000000001 [ 4.837331] x9 : 0000000000000001 x8 : 0000000000000020 [ 4.837540] x7 : 0000000000000000 x6 : 00000000000000b7 [ 4.837748] x5 : ffffff80102a9f50 x4 : 0000000000000001 [ 4.837956] x3 : 0000000000000000 x2 : 0000000000000004 [ 4.838165] x1 : ffffff8010720480 x0 : 0000000000000045 [ 4.838374] Call trace: [ 4.838480] __handle_irq_event_percpu+0x124/0x150 [ 4.838672] handle_irq_event_percpu+0x1c/0x68 [ 4.842134] handle_irq_event+0x48/0x78 [ 4.845527] handle_simple_irq+0x9c/0xd8 [ 4.848890] generic_handle_irq+0x28/0x40 [ 4.852186] intr_complete+0xb4/0xe8 [ 4.855315] __usb_hcd_giveback_urb+0x58/0xd0 [ 4.858368] usb_giveback_urb_bh+0x94/0xd8 [ 4.861323] tasklet_action_common.isra.1+0x88/0x130 [ 4.864268] tasklet_hi_action+0x24/0x30 [ 4.867112] __do_softirq+0x114/0x224 [ 4.869907] irq_exit+0x9c/0xb8 [ 4.872752] __handle_domain_irq+0x64/0xb8 [ 4.875604] bcm2836_arm_irqchip_handle_irq+0x60/0xc0 [ 4.878544] el1_irq+0xb0/0x128 [ 4.881472] arch_cpu_idle+0x10/0x18 [ 4.884411] do_idle+0x12c/0x140 [ 4.887324] cpu_startup_entry+0x24/0x28 [ 4.890285] rest_init+0xd0/0xdc [ 4.893247] arch_call_rest_init+0xc/0x14 [ 4.896271] start_kernel+0x314/0x328 [ 4.899291] ---[ end trace 122fa03fe3c21930 ]--- Per my understanding, the proper handling of PHY irq is to make use of PHY_IGNORE_INTERRUPT then call phy_mac_interrupt when INT_ENP_PHY_INT is triggered. Signed-off-by: Jisheng Zhang --- drivers/net/usb/lan78xx.c | 208 +++----------------------------------- 1 file changed, 16 insertions(+), 192 deletions(-) diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c index 3d92ea6fcc02..246a0d1bbc6c 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -20,10 +20,6 @@ #include #include #include -#include -#include -#include -#include #include #include #include @@ -87,38 +83,6 @@ /* statistic update interval (mSec) */ #define STAT_UPDATE_TIMER (1 * 1000) =20 -/* defines interrupts from interrupt EP */ -#define MAX_INT_EP (32) -#define INT_EP_INTEP (31) -#define INT_EP_OTP_WR_DONE (28) -#define INT_EP_EEE_TX_LPI_START (26) -#define INT_EP_EEE_TX_LPI_STOP (25) -#define INT_EP_EEE_RX_LPI (24) -#define INT_EP_MAC_RESET_TIMEOUT (23) -#define INT_EP_RDFO (22) -#define INT_EP_TXE (21) -#define INT_EP_USB_STATUS (20) -#define INT_EP_TX_DIS (19) -#define INT_EP_RX_DIS (18) -#define INT_EP_PHY (17) -#define INT_EP_DP (16) -#define INT_EP_MAC_ERR (15) -#define INT_EP_TDFU (14) -#define INT_EP_TDFO (13) -#define INT_EP_UTX (12) -#define INT_EP_GPIO_11 (11) -#define INT_EP_GPIO_10 (10) -#define INT_EP_GPIO_9 (9) -#define INT_EP_GPIO_8 (8) -#define INT_EP_GPIO_7 (7) -#define INT_EP_GPIO_6 (6) -#define INT_EP_GPIO_5 (5) -#define INT_EP_GPIO_4 (4) -#define INT_EP_GPIO_3 (3) -#define INT_EP_GPIO_2 (2) -#define INT_EP_GPIO_1 (1) -#define INT_EP_GPIO_0 (0) - static const char lan78xx_gstrings[][ETH_GSTRING_LEN] =3D { "RX FCS Errors", "RX Alignment Errors", @@ -350,15 +314,6 @@ struct statstage { struct lan78xx_statstage64 curr_stat; }; =20 -struct irq_domain_data { - struct irq_domain *irqdomain; - unsigned int phyirq; - struct irq_chip *irqchip; - irq_flow_handler_t irq_handler; - u32 irqenable; - struct mutex irq_lock; /* for irq bus access */ -}; - struct lan78xx_net { struct net_device *net; struct usb_device *udev; @@ -415,8 +370,6 @@ struct lan78xx_net { =20 int delta; struct statstage stats; - - struct irq_domain_data domain_data; }; =20 /* define external phy id */ @@ -1251,6 +1204,7 @@ static void lan78xx_defer_kevent(struct lan78xx_net *= dev, int work) static void lan78xx_status(struct lan78xx_net *dev, struct urb *urb) { u32 intdata; + struct phy_device *phydev =3D dev->net->phydev; =20 if (urb->actual_length !=3D 4) { netdev_warn(dev->net, @@ -1264,9 +1218,7 @@ static void lan78xx_status(struct lan78xx_net *dev, s= truct urb *urb) if (intdata & INT_ENP_PHY_INT) { netif_dbg(dev, link, dev->net, "PHY INTR: 0x%08x\n", intdata); lan78xx_defer_kevent(dev, EVENT_LINK_RESET); - - if (dev->domain_data.phyirq > 0) - generic_handle_irq(dev->domain_data.phyirq); + phy_mac_interrupt(phydev); } else netdev_warn(dev->net, "unexpected interrupt: 0x%08x\n", intdata); @@ -1875,127 +1827,6 @@ static void lan78xx_link_status_change(struct net_d= evice *net) } } =20 -static int irq_map(struct irq_domain *d, unsigned int irq, - irq_hw_number_t hwirq) -{ - struct irq_domain_data *data =3D d->host_data; - - irq_set_chip_data(irq, data); - irq_set_chip_and_handler(irq, data->irqchip, data->irq_handler); - irq_set_noprobe(irq); - - return 0; -} - -static void irq_unmap(struct irq_domain *d, unsigned int irq) -{ - irq_set_chip_and_handler(irq, NULL, NULL); - irq_set_chip_data(irq, NULL); -} - -static const struct irq_domain_ops chip_domain_ops =3D { - .map =3D irq_map, - .unmap =3D irq_unmap, -}; - -static void lan78xx_irq_mask(struct irq_data *irqd) -{ - struct irq_domain_data *data =3D irq_data_get_irq_chip_data(irqd); - - data->irqenable &=3D ~BIT(irqd_to_hwirq(irqd)); -} - -static void lan78xx_irq_unmask(struct irq_data *irqd) -{ - struct irq_domain_data *data =3D irq_data_get_irq_chip_data(irqd); - - data->irqenable |=3D BIT(irqd_to_hwirq(irqd)); -} - -static void lan78xx_irq_bus_lock(struct irq_data *irqd) -{ - struct irq_domain_data *data =3D irq_data_get_irq_chip_data(irqd); - - mutex_lock(&data->irq_lock); -} - -static void lan78xx_irq_bus_sync_unlock(struct irq_data *irqd) -{ - struct irq_domain_data *data =3D irq_data_get_irq_chip_data(irqd); - struct lan78xx_net *dev =3D - container_of(data, struct lan78xx_net, domain_data); - u32 buf; - int ret; - - /* call register access here because irq_bus_lock & irq_bus_sync_unlock - * are only two callbacks executed in non-atomic contex. - */ - ret =3D lan78xx_read_reg(dev, INT_EP_CTL, &buf); - if (buf !=3D data->irqenable) - ret =3D lan78xx_write_reg(dev, INT_EP_CTL, data->irqenable); - - mutex_unlock(&data->irq_lock); -} - -static struct irq_chip lan78xx_irqchip =3D { - .name =3D "lan78xx-irqs", - .irq_mask =3D lan78xx_irq_mask, - .irq_unmask =3D lan78xx_irq_unmask, - .irq_bus_lock =3D lan78xx_irq_bus_lock, - .irq_bus_sync_unlock =3D lan78xx_irq_bus_sync_unlock, -}; - -static int lan78xx_setup_irq_domain(struct lan78xx_net *dev) -{ - struct device_node *of_node; - struct irq_domain *irqdomain; - unsigned int irqmap =3D 0; - u32 buf; - int ret =3D 0; - - of_node =3D dev->udev->dev.parent->of_node; - - mutex_init(&dev->domain_data.irq_lock); - - lan78xx_read_reg(dev, INT_EP_CTL, &buf); - dev->domain_data.irqenable =3D buf; - - dev->domain_data.irqchip =3D &lan78xx_irqchip; - dev->domain_data.irq_handler =3D handle_simple_irq; - - irqdomain =3D irq_domain_add_simple(of_node, MAX_INT_EP, 0, - &chip_domain_ops, &dev->domain_data); - if (irqdomain) { - /* create mapping for PHY interrupt */ - irqmap =3D irq_create_mapping(irqdomain, INT_EP_PHY); - if (!irqmap) { - irq_domain_remove(irqdomain); - - irqdomain =3D NULL; - ret =3D -EINVAL; - } - } else { - ret =3D -EINVAL; - } - - dev->domain_data.irqdomain =3D irqdomain; - dev->domain_data.phyirq =3D irqmap; - - return ret; -} - -static void lan78xx_remove_irq_domain(struct lan78xx_net *dev) -{ - if (dev->domain_data.phyirq > 0) { - irq_dispose_mapping(dev->domain_data.phyirq); - - if (dev->domain_data.irqdomain) - irq_domain_remove(dev->domain_data.irqdomain); - } - dev->domain_data.phyirq =3D 0; - dev->domain_data.irqdomain =3D NULL; -} - static int lan8835_fixup(struct phy_device *phydev) { int buf; @@ -2124,16 +1955,15 @@ static int lan78xx_phy_init(struct lan78xx_net *dev= ) return -EIO; } =20 - /* if phyirq is not set, use polling mode in phylib */ - if (dev->domain_data.phyirq > 0) - phydev->irq =3D dev->domain_data.phyirq; - else - phydev->irq =3D 0; - netdev_dbg(dev->net, "phydev->irq =3D %d\n", phydev->irq); - /* set to AUTOMDIX */ phydev->mdix =3D ETH_TP_MDI_AUTO; =20 + ret =3D phy_read(phydev, LAN88XX_INT_STS); + ret =3D phy_write(phydev, LAN88XX_INT_MASK, + LAN88XX_INT_MASK_MDINTPIN_EN_ | + LAN88XX_INT_MASK_LINK_CHANGE_); + phydev->irq =3D PHY_IGNORE_INTERRUPT; + ret =3D phy_connect_direct(dev->net, phydev, lan78xx_link_status_change, dev->interface); @@ -2571,6 +2401,11 @@ static int lan78xx_reset(struct lan78xx_net *dev) } ret =3D lan78xx_write_reg(dev, MAC_CR, buf); =20 + /* enable PHY interrupts */ + ret =3D lan78xx_read_reg(dev, INT_EP_CTL, &buf); + buf |=3D INT_ENP_PHY_INT; + ret =3D lan78xx_write_reg(dev, INT_EP_CTL, buf); + ret =3D lan78xx_read_reg(dev, MAC_TX, &buf); buf |=3D MAC_TX_TXEN_; ret =3D lan78xx_write_reg(dev, MAC_TX, buf); @@ -2981,13 +2816,6 @@ static int lan78xx_bind(struct lan78xx_net *dev, str= uct usb_interface *intf) =20 dev->net->hw_features =3D dev->net->features; =20 - ret =3D lan78xx_setup_irq_domain(dev); - if (ret < 0) { - netdev_warn(dev->net, - "lan78xx_setup_irq_domain() failed : %d", ret); - goto out1; - } - dev->net->hard_header_len +=3D TX_OVERHEAD; dev->hard_mtu =3D dev->net->mtu + dev->net->hard_header_len; =20 @@ -2995,13 +2823,13 @@ static int lan78xx_bind(struct lan78xx_net *dev, st= ruct usb_interface *intf) ret =3D lan78xx_reset(dev); if (ret) { netdev_warn(dev->net, "Registers INIT FAILED...."); - goto out2; + goto out; } =20 ret =3D lan78xx_mdio_init(dev); if (ret) { netdev_warn(dev->net, "MDIO INIT FAILED....."); - goto out2; + goto out; } =20 dev->net->flags |=3D IFF_MULTICAST; @@ -3010,10 +2838,7 @@ static int lan78xx_bind(struct lan78xx_net *dev, str= uct usb_interface *intf) =20 return ret; =20 -out2: - lan78xx_remove_irq_domain(dev); - -out1: +out: netdev_warn(dev->net, "Bind routine FAILED"); cancel_work_sync(&pdata->set_multicast); cancel_work_sync(&pdata->set_vlan); @@ -3025,7 +2850,6 @@ static void lan78xx_unbind(struct lan78xx_net *dev, s= truct usb_interface *intf) { struct lan78xx_priv *pdata =3D (struct lan78xx_priv *)(dev->data[0]); =20 - lan78xx_remove_irq_domain(dev); =20 lan78xx_remove_mdio(dev); =20 --=20 2.20.1