From mboxrd@z Thu Jan 1 00:00:00 1970 From: Martin Peres Subject: [PATCH 2/4] drm/nvd7/fan: handle another kind of PWM fans Date: Mon, 24 Mar 2014 02:03:01 +0100 Message-ID: <1395622983-2807-2-git-send-email-martin.peres@free.fr> References: <1395622983-2807-1-git-send-email-martin.peres@free.fr> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1395622983-2807-1-git-send-email-martin.peres-GANU6spQydw@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Martin Peres List-Id: nouveau.vger.kernel.org RnJvbTogTWFydGluIFBlcmVzIDxtYXJ0aW4ucGVyZXNAbGFicmkuZnI+CgpUaGlzIHNob3VsZCBm aXggZmFuIG1hbmFnZW1lbnQgb24gbWFueSBudmQ3KyBjaGlwc2V0cy4KClNpZ25lZC1vZmYtYnk6 IE1hcnRpbiBQZXJlcyA8bWFydGluLnBlcmVzQGxhYnJpLmZyPgpUZXN0ZWQtYnk6IFRpbW90aMOp ZSBSYXZpZXIgPHRpbUBzaW9zbS5mcj4KLS0tCiBudmttL2luY2x1ZGUvc3ViZGV2L3RoZXJtLmgg fCAgMiArLQogbnZrbS9zdWJkZXYvdGhlcm0vZmFuLmMgICAgIHwgIDMgKystCiBudmttL3N1YmRl di90aGVybS9mYW5wd20uYyAgfCAgMiArLQogbnZrbS9zdWJkZXYvdGhlcm0vbnY1MC5jICAgIHwg IDIgKy0KIG52a20vc3ViZGV2L3RoZXJtL252ZDAuYyAgICB8IDQwICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0KIG52a20vc3ViZGV2L3RoZXJtL3ByaXYuaCAgICB8ICAy ICstCiA2IGZpbGVzIGNoYW5nZWQsIDM1IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL252a20vaW5jbHVkZS9zdWJkZXYvdGhlcm0uaCBiL252a20vaW5jbHVkZS9z dWJkZXYvdGhlcm0uaAppbmRleCA2OTg5MWQ0Li5kNGE2ODE3IDEwMDY0NAotLS0gYS9udmttL2lu Y2x1ZGUvc3ViZGV2L3RoZXJtLmgKKysrIGIvbnZrbS9pbmNsdWRlL3N1YmRldi90aGVybS5oCkBA IC0zMSw3ICszMSw3IEBAIHN0cnVjdCBub3V2ZWF1X3RoZXJtIHsKIAlpbnQgKCpwd21fY3RybCko c3RydWN0IG5vdXZlYXVfdGhlcm0gKiwgaW50IGxpbmUsIGJvb2wpOwogCWludCAoKnB3bV9nZXQp KHN0cnVjdCBub3V2ZWF1X3RoZXJtICosIGludCBsaW5lLCB1MzIgKiwgdTMyICopOwogCWludCAo KnB3bV9zZXQpKHN0cnVjdCBub3V2ZWF1X3RoZXJtICosIGludCBsaW5lLCB1MzIsIHUzMik7Ci0J aW50ICgqcHdtX2Nsb2NrKShzdHJ1Y3Qgbm91dmVhdV90aGVybSAqKTsKKwlpbnQgKCpwd21fY2xv Y2spKHN0cnVjdCBub3V2ZWF1X3RoZXJtICosIGludCBsaW5lKTsKIAogCWludCAoKmZhbl9nZXQp KHN0cnVjdCBub3V2ZWF1X3RoZXJtICopOwogCWludCAoKmZhbl9zZXQpKHN0cnVjdCBub3V2ZWF1 X3RoZXJtICosIGludCk7CmRpZmYgLS1naXQgYS9udmttL3N1YmRldi90aGVybS9mYW4uYyBiL252 a20vc3ViZGV2L3RoZXJtL2Zhbi5jCmluZGV4IDI5ZDRjNDEuLmNlYjg1MjggMTAwNjQ0Ci0tLSBh L252a20vc3ViZGV2L3RoZXJtL2Zhbi5jCisrKyBiL252a20vc3ViZGV2L3RoZXJtL2Zhbi5jCkBA IC0yNDIsNyArMjQyLDggQEAgbm91dmVhdV90aGVybV9mYW5fY3RvcihzdHJ1Y3Qgbm91dmVhdV90 aGVybSAqdGhlcm0pCiAJLyogYXR0ZW1wdCB0byBsb2NhdGUgYSBkcml2YWJsZSBmYW4sIGFuZCBk ZXRlcm1pbmUgY29udHJvbCBtZXRob2QgKi8KIAlyZXQgPSBncGlvLT5maW5kKGdwaW8sIDAsIERD Ql9HUElPX0ZBTiwgMHhmZiwgJmZ1bmMpOwogCWlmIChyZXQgPT0gMCkgewotCQlpZiAoZnVuYy5s b2dbMF0gJiBEQ0JfR1BJT19MT0dfRElSX0lOKSB7CisJCS8qIEZJWE1FOiBpcyB0aGlzIHJlYWxs eSB0aGUgcGxhY2UgdG8gcGVyZm9ybSBzdWNoIGNoZWNrcyA/ICovCisJCWlmIChmdW5jLmxpbmUg IT0gMTYgJiYgZnVuYy5sb2dbMF0gJiBEQ0JfR1BJT19MT0dfRElSX0lOKSB7CiAJCQludl9kZWJ1 Zyh0aGVybSwgIkdQSU9fRkFOIGlzIGluIGlucHV0IG1vZGVcbiIpOwogCQkJcmV0ID0gLUVJTlZB TDsKIAkJfSBlbHNlIHsKZGlmZiAtLWdpdCBhL252a20vc3ViZGV2L3RoZXJtL2ZhbnB3bS5jIGIv bnZrbS9zdWJkZXYvdGhlcm0vZmFucHdtLmMKaW5kZXggNWY3MWRiOC4uOWE1YzA3MyAxMDA2NDQK LS0tIGEvbnZrbS9zdWJkZXYvdGhlcm0vZmFucHdtLmMKKysrIGIvbnZrbS9zdWJkZXYvdGhlcm0v ZmFucHdtLmMKQEAgLTY3LDcgKzY3LDcgQEAgbm91dmVhdV9mYW5wd21fc2V0KHN0cnVjdCBub3V2 ZWF1X3RoZXJtICp0aGVybSwgaW50IHBlcmNlbnQpCiAJaWYgKHByaXYtPmJhc2UuYmlvcy5wd21f ZnJlcSkgewogCQlkaXZzID0gMTsKIAkJaWYgKHRoZXJtLT5wd21fY2xvY2spCi0JCQlkaXZzID0g dGhlcm0tPnB3bV9jbG9jayh0aGVybSk7CisJCQlkaXZzID0gdGhlcm0tPnB3bV9jbG9jayh0aGVy bSwgcHJpdi0+ZnVuYy5saW5lKTsKIAkJZGl2cyAvPSBwcml2LT5iYXNlLmJpb3MucHdtX2ZyZXE7 CiAJfQogCmRpZmYgLS1naXQgYS9udmttL3N1YmRldi90aGVybS9udjUwLmMgYi9udmttL3N1YmRl di90aGVybS9udjUwLmMKaW5kZXggOGNmNzU5Ny4uMzIxZGI5MiAxMDA2NDQKLS0tIGEvbnZrbS9z dWJkZXYvdGhlcm0vbnY1MC5jCisrKyBiL252a20vc3ViZGV2L3RoZXJtL252NTAuYwpAQCAtOTMs NyArOTMsNyBAQCBudjUwX2Zhbl9wd21fc2V0KHN0cnVjdCBub3V2ZWF1X3RoZXJtICp0aGVybSwg aW50IGxpbmUsIHUzMiBkaXZzLCB1MzIgZHV0eSkKIH0KIAogaW50Ci1udjUwX2Zhbl9wd21fY2xv Y2soc3RydWN0IG5vdXZlYXVfdGhlcm0gKnRoZXJtKQorbnY1MF9mYW5fcHdtX2Nsb2NrKHN0cnVj dCBub3V2ZWF1X3RoZXJtICp0aGVybSwgaW50IGxpbmUpCiB7CiAJaW50IGNoaXBzZXQgPSBudl9k ZXZpY2UodGhlcm0pLT5jaGlwc2V0OwogCWludCBjcnlzdGFsID0gbnZfZGV2aWNlKHRoZXJtKS0+ Y3J5c3RhbDsKZGlmZiAtLWdpdCBhL252a20vc3ViZGV2L3RoZXJtL252ZDAuYyBiL252a20vc3Vi ZGV2L3RoZXJtL252ZDAuYwppbmRleCA0ZGQ0ZjgxLi40M2ZlYzE3IDEwMDY0NAotLS0gYS9udmtt L3N1YmRldi90aGVybS9udmQwLmMKKysrIGIvbnZrbS9zdWJkZXYvdGhlcm0vbnZkMC5jCkBAIC0z MiwxMCArMzIsMTIgQEAgc3RhdGljIGludAogcHdtX2luZm8oc3RydWN0IG5vdXZlYXVfdGhlcm0g KnRoZXJtLCBpbnQgbGluZSkKIHsKIAl1MzIgZ3BpbyA9IG52X3JkMzIodGhlcm0sIDB4MDBkNjEw ICsgKGxpbmUgKiAweDA0KSk7CisKIAlzd2l0Y2ggKGdwaW8gJiAweDAwMDAwMGMwKSB7CiAJY2Fz ZSAweDAwMDAwMDAwOiAvKiBub3JtYWwgbW9kZSwgcG9zc2libHkgcHdtIGZvcmNlZCBvZmYgYnkg dXMgKi8KIAljYXNlIDB4MDAwMDAwNDA6IC8qIG52aW8gc3BlY2lhbCAqLwogCQlzd2l0Y2ggKGdw aW8gJiAweDAwMDAwMDFmKSB7CisJCWNhc2UgMHgwMDogcmV0dXJuIDI7CiAJCWNhc2UgMHgxOTog cmV0dXJuIDE7CiAJCWNhc2UgMHgxYzogcmV0dXJuIDA7CiAJCWRlZmF1bHQ6CkBAIC01Niw4ICs1 OCw5IEBAIG52ZDBfZmFuX3B3bV9jdHJsKHN0cnVjdCBub3V2ZWF1X3RoZXJtICp0aGVybSwgaW50 IGxpbmUsIGJvb2wgZW5hYmxlKQogCWludCBpbmR4ID0gcHdtX2luZm8odGhlcm0sIGxpbmUpOwog CWlmIChpbmR4IDwgMCkKIAkJcmV0dXJuIGluZHg7Ci0KLQludl9tYXNrKHRoZXJtLCAweDAwZDYx MCArIChsaW5lICogMHgwNCksIDB4MDAwMDAwYzAsIGRhdGEpOworCWVsc2UgaWYgKGluZHggPCAy KQorCQludl9tYXNrKHRoZXJtLCAweDAwZDYxMCArIChsaW5lICogMHgwNCksIDB4MDAwMDAwYzAs IGRhdGEpOworCS8qIG5vdGhpbmcgdG8gZG8gZm9yIGluZHggPT0gMiwgaXQgc2VlbXMgaGFyZHdp cmVkIHRvIFBUSEVSTSAqLwogCXJldHVybiAwOwogfQogCkBAIC02NywxMCArNzAsMTUgQEAgbnZk MF9mYW5fcHdtX2dldChzdHJ1Y3Qgbm91dmVhdV90aGVybSAqdGhlcm0sIGludCBsaW5lLCB1MzIg KmRpdnMsIHUzMiAqZHV0eSkKIAlpbnQgaW5keCA9IHB3bV9pbmZvKHRoZXJtLCBsaW5lKTsKIAlp ZiAoaW5keCA8IDApCiAJCXJldHVybiBpbmR4OwotCi0JaWYgKG52X3JkMzIodGhlcm0sIDB4MDBk NjEwICsgKGxpbmUgKiAweDA0KSkgJiAweDAwMDAwMDQwKSB7Ci0JCSpkaXZzID0gbnZfcmQzMih0 aGVybSwgMHgwMGUxMTQgKyAoaW5keCAqIDgpKTsKLQkJKmR1dHkgPSBudl9yZDMyKHRoZXJtLCAw eDAwZTExOCArIChpbmR4ICogOCkpOworCWVsc2UgaWYgKGluZHggPCAyKSB7CisJCWlmIChudl9y ZDMyKHRoZXJtLCAweDAwZDYxMCArIChsaW5lICogMHgwNCkpICYgMHgwMDAwMDA0MCkgeworCQkJ KmRpdnMgPSBudl9yZDMyKHRoZXJtLCAweDAwZTExNCArIChpbmR4ICogOCkpOworCQkJKmR1dHkg PSBudl9yZDMyKHRoZXJtLCAweDAwZTExOCArIChpbmR4ICogOCkpOworCQkJcmV0dXJuIDA7CisJ CX0KKwl9IGVsc2UgaWYgKGluZHggPT0gMikgeworCQkqZGl2cyA9IG52X3JkMzIodGhlcm0sIDB4 MDIwMGQ4KSAmIDB4MWZmZjsKKwkJKmR1dHkgPSBudl9yZDMyKHRoZXJtLCAweDAyMDBkYykgJiAw eDFmZmY7CiAJCXJldHVybiAwOwogCX0KIApAQCAtODMsMTYgKzkxLDI2IEBAIG52ZDBfZmFuX3B3 bV9zZXQoc3RydWN0IG5vdXZlYXVfdGhlcm0gKnRoZXJtLCBpbnQgbGluZSwgdTMyIGRpdnMsIHUz MiBkdXR5KQogCWludCBpbmR4ID0gcHdtX2luZm8odGhlcm0sIGxpbmUpOwogCWlmIChpbmR4IDwg MCkKIAkJcmV0dXJuIGluZHg7Ci0KLQludl93cjMyKHRoZXJtLCAweDAwZTExNCArIChpbmR4ICog OCksIGRpdnMpOwotCW52X3dyMzIodGhlcm0sIDB4MDBlMTE4ICsgKGluZHggKiA4KSwgZHV0eSB8 IDB4ODAwMDAwMDApOworCWVsc2UgaWYgKGluZHggPCAyKSB7CisJCW52X3dyMzIodGhlcm0sIDB4 MDBlMTE0ICsgKGluZHggKiA4KSwgZGl2cyk7CisJCW52X3dyMzIodGhlcm0sIDB4MDBlMTE4ICsg KGluZHggKiA4KSwgZHV0eSB8IDB4ODAwMDAwMDApOworCX0gZWxzZSBpZiAoaW5keCA9PSAyKSB7 CisJCW52X21hc2sodGhlcm0sIDB4MDIwMGQ4LCAweDFmZmYsIGRpdnMpOyAvKiBrZWVwIHRoZSBo aWdoIGJpdHMgKi8KKwkJbnZfd3IzMih0aGVybSwgMHgwMjAwZGMsIGR1dHkgfCAweDQwMDAwMDAw KTsKKwl9CiAJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQKLW52ZDBfZmFuX3B3bV9jbG9jayhz dHJ1Y3Qgbm91dmVhdV90aGVybSAqdGhlcm0pCitudmQwX2Zhbl9wd21fY2xvY2soc3RydWN0IG5v dXZlYXVfdGhlcm0gKnRoZXJtLCBpbnQgbGluZSkKIHsKLQlyZXR1cm4gKG52X2RldmljZSh0aGVy bSktPmNyeXN0YWwgKiAxMDAwKSAvIDIwOworCWludCBpbmR4ID0gcHdtX2luZm8odGhlcm0sIGxp bmUpOworCWlmIChpbmR4IDwgMCkKKwkJcmV0dXJuIDA7CisJZWxzZSBpZiAoaW5keCA8IDIpCisJ CXJldHVybiAobnZfZGV2aWNlKHRoZXJtKS0+Y3J5c3RhbCAqIDEwMDApIC8gMjA7CisJZWxzZQor CQlyZXR1cm4gbnZfZGV2aWNlKHRoZXJtKS0+Y3J5c3RhbCAqIDEwMDAgLyAxMDsKIH0KIAogc3Rh dGljIGludApkaWZmIC0tZ2l0IGEvbnZrbS9zdWJkZXYvdGhlcm0vcHJpdi5oIGIvbnZrbS9zdWJk ZXYvdGhlcm0vcHJpdi5oCmluZGV4IDk2ZjhmOTUuLjkxNmZjYTUgMTAwNjQ0Ci0tLSBhL252a20v c3ViZGV2L3RoZXJtL3ByaXYuaAorKysgYi9udmttL3N1YmRldi90aGVybS9wcml2LmgKQEAgLTE0 Myw3ICsxNDMsNyBAQCB2b2lkIG52NDBfdGhlcm1faW50cihzdHJ1Y3Qgbm91dmVhdV9zdWJkZXYg Kik7CiBpbnQgbnY1MF9mYW5fcHdtX2N0cmwoc3RydWN0IG5vdXZlYXVfdGhlcm0gKiwgaW50LCBi b29sKTsKIGludCBudjUwX2Zhbl9wd21fZ2V0KHN0cnVjdCBub3V2ZWF1X3RoZXJtICosIGludCwg dTMyICosIHUzMiAqKTsKIGludCBudjUwX2Zhbl9wd21fc2V0KHN0cnVjdCBub3V2ZWF1X3RoZXJt ICosIGludCwgdTMyLCB1MzIpOwotaW50IG52NTBfZmFuX3B3bV9jbG9jayhzdHJ1Y3Qgbm91dmVh dV90aGVybSAqKTsKK2ludCBudjUwX2Zhbl9wd21fY2xvY2soc3RydWN0IG5vdXZlYXVfdGhlcm0g KiwgaW50KTsKIGludCBudjg0X3RlbXBfZ2V0KHN0cnVjdCBub3V2ZWF1X3RoZXJtICp0aGVybSk7 CiBpbnQgbnY4NF90aGVybV9maW5pKHN0cnVjdCBub3V2ZWF1X29iamVjdCAqb2JqZWN0LCBib29s IHN1c3BlbmQpOwogCi0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KTm91dmVhdSBtYWlsaW5nIGxpc3QKTm91dmVhdUBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL25v dXZlYXUK