diff mbox

pinctrl: clean up after enable refactoring

Message ID 1409742329-17411-1-git-send-email-linus.walleij@linaro.org
State Accepted
Commit 03e9f0cac5da6af85758276cb4624caf5911f2b9
Headers show

Commit Message

Linus Walleij Sept. 3, 2014, 11:05 a.m. UTC
commit 2243a87d90b42eb38bc281957df3e57c712b5e56
"pinctrl: avoid duplicated calling enable_pinmux_setting for a pin"
removed the .disable callback from the struct pinmux_ops,
making the .enable() callback the only remaining callback.

However .enable() is a bad name as it seems to imply that a
muxing can also be disabled. Rename the callback to .set_mux()
and also take this opportunity to clean out any remaining
mentions of .disable() from the documentation.

Cc: Fan Wu <fwu@marvell.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 Documentation/pinctrl.txt                    | 14 ++------------
 drivers/pinctrl/berlin/berlin.c              |  8 ++++----
 drivers/pinctrl/mvebu/pinctrl-mvebu.c        |  6 +++---
 drivers/pinctrl/nomadik/pinctrl-abx500.c     |  6 +++---
 drivers/pinctrl/nomadik/pinctrl-nomadik.c    |  6 +++---
 drivers/pinctrl/pinctrl-adi2.c               |  6 +++---
 drivers/pinctrl/pinctrl-as3722.c             |  4 ++--
 drivers/pinctrl/pinctrl-at91.c               |  6 +++---
 drivers/pinctrl/pinctrl-bcm281xx.c           |  8 ++++----
 drivers/pinctrl/pinctrl-bcm2835.c            |  4 ++--
 drivers/pinctrl/pinctrl-imx.c                |  6 +++---
 drivers/pinctrl/pinctrl-imx1-core.c          |  6 +++---
 drivers/pinctrl/pinctrl-lantiq.c             |  8 ++++----
 drivers/pinctrl/pinctrl-mxs.c                |  6 +++---
 drivers/pinctrl/pinctrl-palmas.c             |  5 +++--
 drivers/pinctrl/pinctrl-rockchip.c           |  6 +++---
 drivers/pinctrl/pinctrl-single.c             |  4 ++--
 drivers/pinctrl/pinctrl-st.c                 |  6 +++---
 drivers/pinctrl/pinctrl-tb10x.c              |  4 ++--
 drivers/pinctrl/pinctrl-tegra-xusb.c         |  8 ++++----
 drivers/pinctrl/pinctrl-tegra.c              |  7 ++++---
 drivers/pinctrl/pinctrl-tz1090-pdc.c         |  7 ++++---
 drivers/pinctrl/pinctrl-tz1090.c             |  6 +++---
 drivers/pinctrl/pinctrl-u300.c               |  6 +++---
 drivers/pinctrl/pinmux.c                     | 10 +++++-----
 drivers/pinctrl/qcom/pinctrl-msm.c           |  8 ++++----
 drivers/pinctrl/samsung/pinctrl-exynos5440.c |  7 ++++---
 drivers/pinctrl/samsung/pinctrl-samsung.c    |  7 ++++---
 drivers/pinctrl/sh-pfc/pinctrl.c             |  6 +++---
 drivers/pinctrl/sirf/pinctrl-sirf.c          |  7 ++++---
 drivers/pinctrl/spear/pinctrl-spear.c        |  4 ++--
 drivers/pinctrl/sunxi/pinctrl-sunxi.c        |  8 ++++----
 drivers/pinctrl/vt8500/pinctrl-wmt.c         |  8 ++++----
 include/linux/pinctrl/pinmux.h               |  7 +++----
 34 files changed, 110 insertions(+), 115 deletions(-)

Comments

FanWu Sept. 3, 2014, 11:26 a.m. UTC | #1
RGVhciBMaW51cywNClRoaXMgaXMgT0sgZm9yIG1lLg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut
LS0tLQ0KRnJvbTogTGludXMgV2FsbGVpaiBbbWFpbHRvOmxpbnVzLndhbGxlaWpAbGluYXJvLm9y
Z10NClNlbnQ6IDIwMTTE6jnUwjPI1SAxOTowNQ0KVG86IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5l
bC5vcmc7IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZw0KQ2M6IGxpbnV4LWdw
aW9Admdlci5rZXJuZWwub3JnOyBMaW51cyBXYWxsZWlqOyBGYW4gV3UNClN1YmplY3Q6IFtQQVRD
SF0gcGluY3RybDogY2xlYW4gdXAgYWZ0ZXIgZW5hYmxlIHJlZmFjdG9yaW5nDQoNCmNvbW1pdCAy
MjQzYTg3ZDkwYjQyZWIzOGJjMjgxOTU3ZGYzZTU3YzcxMmI1ZTU2DQoicGluY3RybDogYXZvaWQg
ZHVwbGljYXRlZCBjYWxsaW5nIGVuYWJsZV9waW5tdXhfc2V0dGluZyBmb3IgYSBwaW4iDQpyZW1v
dmVkIHRoZSAuZGlzYWJsZSBjYWxsYmFjayBmcm9tIHRoZSBzdHJ1Y3QgcGlubXV4X29wcywgbWFr
aW5nIHRoZSAuZW5hYmxlKCkgY2FsbGJhY2sgdGhlIG9ubHkgcmVtYWluaW5nIGNhbGxiYWNrLg0K
DQpIb3dldmVyIC5lbmFibGUoKSBpcyBhIGJhZCBuYW1lIGFzIGl0IHNlZW1zIHRvIGltcGx5IHRo
YXQgYSBtdXhpbmcgY2FuIGFsc28gYmUgZGlzYWJsZWQuIFJlbmFtZSB0aGUgY2FsbGJhY2sgdG8g
LnNldF9tdXgoKSBhbmQgYWxzbyB0YWtlIHRoaXMgb3Bwb3J0dW5pdHkgdG8gY2xlYW4gb3V0IGFu
eSByZW1haW5pbmcgbWVudGlvbnMgb2YgLmRpc2FibGUoKSBmcm9tIHRoZSBkb2N1bWVudGF0aW9u
Lg0KDQpDYzogRmFuIFd1IDxmd3VAbWFydmVsbC5jb20+DQpTaWduZWQtb2ZmLWJ5OiBMaW51cyBX
YWxsZWlqIDxsaW51cy53YWxsZWlqQGxpbmFyby5vcmc+DQotLS0NCiBEb2N1bWVudGF0aW9uL3Bp
bmN0cmwudHh0ICAgICAgICAgICAgICAgICAgICB8IDE0ICsrLS0tLS0tLS0tLS0tDQogZHJpdmVy
cy9waW5jdHJsL2Jlcmxpbi9iZXJsaW4uYyAgICAgICAgICAgICAgfCAgOCArKysrLS0tLQ0KIGRy
aXZlcnMvcGluY3RybC9tdmVidS9waW5jdHJsLW12ZWJ1LmMgICAgICAgIHwgIDYgKysrLS0tDQog
ZHJpdmVycy9waW5jdHJsL25vbWFkaWsvcGluY3RybC1hYng1MDAuYyAgICAgfCAgNiArKystLS0N
CiBkcml2ZXJzL3BpbmN0cmwvbm9tYWRpay9waW5jdHJsLW5vbWFkaWsuYyAgICB8ICA2ICsrKy0t
LQ0KIGRyaXZlcnMvcGluY3RybC9waW5jdHJsLWFkaTIuYyAgICAgICAgICAgICAgIHwgIDYgKysr
LS0tDQogZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtYXMzNzIyLmMgICAgICAgICAgICAgfCAgNCAr
Ky0tDQogZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtYXQ5MS5jICAgICAgICAgICAgICAgfCAgNiAr
KystLS0NCiBkcml2ZXJzL3BpbmN0cmwvcGluY3RybC1iY20yODF4eC5jICAgICAgICAgICB8ICA4
ICsrKystLS0tDQogZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtYmNtMjgzNS5jICAgICAgICAgICAg
fCAgNCArKy0tDQogZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtaW14LmMgICAgICAgICAgICAgICAg
fCAgNiArKystLS0NCiBkcml2ZXJzL3BpbmN0cmwvcGluY3RybC1pbXgxLWNvcmUuYyAgICAgICAg
ICB8ICA2ICsrKy0tLQ0KIGRyaXZlcnMvcGluY3RybC9waW5jdHJsLWxhbnRpcS5jICAgICAgICAg
ICAgIHwgIDggKysrKy0tLS0NCiBkcml2ZXJzL3BpbmN0cmwvcGluY3RybC1teHMuYyAgICAgICAg
ICAgICAgICB8ICA2ICsrKy0tLQ0KIGRyaXZlcnMvcGluY3RybC9waW5jdHJsLXBhbG1hcy5jICAg
ICAgICAgICAgIHwgIDUgKysrLS0NCiBkcml2ZXJzL3BpbmN0cmwvcGluY3RybC1yb2NrY2hpcC5j
ICAgICAgICAgICB8ICA2ICsrKy0tLQ0KIGRyaXZlcnMvcGluY3RybC9waW5jdHJsLXNpbmdsZS5j
ICAgICAgICAgICAgIHwgIDQgKystLQ0KIGRyaXZlcnMvcGluY3RybC9waW5jdHJsLXN0LmMgICAg
ICAgICAgICAgICAgIHwgIDYgKysrLS0tDQogZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtdGIxMHgu
YyAgICAgICAgICAgICAgfCAgNCArKy0tDQogZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtdGVncmEt
eHVzYi5jICAgICAgICAgfCAgOCArKysrLS0tLQ0KIGRyaXZlcnMvcGluY3RybC9waW5jdHJsLXRl
Z3JhLmMgICAgICAgICAgICAgIHwgIDcgKysrKy0tLQ0KIGRyaXZlcnMvcGluY3RybC9waW5jdHJs
LXR6MTA5MC1wZGMuYyAgICAgICAgIHwgIDcgKysrKy0tLQ0KIGRyaXZlcnMvcGluY3RybC9waW5j
dHJsLXR6MTA5MC5jICAgICAgICAgICAgIHwgIDYgKysrLS0tDQogZHJpdmVycy9waW5jdHJsL3Bp
bmN0cmwtdTMwMC5jICAgICAgICAgICAgICAgfCAgNiArKystLS0NCiBkcml2ZXJzL3BpbmN0cmwv
cGlubXV4LmMgICAgICAgICAgICAgICAgICAgICB8IDEwICsrKysrLS0tLS0NCiBkcml2ZXJzL3Bp
bmN0cmwvcWNvbS9waW5jdHJsLW1zbS5jICAgICAgICAgICB8ICA4ICsrKystLS0tDQogZHJpdmVy
cy9waW5jdHJsL3NhbXN1bmcvcGluY3RybC1leHlub3M1NDQwLmMgfCAgNyArKysrLS0tDQogZHJp
dmVycy9waW5jdHJsL3NhbXN1bmcvcGluY3RybC1zYW1zdW5nLmMgICAgfCAgNyArKysrLS0tDQog
ZHJpdmVycy9waW5jdHJsL3NoLXBmYy9waW5jdHJsLmMgICAgICAgICAgICAgfCAgNiArKystLS0N
CiBkcml2ZXJzL3BpbmN0cmwvc2lyZi9waW5jdHJsLXNpcmYuYyAgICAgICAgICB8ICA3ICsrKyst
LS0NCiBkcml2ZXJzL3BpbmN0cmwvc3BlYXIvcGluY3RybC1zcGVhci5jICAgICAgICB8ICA0ICsr
LS0NCiBkcml2ZXJzL3BpbmN0cmwvc3VueGkvcGluY3RybC1zdW54aS5jICAgICAgICB8ICA4ICsr
KystLS0tDQogZHJpdmVycy9waW5jdHJsL3Z0ODUwMC9waW5jdHJsLXdtdC5jICAgICAgICAgfCAg
OCArKysrLS0tLQ0KIGluY2x1ZGUvbGludXgvcGluY3RybC9waW5tdXguaCAgICAgICAgICAgICAg
IHwgIDcgKysrLS0tLQ0KIDM0IGZpbGVzIGNoYW5nZWQsIDExMCBpbnNlcnRpb25zKCspLCAxMTUg
ZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3BpbmN0cmwudHh0IGIv
RG9jdW1lbnRhdGlvbi9waW5jdHJsLnR4dCBpbmRleCAyM2YxNTkwZjQ5ZmUuLmI4ZjIxNDdiOTZk
ZCAxMDA2NDQNCi0tLSBhL0RvY3VtZW50YXRpb24vcGluY3RybC50eHQNCisrKyBiL0RvY3VtZW50
YXRpb24vcGluY3RybC50eHQNCkBAIC03MDIsNyArNzAyLDcgQEAgc3RhdGljIGludCBmb29fZ2V0
X2dyb3VwcyhzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsIHVuc2lnbmVkIHNlbGVjdG9yLA0K
ICAgICAgICByZXR1cm4gMDsNCiB9DQoNCi1pbnQgZm9vX2VuYWJsZShzdHJ1Y3QgcGluY3RybF9k
ZXYgKnBjdGxkZXYsIHVuc2lnbmVkIHNlbGVjdG9yLA0KK2ludCBmb29fc2V0X211eChzdHJ1Y3Qg
cGluY3RybF9kZXYgKnBjdGxkZXYsIHVuc2lnbmVkIHNlbGVjdG9yLA0KICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGdyb3VwKQ0KIHsNCiAgICAgICAgdTggcmVnYml0ID0gKDEgPDwgc2VsZWN0b3Ig
KyBncm91cCk7DQpAQCAtNzExLDIxICs3MTEsMTEgQEAgaW50IGZvb19lbmFibGUoc3RydWN0IHBp
bmN0cmxfZGV2ICpwY3RsZGV2LCB1bnNpZ25lZCBzZWxlY3RvciwNCiAgICAgICAgcmV0dXJuIDA7
DQogfQ0KDQotdm9pZCBmb29fZGlzYWJsZShzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsIHVu
c2lnbmVkIHNlbGVjdG9yLA0KLSAgICAgICAgICAgICAgIHVuc2lnbmVkIGdyb3VwKQ0KLXsNCi0g
ICAgICAgdTggcmVnYml0ID0gKDEgPDwgc2VsZWN0b3IgKyBncm91cCk7DQotDQotICAgICAgIHdy
aXRlYigocmVhZGIoTVVYKSAmIH4ocmVnYml0KSksIE1VWCkNCi0gICAgICAgcmV0dXJuIDA7DQot
fQ0KLQ0KIHN0cnVjdCBwaW5tdXhfb3BzIGZvb19wbXhvcHMgPSB7DQogICAgICAgIC5nZXRfZnVu
Y3Rpb25zX2NvdW50ID0gZm9vX2dldF9mdW5jdGlvbnNfY291bnQsDQogICAgICAgIC5nZXRfZnVu
Y3Rpb25fbmFtZSA9IGZvb19nZXRfZm5hbWUsDQogICAgICAgIC5nZXRfZnVuY3Rpb25fZ3JvdXBz
ID0gZm9vX2dldF9ncm91cHMsDQotICAgICAgIC5lbmFibGUgPSBmb29fZW5hYmxlLA0KLSAgICAg
ICAuZGlzYWJsZSA9IGZvb19kaXNhYmxlLA0KKyAgICAgICAuc2V0X211eCA9IGZvb19zZXRfbXV4
LA0KIH07DQoNCiAvKiBQaW5tdXggb3BlcmF0aW9ucyBhcmUgaGFuZGxlZCBieSBzb21lIHBpbiBj
b250cm9sbGVyICovIGRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvYmVybGluL2Jlcmxpbi5j
IGIvZHJpdmVycy9waW5jdHJsL2Jlcmxpbi9iZXJsaW4uYyBpbmRleCA4NmRiMjIzNWFiMDAuLjYx
ZjFiZjBlNjBiYSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvcGluY3RybC9iZXJsaW4vYmVybGluLmMN
CisrKyBiL2RyaXZlcnMvcGluY3RybC9iZXJsaW4vYmVybGluLmMNCkBAIC0xNzAsOSArMTcwLDkg
QEAgYmVybGluX3BpbmN0cmxfZmluZF9mdW5jdGlvbl9ieV9uYW1lKHN0cnVjdCBiZXJsaW5fcGlu
Y3RybCAqcGN0cmwsDQogICAgICAgIHJldHVybiBOVUxMOw0KIH0NCg0KLXN0YXRpYyBpbnQgYmVy
bGluX3Bpbm11eF9lbmFibGUoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RybF9kZXYsDQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZ1bmN0aW9uLA0KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBncm91cCkNCitzdGF0aWMgaW50IGJlcmxpbl9w
aW5tdXhfc2V0KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0cmxfZGV2LA0KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBmdW5jdGlvbiwNCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW5zaWduZWQgZ3JvdXApDQogew0KICAgICAgICBzdHJ1Y3QgYmVybGluX3BpbmN0cmwg
KnBjdHJsID0gcGluY3RybF9kZXZfZ2V0X2RydmRhdGEocGN0cmxfZGV2KTsNCiAgICAgICAgY29u
c3Qgc3RydWN0IGJlcmxpbl9kZXNjX2dyb3VwICpncm91cF9kZXNjID0gcGN0cmwtPmRlc2MtPmdy
b3VwcyArIGdyb3VwOyBAQCAtMTk3LDcgKzE5Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGlu
bXV4X29wcyBiZXJsaW5fcGlubXV4X29wcyA9IHsNCiAgICAgICAgLmdldF9mdW5jdGlvbnNfY291
bnQgICAgPSAmYmVybGluX3Bpbm11eF9nZXRfZnVuY3Rpb25zX2NvdW50LA0KICAgICAgICAuZ2V0
X2Z1bmN0aW9uX25hbWUgICAgICA9ICZiZXJsaW5fcGlubXV4X2dldF9mdW5jdGlvbl9uYW1lLA0K
ICAgICAgICAuZ2V0X2Z1bmN0aW9uX2dyb3VwcyAgICA9ICZiZXJsaW5fcGlubXV4X2dldF9mdW5j
dGlvbl9ncm91cHMsDQotICAgICAgIC5lbmFibGUgICAgICAgICAgICAgICAgID0gJmJlcmxpbl9w
aW5tdXhfZW5hYmxlLA0KKyAgICAgICAuc2V0X211eCAgICAgICAgICAgICAgICA9ICZiZXJsaW5f
cGlubXV4X3NldCwNCiB9Ow0KDQogc3RhdGljIGludCBiZXJsaW5fcGluY3RybF9hZGRfZnVuY3Rp
b24oc3RydWN0IGJlcmxpbl9waW5jdHJsICpwY3RybCwgZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGlu
Y3RybC9tdmVidS9waW5jdHJsLW12ZWJ1LmMgYi9kcml2ZXJzL3BpbmN0cmwvbXZlYnUvcGluY3Ry
bC1tdmVidS5jDQppbmRleCA5OTA4Mzc0ZjhmOTIuLmYzYjQyNmNkYWY4ZiAxMDA2NDQNCi0tLSBh
L2RyaXZlcnMvcGluY3RybC9tdmVidS9waW5jdHJsLW12ZWJ1LmMNCisrKyBiL2RyaXZlcnMvcGlu
Y3RybC9tdmVidS9waW5jdHJsLW12ZWJ1LmMNCkBAIC0yNTksOCArMjU5LDggQEAgc3RhdGljIGlu
dCBtdmVidV9waW5tdXhfZ2V0X2dyb3VwcyhzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsIHVu
c2lnbmVkIGZpZCwNCiAgICAgICAgcmV0dXJuIDA7DQogfQ0KDQotc3RhdGljIGludCBtdmVidV9w
aW5tdXhfZW5hYmxlKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwgdW5zaWduZWQgZmlkLA0K
LSAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZ2lkKQ0KK3N0YXRpYyBpbnQgbXZlYnVf
cGlubXV4X3NldChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsIHVuc2lnbmVkIGZpZCwNCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBnaWQpDQogew0KICAgICAgICBzdHJ1
Y3QgbXZlYnVfcGluY3RybCAqcGN0bCA9IHBpbmN0cmxfZGV2X2dldF9kcnZkYXRhKHBjdGxkZXYp
Ow0KICAgICAgICBzdHJ1Y3QgbXZlYnVfcGluY3RybF9mdW5jdGlvbiAqZnVuYyA9ICZwY3RsLT5m
dW5jdGlvbnNbZmlkXTsgQEAgLTM0NCw3ICszNDQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBp
bm11eF9vcHMgbXZlYnVfcGlubXV4X29wcyA9IHsNCiAgICAgICAgLmdldF9mdW5jdGlvbl9ncm91
cHMgPSBtdmVidV9waW5tdXhfZ2V0X2dyb3VwcywNCiAgICAgICAgLmdwaW9fcmVxdWVzdF9lbmFi
bGUgPSBtdmVidV9waW5tdXhfZ3Bpb19yZXF1ZXN0X2VuYWJsZSwNCiAgICAgICAgLmdwaW9fc2V0
X2RpcmVjdGlvbiA9IG12ZWJ1X3Bpbm11eF9ncGlvX3NldF9kaXJlY3Rpb24sDQotICAgICAgIC5l
bmFibGUgPSBtdmVidV9waW5tdXhfZW5hYmxlLA0KKyAgICAgICAuc2V0X211eCA9IG12ZWJ1X3Bp
bm11eF9zZXQsDQogfTsNCg0KIHN0YXRpYyBpbnQgbXZlYnVfcGluY3RybF9nZXRfZ3JvdXBzX2Nv
dW50KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldikgZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGlu
Y3RybC9ub21hZGlrL3BpbmN0cmwtYWJ4NTAwLmMgYi9kcml2ZXJzL3BpbmN0cmwvbm9tYWRpay9w
aW5jdHJsLWFieDUwMC5jDQppbmRleCBhNTNhNjg5YTJiZmEuLmIwMjg5ODI0Y2Y3MyAxMDA2NDQN
Ci0tLSBhL2RyaXZlcnMvcGluY3RybC9ub21hZGlrL3BpbmN0cmwtYWJ4NTAwLmMNCisrKyBiL2Ry
aXZlcnMvcGluY3RybC9ub21hZGlrL3BpbmN0cmwtYWJ4NTAwLmMNCkBAIC03MDksOCArNzA5LDgg
QEAgc3RhdGljIGludCBhYng1MDBfcG14X2dldF9mdW5jX2dyb3VwcyhzdHJ1Y3QgcGluY3RybF9k
ZXYgKnBjdGxkZXYsDQogICAgICAgIHJldHVybiAwOw0KIH0NCg0KLXN0YXRpYyBpbnQgYWJ4NTAw
X3BteF9lbmFibGUoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LCB1bnNpZ25lZCBmdW5jdGlv
biwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZ3JvdXApDQorc3RhdGlj
IGludCBhYng1MDBfcG14X3NldChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsIHVuc2lnbmVk
IGZ1bmN0aW9uLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBncm91cCkNCiB7
DQogICAgICAgIHN0cnVjdCBhYng1MDBfcGluY3RybCAqcGN0ID0gcGluY3RybF9kZXZfZ2V0X2Ry
dmRhdGEocGN0bGRldik7DQogICAgICAgIHN0cnVjdCBncGlvX2NoaXAgKmNoaXAgPSAmcGN0LT5j
aGlwOw0KQEAgLTc4NCw3ICs3ODQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBpbm11eF9vcHMg
YWJ4NTAwX3Bpbm11eF9vcHMgPSB7DQogICAgICAgIC5nZXRfZnVuY3Rpb25zX2NvdW50ID0gYWJ4
NTAwX3BteF9nZXRfZnVuY3NfY250LA0KICAgICAgICAuZ2V0X2Z1bmN0aW9uX25hbWUgPSBhYng1
MDBfcG14X2dldF9mdW5jX25hbWUsDQogICAgICAgIC5nZXRfZnVuY3Rpb25fZ3JvdXBzID0gYWJ4
NTAwX3BteF9nZXRfZnVuY19ncm91cHMsDQotICAgICAgIC5lbmFibGUgPSBhYng1MDBfcG14X2Vu
YWJsZSwNCisgICAgICAgLnNldF9tdXggPSBhYng1MDBfcG14X3NldCwNCiAgICAgICAgLmdwaW9f
cmVxdWVzdF9lbmFibGUgPSBhYng1MDBfZ3Bpb19yZXF1ZXN0X2VuYWJsZSwNCiAgICAgICAgLmdw
aW9fZGlzYWJsZV9mcmVlID0gYWJ4NTAwX2dwaW9fZGlzYWJsZV9mcmVlLCAgfTsgZGlmZiAtLWdp
dCBhL2RyaXZlcnMvcGluY3RybC9ub21hZGlrL3BpbmN0cmwtbm9tYWRpay5jIGIvZHJpdmVycy9w
aW5jdHJsL25vbWFkaWsvcGluY3RybC1ub21hZGlrLmMNCmluZGV4IGU3Y2FiMDdlZWY0Ny4uYzA5
M2Q3NWEwMjJhIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9waW5jdHJsL25vbWFkaWsvcGluY3RybC1u
b21hZGlrLmMNCisrKyBiL2RyaXZlcnMvcGluY3RybC9ub21hZGlrL3BpbmN0cmwtbm9tYWRpay5j
DQpAQCAtMTY0Nyw4ICsxNjQ3LDggQEAgc3RhdGljIGludCBubWtfcG14X2dldF9mdW5jX2dyb3Vw
cyhzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsDQogICAgICAgIHJldHVybiAwOw0KIH0NCg0K
LXN0YXRpYyBpbnQgbm1rX3BteF9lbmFibGUoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LCB1
bnNpZ25lZCBmdW5jdGlvbiwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZ3Jv
dXApDQorc3RhdGljIGludCBubWtfcG14X3NldChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYs
IHVuc2lnbmVkIGZ1bmN0aW9uLA0KKyAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBncm91
cCkNCiB7DQogICAgICAgIHN0cnVjdCBubWtfcGluY3RybCAqbnBjdCA9IHBpbmN0cmxfZGV2X2dl
dF9kcnZkYXRhKHBjdGxkZXYpOw0KICAgICAgICBjb25zdCBzdHJ1Y3Qgbm1rX3Bpbmdyb3VwICpn
Ow0KQEAgLTE4MTAsNyArMTgxMCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGlubXV4X29wcyBu
bWtfcGlubXV4X29wcyA9IHsNCiAgICAgICAgLmdldF9mdW5jdGlvbnNfY291bnQgPSBubWtfcG14
X2dldF9mdW5jc19jbnQsDQogICAgICAgIC5nZXRfZnVuY3Rpb25fbmFtZSA9IG5ta19wbXhfZ2V0
X2Z1bmNfbmFtZSwNCiAgICAgICAgLmdldF9mdW5jdGlvbl9ncm91cHMgPSBubWtfcG14X2dldF9m
dW5jX2dyb3VwcywNCi0gICAgICAgLmVuYWJsZSA9IG5ta19wbXhfZW5hYmxlLA0KKyAgICAgICAu
c2V0X211eCA9IG5ta19wbXhfc2V0LA0KICAgICAgICAuZ3Bpb19yZXF1ZXN0X2VuYWJsZSA9IG5t
a19ncGlvX3JlcXVlc3RfZW5hYmxlLA0KICAgICAgICAuZ3Bpb19kaXNhYmxlX2ZyZWUgPSBubWtf
Z3Bpb19kaXNhYmxlX2ZyZWUsICB9OyBkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL3BpbmN0
cmwtYWRpMi5jIGIvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtYWRpMi5jIGluZGV4IGIwOTJiOTNj
NjdhMS4uZTAyOTQzYjAyODVkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwt
YWRpMi5jDQorKysgYi9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1hZGkyLmMNCkBAIC02MTksOCAr
NjE5LDggQEAgc3RhdGljIHN0cnVjdCBwaW5jdHJsX29wcyBhZGlfcGN0cmxfb3BzID0gew0KICAg
ICAgICAuZ2V0X2dyb3VwX3BpbnMgPSBhZGlfZ2V0X2dyb3VwX3BpbnMsDQogfTsNCg0KLXN0YXRp
YyBpbnQgYWRpX3Bpbm11eF9lbmFibGUoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LCB1bnNp
Z25lZCBmdW5jX2lkLA0KLSAgICAgICB1bnNpZ25lZCBncm91cF9pZCkNCitzdGF0aWMgaW50IGFk
aV9waW5tdXhfc2V0KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwgdW5zaWduZWQgZnVuY19p
ZCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZ3JvdXBfaWQpDQogew0KICAg
ICAgICBzdHJ1Y3QgYWRpX3BpbmN0cmwgKnBpbmN0cmwgPSBwaW5jdHJsX2Rldl9nZXRfZHJ2ZGF0
YShwY3RsZGV2KTsNCiAgICAgICAgc3RydWN0IGdwaW9fcG9ydCAqcG9ydDsNCkBAIC02OTgsNyAr
Njk4LDcgQEAgc3RhdGljIGludCBhZGlfcGlubXV4X3JlcXVlc3RfZ3BpbyhzdHJ1Y3QgcGluY3Ry
bF9kZXYgKnBjdGxkZXYsICB9DQoNCiBzdGF0aWMgc3RydWN0IHBpbm11eF9vcHMgYWRpX3Bpbm11
eF9vcHMgPSB7DQotICAgICAgIC5lbmFibGUgPSBhZGlfcGlubXV4X2VuYWJsZSwNCisgICAgICAg
LnNldF9tdXggPSBhZGlfcGlubXV4X3NldCwNCiAgICAgICAgLmdldF9mdW5jdGlvbnNfY291bnQg
PSBhZGlfcGlubXV4X2dldF9mdW5jc19jb3VudCwNCiAgICAgICAgLmdldF9mdW5jdGlvbl9uYW1l
ID0gYWRpX3Bpbm11eF9nZXRfZnVuY19uYW1lLA0KICAgICAgICAuZ2V0X2Z1bmN0aW9uX2dyb3Vw
cyA9IGFkaV9waW5tdXhfZ2V0X2dyb3VwcywgZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9w
aW5jdHJsLWFzMzcyMi5jIGIvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtYXMzNzIyLmMNCmluZGV4
IDBlNGVjOTFmNGQ0OS4uMWY3OTBhNGI4M2ZlIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9waW5jdHJs
L3BpbmN0cmwtYXMzNzIyLmMNCisrKyBiL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLWFzMzcyMi5j
DQpAQCAtMjMwLDcgKzIzMCw3IEBAIHN0YXRpYyBpbnQgYXMzNzIyX3BpbmN0cmxfZ2V0X2Z1bmNf
Z3JvdXBzKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwNCiAgICAgICAgcmV0dXJuIDA7DQog
fQ0KDQotc3RhdGljIGludCBhczM3MjJfcGluY3RybF9lbmFibGUoc3RydWN0IHBpbmN0cmxfZGV2
ICpwY3RsZGV2LCB1bnNpZ25lZCBmdW5jdGlvbiwNCitzdGF0aWMgaW50IGFzMzcyMl9waW5jdHJs
X3NldChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsIHVuc2lnbmVkDQorZnVuY3Rpb24sDQog
ICAgICAgICAgICAgICAgdW5zaWduZWQgZ3JvdXApDQogew0KICAgICAgICBzdHJ1Y3QgYXMzNzIy
X3BjdHJsX2luZm8gKmFzX3BjaSA9IHBpbmN0cmxfZGV2X2dldF9kcnZkYXRhKHBjdGxkZXYpOyBA
QCAtMzI3LDcgKzMyNyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGlubXV4X29wcyBhczM3MjJf
cGlubXV4X29wcyA9IHsNCiAgICAgICAgLmdldF9mdW5jdGlvbnNfY291bnQgICAgPSBhczM3MjJf
cGluY3RybF9nZXRfZnVuY3NfY291bnQsDQogICAgICAgIC5nZXRfZnVuY3Rpb25fbmFtZSAgICAg
ID0gYXMzNzIyX3BpbmN0cmxfZ2V0X2Z1bmNfbmFtZSwNCiAgICAgICAgLmdldF9mdW5jdGlvbl9n
cm91cHMgICAgPSBhczM3MjJfcGluY3RybF9nZXRfZnVuY19ncm91cHMsDQotICAgICAgIC5lbmFi
bGUgICAgICAgICAgICAgICAgID0gYXMzNzIyX3BpbmN0cmxfZW5hYmxlLA0KKyAgICAgICAuc2V0
X211eCAgICAgICAgICAgICAgICA9IGFzMzcyMl9waW5jdHJsX3NldCwNCiAgICAgICAgLmdwaW9f
cmVxdWVzdF9lbmFibGUgICAgPSBhczM3MjJfcGluY3RybF9ncGlvX3JlcXVlc3RfZW5hYmxlLA0K
ICAgICAgICAuZ3Bpb19zZXRfZGlyZWN0aW9uICAgICA9IGFzMzcyMl9waW5jdHJsX2dwaW9fc2V0
X2RpcmVjdGlvbiwNCiB9Ow0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLWF0
OTEuYyBiL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLWF0OTEuYyBpbmRleCBhZjFiYTRmYzE1MGQu
LjQ4MzljMzZhM2ExYyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLWF0OTEu
Yw0KKysrIGIvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtYXQ5MS5jDQpAQCAtNTU0LDggKzU1NCw4
IEBAIHN0YXRpYyB2b2lkIGF0OTFfbXV4X2dwaW9fZW5hYmxlKHZvaWQgX19pb21lbSAqcGlvLCB1
bnNpZ25lZCBtYXNrLCBib29sIGlucHV0KQ0KICAgICAgICB3cml0ZWxfcmVsYXhlZChtYXNrLCBw
aW8gKyAoaW5wdXQgPyBQSU9fT0RSIDogUElPX09FUikpOyAgfQ0KDQotc3RhdGljIGludCBhdDkx
X3BteF9lbmFibGUoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LCB1bnNpZ25lZCBzZWxlY3Rv
ciwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGdyb3VwKQ0KK3N0YXRpYyBp
bnQgYXQ5MV9wbXhfc2V0KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwgdW5zaWduZWQgc2Vs
ZWN0b3IsDQorICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBncm91cCkNCiB7DQogICAg
ICAgIHN0cnVjdCBhdDkxX3BpbmN0cmwgKmluZm8gPSBwaW5jdHJsX2Rldl9nZXRfZHJ2ZGF0YShw
Y3RsZGV2KTsNCiAgICAgICAgY29uc3Qgc3RydWN0IGF0OTFfcG14X3BpbiAqcGluc19jb25mID0g
aW5mby0+Z3JvdXBzW2dyb3VwXS5waW5zX2NvbmY7IEBAIC02ODQsNyArNjg0LDcgQEAgc3RhdGlj
IGNvbnN0IHN0cnVjdCBwaW5tdXhfb3BzIGF0OTFfcG14X29wcyA9IHsNCiAgICAgICAgLmdldF9m
dW5jdGlvbnNfY291bnQgICAgPSBhdDkxX3BteF9nZXRfZnVuY3NfY291bnQsDQogICAgICAgIC5n
ZXRfZnVuY3Rpb25fbmFtZSAgICAgID0gYXQ5MV9wbXhfZ2V0X2Z1bmNfbmFtZSwNCiAgICAgICAg
LmdldF9mdW5jdGlvbl9ncm91cHMgICAgPSBhdDkxX3BteF9nZXRfZ3JvdXBzLA0KLSAgICAgICAu
ZW5hYmxlICAgICAgICAgICAgICAgICA9IGF0OTFfcG14X2VuYWJsZSwNCisgICAgICAgLnNldF9t
dXggICAgICAgICAgICAgICAgPSBhdDkxX3BteF9zZXQsDQogICAgICAgIC5ncGlvX3JlcXVlc3Rf
ZW5hYmxlICAgID0gYXQ5MV9ncGlvX3JlcXVlc3RfZW5hYmxlLA0KICAgICAgICAuZ3Bpb19kaXNh
YmxlX2ZyZWUgICAgICA9IGF0OTFfZ3Bpb19kaXNhYmxlX2ZyZWUsDQogfTsNCmRpZmYgLS1naXQg
YS9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1iY20yODF4eC5jIGIvZHJpdmVycy9waW5jdHJsL3Bp
bmN0cmwtYmNtMjgxeHguYw0KaW5kZXggYzVjYTllNjMzZmZmLi5hMjZlMGMyYmEzM2UgMTAwNjQ0
DQotLS0gYS9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1iY20yODF4eC5jDQorKysgYi9kcml2ZXJz
L3BpbmN0cmwvcGluY3RybC1iY20yODF4eC5jDQpAQCAtMTA1NSw5ICsxMDU1LDkgQEAgc3RhdGlj
IGludCBiY20yODF4eF9waW5jdHJsX2dldF9mY25fZ3JvdXBzKHN0cnVjdCBwaW5jdHJsX2RldiAq
cGN0bGRldiwNCiAgICAgICAgcmV0dXJuIDA7DQogfQ0KDQotc3RhdGljIGludCBiY20yODF4eF9w
aW5tdXhfZW5hYmxlKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwNCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBmdW5jdGlvbiwNCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBncm91cCkNCitzdGF0aWMgaW50IGJjbTI4MXh4X3Bp
bm11eF9zZXQoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LA0KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIGZ1bmN0aW9uLA0KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIGdyb3VwKQ0KIHsNCiAgICAgICAgc3RydWN0IGJjbTI4MXh4X3BpbmN0
cmxfZGF0YSAqcGRhdGEgPSBwaW5jdHJsX2Rldl9nZXRfZHJ2ZGF0YShwY3RsZGV2KTsNCiAgICAg
ICAgY29uc3Qgc3RydWN0IGJjbTI4MXh4X3Bpbl9mdW5jdGlvbiAqZiA9ICZwZGF0YS0+ZnVuY3Rp
b25zW2Z1bmN0aW9uXTsgQEAgLTEwODQsNyArMTA4NCw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGlubXV4
X29wcyBiY20yODF4eF9waW5jdHJsX3Bpbm11eF9vcHMgPSB7DQogICAgICAgIC5nZXRfZnVuY3Rp
b25zX2NvdW50ID0gYmNtMjgxeHhfcGluY3RybF9nZXRfZmNuc19jb3VudCwNCiAgICAgICAgLmdl
dF9mdW5jdGlvbl9uYW1lID0gYmNtMjgxeHhfcGluY3RybF9nZXRfZmNuX25hbWUsDQogICAgICAg
IC5nZXRfZnVuY3Rpb25fZ3JvdXBzID0gYmNtMjgxeHhfcGluY3RybF9nZXRfZmNuX2dyb3VwcywN
Ci0gICAgICAgLmVuYWJsZSA9IGJjbTI4MXh4X3Bpbm11eF9lbmFibGUsDQorICAgICAgIC5zZXRf
bXV4ID0gYmNtMjgxeHhfcGlubXV4X3NldCwNCiB9Ow0KDQogc3RhdGljIGludCBiY20yODF4eF9w
aW5jdHJsX3Bpbl9jb25maWdfZ2V0KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwgZGlmZiAt
LWdpdCBhL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLWJjbTI4MzUuYyBiL2RyaXZlcnMvcGluY3Ry
bC9waW5jdHJsLWJjbTI4MzUuYw0KaW5kZXggNWJjZmQ3YWNlMGNkLi5lYWJiYTAyZjcxZjkgMTAw
NjQ0DQotLS0gYS9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1iY20yODM1LmMNCisrKyBiL2RyaXZl
cnMvcGluY3RybC9waW5jdHJsLWJjbTI4MzUuYw0KQEAgLTgzMCw3ICs4MzAsNyBAQCBzdGF0aWMg
aW50IGJjbTI4MzVfcG14X2dldF9mdW5jdGlvbl9ncm91cHMoc3RydWN0IHBpbmN0cmxfZGV2ICpw
Y3RsZGV2LA0KICAgICAgICByZXR1cm4gMDsNCiB9DQoNCi1zdGF0aWMgaW50IGJjbTI4MzVfcG14
X2VuYWJsZShzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsDQorc3RhdGljIGludCBiY20yODM1
X3BteF9zZXQoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LA0KICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGZ1bmNfc2VsZWN0b3IsDQogICAgICAgICAgICAgICAgdW5zaWduZWQgZ3JvdXBfc2Vs
ZWN0b3IpDQogew0KQEAgLTg2OSw3ICs4NjksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBpbm11
eF9vcHMgYmNtMjgzNV9wbXhfb3BzID0gew0KICAgICAgICAuZ2V0X2Z1bmN0aW9uc19jb3VudCA9
IGJjbTI4MzVfcG14X2dldF9mdW5jdGlvbnNfY291bnQsDQogICAgICAgIC5nZXRfZnVuY3Rpb25f
bmFtZSA9IGJjbTI4MzVfcG14X2dldF9mdW5jdGlvbl9uYW1lLA0KICAgICAgICAuZ2V0X2Z1bmN0
aW9uX2dyb3VwcyA9IGJjbTI4MzVfcG14X2dldF9mdW5jdGlvbl9ncm91cHMsDQotICAgICAgIC5l
bmFibGUgPSBiY20yODM1X3BteF9lbmFibGUsDQorICAgICAgIC5zZXRfbXV4ID0gYmNtMjgzNV9w
bXhfc2V0LA0KICAgICAgICAuZ3Bpb19kaXNhYmxlX2ZyZWUgPSBiY20yODM1X3BteF9ncGlvX2Rp
c2FibGVfZnJlZSwNCiAgICAgICAgLmdwaW9fc2V0X2RpcmVjdGlvbiA9IGJjbTI4MzVfcG14X2dw
aW9fc2V0X2RpcmVjdGlvbiwgIH07IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvcGluY3Ry
bC1pbXguYyBiL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLWlteC5jIGluZGV4IDk0NmQ1OTRhNjRk
ZC4uNTcwZTVhY2I0YTZhIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtaW14
LmMNCisrKyBiL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLWlteC5jDQpAQCAtMTc5LDggKzE3OSw4
IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGluY3RybF9vcHMgaW14X3BjdHJsX29wcyA9IHsNCg0K
IH07DQoNCi1zdGF0aWMgaW50IGlteF9wbXhfZW5hYmxlKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0
bGRldiwgdW5zaWduZWQgc2VsZWN0b3IsDQotICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp
Z25lZCBncm91cCkNCitzdGF0aWMgaW50IGlteF9wbXhfc2V0KHN0cnVjdCBwaW5jdHJsX2RldiAq
cGN0bGRldiwgdW5zaWduZWQgc2VsZWN0b3IsDQorICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGdyb3VwKQ0KIHsNCiAgICAgICAgc3RydWN0IGlteF9waW5jdHJsICppcGN0bCA9IHBpbmN0
cmxfZGV2X2dldF9kcnZkYXRhKHBjdGxkZXYpOw0KICAgICAgICBjb25zdCBzdHJ1Y3QgaW14X3Bp
bmN0cmxfc29jX2luZm8gKmluZm8gPSBpcGN0bC0+aW5mbzsgQEAgLTI5OCw3ICsyOTgsNyBAQCBz
dGF0aWMgY29uc3Qgc3RydWN0IHBpbm11eF9vcHMgaW14X3BteF9vcHMgPSB7DQogICAgICAgIC5n
ZXRfZnVuY3Rpb25zX2NvdW50ID0gaW14X3BteF9nZXRfZnVuY3NfY291bnQsDQogICAgICAgIC5n
ZXRfZnVuY3Rpb25fbmFtZSA9IGlteF9wbXhfZ2V0X2Z1bmNfbmFtZSwNCiAgICAgICAgLmdldF9m
dW5jdGlvbl9ncm91cHMgPSBpbXhfcG14X2dldF9ncm91cHMsDQotICAgICAgIC5lbmFibGUgPSBp
bXhfcG14X2VuYWJsZSwNCisgICAgICAgLnNldF9tdXggPSBpbXhfcG14X3NldCwNCiB9Ow0KDQog
c3RhdGljIGludCBpbXhfcGluY29uZl9nZXQoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LCBk
aWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtaW14MS1jb3JlLmMgYi9kcml2ZXJz
L3BpbmN0cmwvcGluY3RybC1pbXgxLWNvcmUuYw0KaW5kZXggNDgzNDIwNzU3YzlmLi4xNzZhM2U2
MmYxY2YgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1pbXgxLWNvcmUuYw0K
KysrIGIvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtaW14MS1jb3JlLmMNCkBAIC0yOTgsOCArMjk4
LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwaW5jdHJsX29wcyBpbXgxX3BjdHJsX29wcyA9IHsN
Cg0KIH07DQoNCi1zdGF0aWMgaW50IGlteDFfcG14X2VuYWJsZShzdHJ1Y3QgcGluY3RybF9kZXYg
KnBjdGxkZXYsIHVuc2lnbmVkIHNlbGVjdG9yLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgZ3JvdXApDQorc3RhdGljIGludCBpbXgxX3BteF9zZXQoc3RydWN0IHBpbmN0cmxf
ZGV2ICpwY3RsZGV2LCB1bnNpZ25lZCBzZWxlY3RvciwNCisgICAgICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGdyb3VwKQ0KIHsNCiAgICAgICAgc3RydWN0IGlteDFfcGluY3RybCAqaXBjdGwg
PSBwaW5jdHJsX2Rldl9nZXRfZHJ2ZGF0YShwY3RsZGV2KTsNCiAgICAgICAgY29uc3Qgc3RydWN0
IGlteDFfcGluY3RybF9zb2NfaW5mbyAqaW5mbyA9IGlwY3RsLT5pbmZvOyBAQCAtMzg1LDcgKzM4
NSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGlubXV4X29wcyBpbXgxX3BteF9vcHMgPSB7DQog
ICAgICAgIC5nZXRfZnVuY3Rpb25zX2NvdW50ID0gaW14MV9wbXhfZ2V0X2Z1bmNzX2NvdW50LA0K
ICAgICAgICAuZ2V0X2Z1bmN0aW9uX25hbWUgPSBpbXgxX3BteF9nZXRfZnVuY19uYW1lLA0KICAg
ICAgICAuZ2V0X2Z1bmN0aW9uX2dyb3VwcyA9IGlteDFfcG14X2dldF9ncm91cHMsDQotICAgICAg
IC5lbmFibGUgPSBpbXgxX3BteF9lbmFibGUsDQorICAgICAgIC5zZXRfbXV4ID0gaW14MV9wbXhf
c2V0LA0KIH07DQoNCiBzdGF0aWMgaW50IGlteDFfcGluY29uZl9nZXQoc3RydWN0IHBpbmN0cmxf
ZGV2ICpwY3RsZGV2LCBkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtbGFudGlx
LmMgYi9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1sYW50aXEuYw0KaW5kZXggZDIyY2EyNTJiODBk
Li4yOTZlNWIzN2Y3NjggMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1sYW50
aXEuYw0KKysrIGIvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtbGFudGlxLmMNCkBAIC0yNTcsOSAr
MjU3LDkgQEAgc3RhdGljIGludCBtYXRjaF9ncm91cF9tdXgoY29uc3Qgc3RydWN0IGx0cV9waW5f
Z3JvdXAgKmdycCwNCiAgICAgICAgcmV0dXJuIHJldDsNCiB9DQoNCi1zdGF0aWMgaW50IGx0cV9w
bXhfZW5hYmxlKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0cmxkZXYsDQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZ1bmMsDQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIGdyb3VwKQ0KK3N0YXRpYyBpbnQgbHRxX3BteF9zZXQoc3RydWN0IHBp
bmN0cmxfZGV2ICpwY3RybGRldiwNCisgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZnVu
YywNCisgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZ3JvdXApDQogew0KICAgICAgICBz
dHJ1Y3QgbHRxX3Bpbm11eF9pbmZvICppbmZvID0gcGluY3RybF9kZXZfZ2V0X2RydmRhdGEocGN0
cmxkZXYpOw0KICAgICAgICBjb25zdCBzdHJ1Y3QgbHRxX3Bpbl9ncm91cCAqcGluX2dycCA9ICZp
bmZvLT5ncnBzW2dyb3VwXTsgQEAgLTMxNiw3ICszMTYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0
IHBpbm11eF9vcHMgbHRxX3BteF9vcHMgPSB7DQogICAgICAgIC5nZXRfZnVuY3Rpb25zX2NvdW50
ICAgID0gbHRxX3BteF9mdW5jX2NvdW50LA0KICAgICAgICAuZ2V0X2Z1bmN0aW9uX25hbWUgICAg
ICA9IGx0cV9wbXhfZnVuY19uYW1lLA0KICAgICAgICAuZ2V0X2Z1bmN0aW9uX2dyb3VwcyAgICA9
IGx0cV9wbXhfZ2V0X2dyb3VwcywNCi0gICAgICAgLmVuYWJsZSAgICAgICAgICAgICAgICAgPSBs
dHFfcG14X2VuYWJsZSwNCisgICAgICAgLnNldF9tdXggICAgICAgICAgICAgICAgPSBsdHFfcG14
X3NldCwNCiAgICAgICAgLmdwaW9fcmVxdWVzdF9lbmFibGUgICAgPSBsdHFfcG14X2dwaW9fcmVx
dWVzdF9lbmFibGUsDQogfTsNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9waW5jdHJs
LW14cy5jIGIvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtbXhzLmMgaW5kZXggNDBjNzZmMjY5OThj
Li42NzAzNTA5MWY4ZmQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1teHMu
Yw0KKysrIGIvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtbXhzLmMNCkBAIC0xOTUsOCArMTk1LDgg
QEAgc3RhdGljIGludCBteHNfcGluY3RybF9nZXRfZnVuY19ncm91cHMoc3RydWN0IHBpbmN0cmxf
ZGV2ICpwY3RsZGV2LA0KICAgICAgICByZXR1cm4gMDsNCiB9DQoNCi1zdGF0aWMgaW50IG14c19w
aW5jdHJsX2VuYWJsZShzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsIHVuc2lnbmVkIHNlbGVj
dG9yLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZ3JvdXApDQorc3Rh
dGljIGludCBteHNfcGluY3RybF9zZXRfbXV4KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwg
dW5zaWduZWQgc2VsZWN0b3IsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgZ3JvdXApDQogew0KICAgICAgICBzdHJ1Y3QgbXhzX3BpbmN0cmxfZGF0YSAqZCA9IHBpbmN0
cmxfZGV2X2dldF9kcnZkYXRhKHBjdGxkZXYpOw0KICAgICAgICBzdHJ1Y3QgbXhzX2dyb3VwICpn
ID0gJmQtPnNvYy0+Z3JvdXBzW2dyb3VwXTsgQEAgLTIyMyw3ICsyMjMsNyBAQCBzdGF0aWMgY29u
c3Qgc3RydWN0IHBpbm11eF9vcHMgbXhzX3Bpbm11eF9vcHMgPSB7DQogICAgICAgIC5nZXRfZnVu
Y3Rpb25zX2NvdW50ID0gbXhzX3BpbmN0cmxfZ2V0X2Z1bmNzX2NvdW50LA0KICAgICAgICAuZ2V0
X2Z1bmN0aW9uX25hbWUgPSBteHNfcGluY3RybF9nZXRfZnVuY19uYW1lLA0KICAgICAgICAuZ2V0
X2Z1bmN0aW9uX2dyb3VwcyA9IG14c19waW5jdHJsX2dldF9mdW5jX2dyb3VwcywNCi0gICAgICAg
LmVuYWJsZSA9IG14c19waW5jdHJsX2VuYWJsZSwNCisgICAgICAgLnNldF9tdXggPSBteHNfcGlu
Y3RybF9zZXRfbXV4LA0KIH07DQoNCiBzdGF0aWMgaW50IG14c19waW5jb25mX2dldChzdHJ1Y3Qg
cGluY3RybF9kZXYgKnBjdGxkZXYsIGRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvcGluY3Ry
bC1wYWxtYXMuYyBiL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLXBhbG1hcy5jDQppbmRleCBmMTNk
MGU3OGE0MWMuLmUzMDc5ZDNkMTlmZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvcGluY3RybC9waW5j
dHJsLXBhbG1hcy5jDQorKysgYi9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1wYWxtYXMuYw0KQEAg
LTY4NSw3ICs2ODUsOCBAQCBzdGF0aWMgaW50IHBhbG1hc19waW5jdHJsX2dldF9mdW5jX2dyb3Vw
cyhzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsDQogICAgICAgIHJldHVybiAwOw0KIH0NCg0K
LXN0YXRpYyBpbnQgcGFsbWFzX3BpbmN0cmxfZW5hYmxlKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0
bGRldiwgdW5zaWduZWQgZnVuY3Rpb24sDQorc3RhdGljIGludCBwYWxtYXNfcGluY3RybF9zZXRf
bXV4KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwNCisgICAgICAgICAgICAgICB1bnNpZ25l
ZCBmdW5jdGlvbiwNCiAgICAgICAgICAgICAgICB1bnNpZ25lZCBncm91cCkNCiB7DQogICAgICAg
IHN0cnVjdCBwYWxtYXNfcGN0cmxfY2hpcF9pbmZvICpwY2kgPSBwaW5jdHJsX2Rldl9nZXRfZHJ2
ZGF0YShwY3RsZGV2KTsgQEAgLTc0Miw3ICs3NDMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBp
bm11eF9vcHMgcGFsbWFzX3Bpbm11eF9vcHMgPSB7DQogICAgICAgIC5nZXRfZnVuY3Rpb25zX2Nv
dW50ID0gcGFsbWFzX3BpbmN0cmxfZ2V0X2Z1bmNzX2NvdW50LA0KICAgICAgICAuZ2V0X2Z1bmN0
aW9uX25hbWUgPSBwYWxtYXNfcGluY3RybF9nZXRfZnVuY19uYW1lLA0KICAgICAgICAuZ2V0X2Z1
bmN0aW9uX2dyb3VwcyA9IHBhbG1hc19waW5jdHJsX2dldF9mdW5jX2dyb3VwcywNCi0gICAgICAg
LmVuYWJsZSA9IHBhbG1hc19waW5jdHJsX2VuYWJsZSwNCisgICAgICAgLnNldF9tdXggPSBwYWxt
YXNfcGluY3RybF9zZXRfbXV4LA0KIH07DQoNCiBzdGF0aWMgaW50IHBhbG1hc19waW5jb25mX2dl
dChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsIGRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0
cmwvcGluY3RybC1yb2NrY2hpcC5jIGIvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtcm9ja2NoaXAu
Yw0KaW5kZXggNWU4YjJlMDRjZDdhLi5iOTFiOTY2YWRkOGYgMTAwNjQ0DQotLS0gYS9kcml2ZXJz
L3BpbmN0cmwvcGluY3RybC1yb2NrY2hpcC5jDQorKysgYi9kcml2ZXJzL3BpbmN0cmwvcGluY3Ry
bC1yb2NrY2hpcC5jDQpAQCAtODEzLDggKzgxMyw4IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfcG14
X2dldF9ncm91cHMoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LA0KICAgICAgICByZXR1cm4g
MDsNCiB9DQoNCi1zdGF0aWMgaW50IHJvY2tjaGlwX3BteF9lbmFibGUoc3RydWN0IHBpbmN0cmxf
ZGV2ICpwY3RsZGV2LCB1bnNpZ25lZCBzZWxlY3RvciwNCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGdyb3VwKQ0KK3N0
YXRpYyBpbnQgcm9ja2NoaXBfcG14X3NldChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsIHVu
c2lnbmVkIHNlbGVjdG9yLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGdy
b3VwKQ0KIHsNCiAgICAgICAgc3RydWN0IHJvY2tjaGlwX3BpbmN0cmwgKmluZm8gPSBwaW5jdHJs
X2Rldl9nZXRfZHJ2ZGF0YShwY3RsZGV2KTsNCiAgICAgICAgY29uc3QgdW5zaWduZWQgaW50ICpw
aW5zID0gaW5mby0+Z3JvdXBzW2dyb3VwXS5waW5zOyBAQCAtODg5LDcgKzg4OSw3IEBAIHN0YXRp
YyBjb25zdCBzdHJ1Y3QgcGlubXV4X29wcyByb2NrY2hpcF9wbXhfb3BzID0gew0KICAgICAgICAu
Z2V0X2Z1bmN0aW9uc19jb3VudCAgICA9IHJvY2tjaGlwX3BteF9nZXRfZnVuY3NfY291bnQsDQog
ICAgICAgIC5nZXRfZnVuY3Rpb25fbmFtZSAgICAgID0gcm9ja2NoaXBfcG14X2dldF9mdW5jX25h
bWUsDQogICAgICAgIC5nZXRfZnVuY3Rpb25fZ3JvdXBzICAgID0gcm9ja2NoaXBfcG14X2dldF9n
cm91cHMsDQotICAgICAgIC5lbmFibGUgICAgICAgICAgICAgICAgID0gcm9ja2NoaXBfcG14X2Vu
YWJsZSwNCisgICAgICAgLnNldF9tdXggICAgICAgICAgICAgICAgPSByb2NrY2hpcF9wbXhfc2V0
LA0KICAgICAgICAuZ3Bpb19zZXRfZGlyZWN0aW9uICAgICA9IHJvY2tjaGlwX3BteF9ncGlvX3Nl
dF9kaXJlY3Rpb24sDQogfTsNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9waW5jdHJs
LXNpbmdsZS5jIGIvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtc2luZ2xlLmMNCmluZGV4IDc4NGRl
MTNmYWNmMy4uOTAzMjQyMmFkMThmIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9waW5jdHJsL3BpbmN0
cmwtc2luZ2xlLmMNCisrKyBiL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLXNpbmdsZS5jDQpAQCAt
NDQ3LDcgKzQ0Nyw3IEBAIHN0YXRpYyBpbnQgcGNzX2dldF9mdW5jdGlvbihzdHJ1Y3QgcGluY3Ry
bF9kZXYgKnBjdGxkZXYsIHVuc2lnbmVkIHBpbiwNCiAgICAgICAgcmV0dXJuIDA7DQogfQ0KDQot
c3RhdGljIGludCBwY3NfZW5hYmxlKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwgdW5zaWdu
ZWQgZnNlbGVjdG9yLA0KK3N0YXRpYyBpbnQgcGNzX3NldF9tdXgoc3RydWN0IHBpbmN0cmxfZGV2
ICpwY3RsZGV2LCB1bnNpZ25lZCBmc2VsZWN0b3IsDQogICAgICAgIHVuc2lnbmVkIGdyb3VwKQ0K
IHsNCiAgICAgICAgc3RydWN0IHBjc19kZXZpY2UgKnBjczsNCkBAIC01MTksNyArNTE5LDcgQEAg
c3RhdGljIGNvbnN0IHN0cnVjdCBwaW5tdXhfb3BzIHBjc19waW5tdXhfb3BzID0gew0KICAgICAg
ICAuZ2V0X2Z1bmN0aW9uc19jb3VudCA9IHBjc19nZXRfZnVuY3Rpb25zX2NvdW50LA0KICAgICAg
ICAuZ2V0X2Z1bmN0aW9uX25hbWUgPSBwY3NfZ2V0X2Z1bmN0aW9uX25hbWUsDQogICAgICAgIC5n
ZXRfZnVuY3Rpb25fZ3JvdXBzID0gcGNzX2dldF9mdW5jdGlvbl9ncm91cHMsDQotICAgICAgIC5l
bmFibGUgPSBwY3NfZW5hYmxlLA0KKyAgICAgICAuc2V0X211eCA9IHBjc19zZXhfbXV4LA0KICAg
ICAgICAuZ3Bpb19yZXF1ZXN0X2VuYWJsZSA9IHBjc19yZXF1ZXN0X2dwaW8sICB9Ow0KDQpkaWZm
IC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtc3QuYyBiL2RyaXZlcnMvcGluY3RybC9w
aW5jdHJsLXN0LmMgaW5kZXggNTQ3NTM3NGQ4MDNmLi42YzRjNDFiZWQxZTMgMTAwNjQ0DQotLS0g
YS9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC1zdC5jDQorKysgYi9kcml2ZXJzL3BpbmN0cmwvcGlu
Y3RybC1zdC5jDQpAQCAtOTE0LDggKzkxNCw4IEBAIHN0YXRpYyBzdHJ1Y3Qgc3RfcGlvX2NvbnRy
b2wgKnN0X2dldF9waW9fY29udHJvbCgNCiAgICAgICAgcmV0dXJuICZiYW5rLT5wYzsNCiB9DQoN
Ci1zdGF0aWMgaW50IHN0X3BteF9lbmFibGUoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LCB1
bnNpZ25lZCBmc2VsZWN0b3IsDQotICAgICAgICAgICAgICAgdW5zaWduZWQgZ3JvdXApDQorc3Rh
dGljIGludCBzdF9wbXhfc2V0X211eChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsIHVuc2ln
bmVkIGZzZWxlY3RvciwNCisgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGdyb3VwKQ0K
IHsNCiAgICAgICAgc3RydWN0IHN0X3BpbmN0cmwgKmluZm8gPSBwaW5jdHJsX2Rldl9nZXRfZHJ2
ZGF0YShwY3RsZGV2KTsNCiAgICAgICAgc3RydWN0IHN0X3BpbmNvbmYgKmNvbmYgPSBpbmZvLT5n
cm91cHNbZ3JvdXBdLnBpbl9jb25mOyBAQCAtOTUxLDcgKzk1MSw3IEBAIHN0YXRpYyBzdHJ1Y3Qg
cGlubXV4X29wcyBzdF9wbXhvcHMgPSB7DQogICAgICAgIC5nZXRfZnVuY3Rpb25zX2NvdW50ICAg
ID0gc3RfcG14X2dldF9mdW5jc19jb3VudCwNCiAgICAgICAgLmdldF9mdW5jdGlvbl9uYW1lICAg
ICAgPSBzdF9wbXhfZ2V0X2ZuYW1lLA0KICAgICAgICAuZ2V0X2Z1bmN0aW9uX2dyb3VwcyAgICA9
IHN0X3BteF9nZXRfZ3JvdXBzLA0KLSAgICAgICAuZW5hYmxlICAgICAgICAgICAgICAgICA9IHN0
X3BteF9lbmFibGUsDQorICAgICAgIC5zZXRfbXV4ICAgICAgICAgICAgICAgID0gc3RfcG14X3Nl
dF9tdXgsDQogICAgICAgIC5ncGlvX3NldF9kaXJlY3Rpb24gICAgID0gc3RfcG14X3NldF9ncGlv
X2RpcmVjdGlvbiwNCiB9Ow0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwt
dGIxMHguYyBiL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLXRiMTB4LmMgaW5kZXggNzFjNWQ0ZjBj
NTM4Li4zYjliZmNmNzE3YWMgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC10
YjEweC5jDQorKysgYi9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC10YjEweC5jDQpAQCAtNjk3LDcg
KzY5Nyw3IEBAIHN0YXRpYyB2b2lkIHRiMTB4X2dwaW9fZGlzYWJsZV9mcmVlKHN0cnVjdCBwaW5j
dHJsX2RldiAqcGN0bCwNCiAgICAgICAgbXV0ZXhfdW5sb2NrKCZzdGF0ZS0+bXV0ZXgpOw0KIH0N
Cg0KLXN0YXRpYyBpbnQgdGIxMHhfcGN0bF9lbmFibGUoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3Rs
LA0KK3N0YXRpYyBpbnQgdGIxMHhfcGN0bF9zZXRfbXV4KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0
bCwNCiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZ1bmNfc2VsZWN0b3IsIHVuc2ln
bmVkIGdyb3VwX3NlbGVjdG9yKSAgew0KICAgICAgICBzdHJ1Y3QgdGIxMHhfcGluY3RybCAqc3Rh
dGUgPSBwaW5jdHJsX2Rldl9nZXRfZHJ2ZGF0YShwY3RsKTsgQEAgLTc0NCw3ICs3NDQsNyBAQCBz
dGF0aWMgc3RydWN0IHBpbm11eF9vcHMgdGIxMHhfcGlubXV4X29wcyA9IHsNCiAgICAgICAgLmdl
dF9mdW5jdGlvbl9ncm91cHMgPSB0YjEweF9nZXRfZnVuY3Rpb25fZ3JvdXBzLA0KICAgICAgICAu
Z3Bpb19yZXF1ZXN0X2VuYWJsZSA9IHRiMTB4X2dwaW9fcmVxdWVzdF9lbmFibGUsDQogICAgICAg
IC5ncGlvX2Rpc2FibGVfZnJlZSA9IHRiMTB4X2dwaW9fZGlzYWJsZV9mcmVlLA0KLSAgICAgICAu
ZW5hYmxlID0gdGIxMHhfcGN0bF9lbmFibGUsDQorICAgICAgIC5zZXRfbXV4ID0gdGIxMHhfcGN0
bF9zZXRfbXV4LA0KIH07DQoNCiBzdGF0aWMgc3RydWN0IHBpbmN0cmxfZGVzYyB0YjEweF9waW5k
ZXNjID0geyBkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtdGVncmEteHVzYi5j
IGIvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtdGVncmEteHVzYi5jDQppbmRleCBhMDY2MjA0NzQ4
NDUuLjQ2NDhjOWU1YzU4MiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLXRl
Z3JhLXh1c2IuYw0KKysrIGIvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtdGVncmEteHVzYi5jDQpA
QCAtMjgxLDkgKzI4MSw5IEBAIHN0YXRpYyBpbnQgdGVncmFfeHVzYl9wYWRjdGxfZ2V0X2Z1bmN0
aW9uX2dyb3VwcyhzdHJ1Y3QgcGluY3RybF9kZXYgKnBpbmN0cmwsDQogICAgICAgIHJldHVybiAw
Ow0KIH0NCg0KLXN0YXRpYyBpbnQgdGVncmFfeHVzYl9wYWRjdGxfcGlubXV4X2VuYWJsZShzdHJ1
Y3QgcGluY3RybF9kZXYgKnBpbmN0cmwsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgaW50IGZ1bmN0aW9uLA0KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBncm91cCkNCitzdGF0aWMgaW50IHRl
Z3JhX3h1c2JfcGFkY3RsX3Bpbm11eF9zZXQoc3RydWN0IHBpbmN0cmxfZGV2ICpwaW5jdHJsLA0K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmdW5j
dGlvbiwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp
bnQgZ3JvdXApDQogew0KICAgICAgICBzdHJ1Y3QgdGVncmFfeHVzYl9wYWRjdGwgKnBhZGN0bCA9
IHBpbmN0cmxfZGV2X2dldF9kcnZkYXRhKHBpbmN0cmwpOw0KICAgICAgICBjb25zdCBzdHJ1Y3Qg
dGVncmFfeHVzYl9wYWRjdGxfbGFuZSAqbGFuZTsgQEAgLTMxMSw3ICszMTEsNyBAQCBzdGF0aWMg
Y29uc3Qgc3RydWN0IHBpbm11eF9vcHMgdGVncmFfeHVzYl9wYWRjdGxfcGlubXV4X29wcyA9IHsN
CiAgICAgICAgLmdldF9mdW5jdGlvbnNfY291bnQgPSB0ZWdyYV94dXNiX3BhZGN0bF9nZXRfZnVu
Y3Rpb25zX2NvdW50LA0KICAgICAgICAuZ2V0X2Z1bmN0aW9uX25hbWUgPSB0ZWdyYV94dXNiX3Bh
ZGN0bF9nZXRfZnVuY3Rpb25fbmFtZSwNCiAgICAgICAgLmdldF9mdW5jdGlvbl9ncm91cHMgPSB0
ZWdyYV94dXNiX3BhZGN0bF9nZXRfZnVuY3Rpb25fZ3JvdXBzLA0KLSAgICAgICAuZW5hYmxlID0g
dGVncmFfeHVzYl9wYWRjdGxfcGlubXV4X2VuYWJsZSwNCisgICAgICAgLnNldF9tdXggPSB0ZWdy
YV94dXNiX3BhZGN0bF9waW5tdXhfc2V0LA0KIH07DQoNCiBzdGF0aWMgaW50IHRlZ3JhX3h1c2Jf
cGFkY3RsX3BpbmNvbmZfZ3JvdXBfZ2V0KHN0cnVjdCBwaW5jdHJsX2RldiAqcGluY3RybCwgZGlm
ZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9waW5jdHJsLXRlZ3JhLmMgYi9kcml2ZXJzL3BpbmN0
cmwvcGluY3RybC10ZWdyYS5jIGluZGV4IDE1MGFmNTUwM2MwOS4uZTU5NDlkNTFiYzUyIDEwMDY0
NA0KLS0tIGEvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtdGVncmEuYw0KKysrIGIvZHJpdmVycy9w
aW5jdHJsL3BpbmN0cmwtdGVncmEuYw0KQEAgLTI2Miw4ICsyNjIsOSBAQCBzdGF0aWMgaW50IHRl
Z3JhX3BpbmN0cmxfZ2V0X2Z1bmNfZ3JvdXBzKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwN
CiAgICAgICAgcmV0dXJuIDA7DQogfQ0KDQotc3RhdGljIGludCB0ZWdyYV9waW5jdHJsX2VuYWJs
ZShzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsIHVuc2lnbmVkIGZ1bmN0aW9uLA0KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGdyb3VwKQ0KK3N0YXRpYyBpbnQgdGVn
cmFfcGluY3RybF9zZXRfbXV4KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwNCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZ1bmN0aW9uLA0KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZ3JvdXApDQogew0KICAgICAgICBzdHJ1Y3Qg
dGVncmFfcG14ICpwbXggPSBwaW5jdHJsX2Rldl9nZXRfZHJ2ZGF0YShwY3RsZGV2KTsNCiAgICAg
ICAgY29uc3Qgc3RydWN0IHRlZ3JhX3Bpbmdyb3VwICpnOw0KQEAgLTI5NCw3ICsyOTUsNyBAQCBz
dGF0aWMgY29uc3Qgc3RydWN0IHBpbm11eF9vcHMgdGVncmFfcGlubXV4X29wcyA9IHsNCiAgICAg
ICAgLmdldF9mdW5jdGlvbnNfY291bnQgPSB0ZWdyYV9waW5jdHJsX2dldF9mdW5jc19jb3VudCwN
CiAgICAgICAgLmdldF9mdW5jdGlvbl9uYW1lID0gdGVncmFfcGluY3RybF9nZXRfZnVuY19uYW1l
LA0KICAgICAgICAuZ2V0X2Z1bmN0aW9uX2dyb3VwcyA9IHRlZ3JhX3BpbmN0cmxfZ2V0X2Z1bmNf
Z3JvdXBzLA0KLSAgICAgICAuZW5hYmxlID0gdGVncmFfcGluY3RybF9lbmFibGUsDQorICAgICAg
IC5zZXRfbXV4ID0gdGVncmFfcGluY3RybF9zZXRfbXV4LA0KIH07DQoNCiBzdGF0aWMgaW50IHRl
Z3JhX3BpbmNvbmZfcmVnKHN0cnVjdCB0ZWdyYV9wbXggKnBteCwgZGlmZiAtLWdpdCBhL2RyaXZl
cnMvcGluY3RybC9waW5jdHJsLXR6MTA5MC1wZGMuYyBiL2RyaXZlcnMvcGluY3RybC9waW5jdHJs
LXR6MTA5MC1wZGMuYw0KaW5kZXggNDFlODFhMzVjYWJiLi4zYmI2YTNiNzg4NjQgMTAwNjQ0DQot
LS0gYS9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC10ejEwOTAtcGRjLmMNCisrKyBiL2RyaXZlcnMv
cGluY3RybC9waW5jdHJsLXR6MTA5MC1wZGMuYw0KQEAgLTU0Nyw4ICs1NDcsOSBAQCBzdGF0aWMg
dm9pZCB0ejEwOTBfcGRjX3BpbmN0cmxfbXV4KHN0cnVjdCB0ejEwOTBfcGRjX3BteCAqcG14LA0K
ICAgICAgICBfX2dsb2JhbF91bmxvY2syKGZsYWdzKTsNCiB9DQoNCi1zdGF0aWMgaW50IHR6MTA5
MF9wZGNfcGluY3RybF9lbmFibGUoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LA0KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmdW5jdGlvbiwgdW5z
aWduZWQgaW50IGdyb3VwKQ0KK3N0YXRpYyBpbnQgdHoxMDkwX3BkY19waW5jdHJsX3NldF9tdXgo
c3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBpbnQgZnVuY3Rpb24sDQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBncm91cCkNCiB7DQogICAgICAgIHN0cnVjdCB0
ejEwOTBfcGRjX3BteCAqcG14ID0gcGluY3RybF9kZXZfZ2V0X2RydmRhdGEocGN0bGRldik7DQog
ICAgICAgIGNvbnN0IHN0cnVjdCB0ejEwOTBfcGRjX3Bpbmdyb3VwICpncnAgPSAmdHoxMDkwX3Bk
Y19ncm91cHNbZ3JvdXBdOyBAQCAtNjM0LDcgKzYzNSw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGlubXV4
X29wcyB0ejEwOTBfcGRjX3Bpbm11eF9vcHMgPSB7DQogICAgICAgIC5nZXRfZnVuY3Rpb25zX2Nv
dW50ICAgID0gdHoxMDkwX3BkY19waW5jdHJsX2dldF9mdW5jc19jb3VudCwNCiAgICAgICAgLmdl
dF9mdW5jdGlvbl9uYW1lICAgICAgPSB0ejEwOTBfcGRjX3BpbmN0cmxfZ2V0X2Z1bmNfbmFtZSwN
CiAgICAgICAgLmdldF9mdW5jdGlvbl9ncm91cHMgICAgPSB0ejEwOTBfcGRjX3BpbmN0cmxfZ2V0
X2Z1bmNfZ3JvdXBzLA0KLSAgICAgICAuZW5hYmxlICAgICAgICAgICAgICAgICA9IHR6MTA5MF9w
ZGNfcGluY3RybF9lbmFibGUsDQorICAgICAgIC5zZXRfbXV4ICAgICAgICAgICAgICAgID0gdHox
MDkwX3BkY19waW5jdHJsX3NldF9tdXgsDQogICAgICAgIC5ncGlvX3JlcXVlc3RfZW5hYmxlICAg
ID0gdHoxMDkwX3BkY19waW5jdHJsX2dwaW9fcmVxdWVzdF9lbmFibGUsDQogICAgICAgIC5ncGlv
X2Rpc2FibGVfZnJlZSAgICAgID0gdHoxMDkwX3BkY19waW5jdHJsX2dwaW9fZGlzYWJsZV9mcmVl
LA0KIH07DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtdHoxMDkwLmMgYi9k
cml2ZXJzL3BpbmN0cmwvcGluY3RybC10ejEwOTAuYw0KaW5kZXggMjQwODIyMTY4NDJlLi40OGQz
NjQxM2I5OWYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC10ejEwOTAuYw0K
KysrIGIvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtdHoxMDkwLmMNCkBAIC0xNDE1LDggKzE0MTUs
OCBAQCBmb3VuZF9tdXg6DQogICogdGhlIGVmZmVjdCBpcyB0aGUgc2FtZSBhcyBlbmFibGluZyB0
aGUgZnVuY3Rpb24gb24gZWFjaCBpbmRpdmlkdWFsIHBpbiBpbiB0aGUNCiAgKiBncm91cC4NCiAg
Ki8NCi1zdGF0aWMgaW50IHR6MTA5MF9waW5jdHJsX2VuYWJsZShzdHJ1Y3QgcGluY3RybF9kZXYg
KnBjdGxkZXYsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg
ZnVuY3Rpb24sIHVuc2lnbmVkIGludCBncm91cCkNCitzdGF0aWMgaW50IHR6MTA5MF9waW5jdHJs
X3NldF9tdXgoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LA0KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmdW5jdGlvbiwgdW5zaWduZWQgaW50IGdyb3Vw
KQ0KIHsNCiAgICAgICAgc3RydWN0IHR6MTA5MF9wbXggKnBteCA9IHBpbmN0cmxfZGV2X2dldF9k
cnZkYXRhKHBjdGxkZXYpOw0KICAgICAgICBzdHJ1Y3QgdHoxMDkwX3Bpbmdyb3VwICpncnA7DQpA
QCAtMTUxNyw3ICsxNTE3LDcgQEAgc3RhdGljIHN0cnVjdCBwaW5tdXhfb3BzIHR6MTA5MF9waW5t
dXhfb3BzID0gew0KICAgICAgICAuZ2V0X2Z1bmN0aW9uc19jb3VudCAgICA9IHR6MTA5MF9waW5j
dHJsX2dldF9mdW5jc19jb3VudCwNCiAgICAgICAgLmdldF9mdW5jdGlvbl9uYW1lICAgICAgPSB0
ejEwOTBfcGluY3RybF9nZXRfZnVuY19uYW1lLA0KICAgICAgICAuZ2V0X2Z1bmN0aW9uX2dyb3Vw
cyAgICA9IHR6MTA5MF9waW5jdHJsX2dldF9mdW5jX2dyb3VwcywNCi0gICAgICAgLmVuYWJsZSAg
ICAgICAgICAgICAgICAgPSB0ejEwOTBfcGluY3RybF9lbmFibGUsDQorICAgICAgIC5zZXRfbXV4
ICAgICAgICAgICAgICAgID0gdHoxMDkwX3BpbmN0cmxfc2V0X211eCwNCiAgICAgICAgLmdwaW9f
cmVxdWVzdF9lbmFibGUgICAgPSB0ejEwOTBfcGluY3RybF9ncGlvX3JlcXVlc3RfZW5hYmxlLA0K
ICAgICAgICAuZ3Bpb19kaXNhYmxlX2ZyZWUgICAgICA9IHR6MTA5MF9waW5jdHJsX2dwaW9fZGlz
YWJsZV9mcmVlLA0KIH07DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtdTMw
MC5jIGIvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtdTMwMC5jIGluZGV4IDA5NTliYjM2NDUwZi4u
ZTljNzExM2Q4MWYyIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9waW5jdHJsL3BpbmN0cmwtdTMwMC5j
DQorKysgYi9kcml2ZXJzL3BpbmN0cmwvcGluY3RybC11MzAwLmMNCkBAIC05NTUsOCArOTU1LDgg
QEAgc3RhdGljIHZvaWQgdTMwMF9wbXhfZW5kaXNhYmxlKHN0cnVjdCB1MzAwX3BteCAqdXBteCwg
dW5zaWduZWQgc2VsZWN0b3IsDQogICAgICAgIH0NCiB9DQoNCi1zdGF0aWMgaW50IHUzMDBfcG14
X2VuYWJsZShzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsIHVuc2lnbmVkIHNlbGVjdG9yLA0K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZ3JvdXApDQorc3RhdGljIGludCB1
MzAwX3BteF9zZXRfbXV4KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwgdW5zaWduZWQgc2Vs
ZWN0b3IsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZ3JvdXApDQogew0K
ICAgICAgICBzdHJ1Y3QgdTMwMF9wbXggKnVwbXg7DQoNCkBAIC05OTQsNyArOTk0LDcgQEAgc3Rh
dGljIGNvbnN0IHN0cnVjdCBwaW5tdXhfb3BzIHUzMDBfcG14X29wcyA9IHsNCiAgICAgICAgLmdl
dF9mdW5jdGlvbnNfY291bnQgPSB1MzAwX3BteF9nZXRfZnVuY3NfY291bnQsDQogICAgICAgIC5n
ZXRfZnVuY3Rpb25fbmFtZSA9IHUzMDBfcG14X2dldF9mdW5jX25hbWUsDQogICAgICAgIC5nZXRf
ZnVuY3Rpb25fZ3JvdXBzID0gdTMwMF9wbXhfZ2V0X2dyb3VwcywNCi0gICAgICAgLmVuYWJsZSA9
IHUzMDBfcG14X2VuYWJsZSwNCisgICAgICAgLnNldF9tdXggPSB1MzAwX3BteF9zZXRfbXV4LA0K
IH07DQoNCiBzdGF0aWMgaW50IHUzMDBfcGluX2NvbmZpZ19nZXQoc3RydWN0IHBpbmN0cmxfZGV2
ICpwY3RsZGV2LCB1bnNpZ25lZCBwaW4sIGRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvcGlu
bXV4LmMgYi9kcml2ZXJzL3BpbmN0cmwvcGlubXV4LmMgaW5kZXggYzA1NWRhZjlhODBmLi5iODc0
NDU4ZGNiODggMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3BpbmN0cmwvcGlubXV4LmMNCisrKyBiL2Ry
aXZlcnMvcGluY3RybC9waW5tdXguYw0KQEAgLTQxLDcgKzQxLDcgQEAgaW50IHBpbm11eF9jaGVj
a19vcHMoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2KQ0KICAgICAgICAgICAgIW9wcy0+Z2V0
X2Z1bmN0aW9uc19jb3VudCB8fA0KICAgICAgICAgICAgIW9wcy0+Z2V0X2Z1bmN0aW9uX25hbWUg
fHwNCiAgICAgICAgICAgICFvcHMtPmdldF9mdW5jdGlvbl9ncm91cHMgfHwNCi0gICAgICAgICAg
ICFvcHMtPmVuYWJsZSkgew0KKyAgICAgICAgICAgIW9wcy0+c2V0X211eCkgew0KICAgICAgICAg
ICAgICAgIGRldl9lcnIocGN0bGRldi0+ZGV2LCAicGlubXV4IG9wcyBsYWNrcyBuZWNlc3Nhcnkg
ZnVuY3Rpb25zXG4iKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCiAgICAgICAg
fQ0KQEAgLTQ0NSwxNSArNDQ1LDE1IEBAIGludCBwaW5tdXhfZW5hYmxlX3NldHRpbmcoc3RydWN0
IHBpbmN0cmxfc2V0dGluZyBjb25zdCAqc2V0dGluZykNCiAgICAgICAgICAgICAgICBkZXNjLT5t
dXhfc2V0dGluZyA9ICYoc2V0dGluZy0+ZGF0YS5tdXgpOw0KICAgICAgICB9DQoNCi0gICAgICAg
cmV0ID0gb3BzLT5lbmFibGUocGN0bGRldiwgc2V0dGluZy0+ZGF0YS5tdXguZnVuYywNCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgc2V0dGluZy0+ZGF0YS5tdXguZ3JvdXApOw0KKyAgICAgICBy
ZXQgPSBvcHMtPnNldF9tdXgocGN0bGRldiwgc2V0dGluZy0+ZGF0YS5tdXguZnVuYywNCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmctPmRhdGEubXV4Lmdyb3VwKTsNCg0KICAgICAg
ICBpZiAocmV0KQ0KLSAgICAgICAgICAgICAgIGdvdG8gZXJyX2VuYWJsZTsNCisgICAgICAgICAg
ICAgICBnb3RvIGVycl9zZXRfbXV4Ow0KDQogICAgICAgIHJldHVybiAwOw0KDQotZXJyX2VuYWJs
ZToNCitlcnJfc2V0X211eDoNCiAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bV9waW5zOyBpKysp
IHsNCiAgICAgICAgICAgICAgICBkZXNjID0gcGluX2Rlc2NfZ2V0KHBjdGxkZXYsIHBpbnNbaV0p
Ow0KICAgICAgICAgICAgICAgIGlmIChkZXNjKQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3Ry
bC9xY29tL3BpbmN0cmwtbXNtLmMgYi9kcml2ZXJzL3BpbmN0cmwvcWNvbS9waW5jdHJsLW1zbS5j
DQppbmRleCA4MGE2NGNhZDkwN2QuLjAxZWFiNDdhNzQ2ZiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv
cGluY3RybC9xY29tL3BpbmN0cmwtbXNtLmMNCisrKyBiL2RyaXZlcnMvcGluY3RybC9xY29tL3Bp
bmN0cmwtbXNtLmMNCkBAIC0xMzQsOSArMTM0LDkgQEAgc3RhdGljIGludCBtc21fZ2V0X2Z1bmN0
aW9uX2dyb3VwcyhzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsDQogICAgICAgIHJldHVybiAw
Ow0KIH0NCg0KLXN0YXRpYyBpbnQgbXNtX3Bpbm11eF9lbmFibGUoc3RydWN0IHBpbmN0cmxfZGV2
ICpwY3RsZGV2LA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBmdW5jdGlv
biwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZ3JvdXApDQorc3RhdGlj
IGludCBtc21fcGlubXV4X3NldF9tdXgoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LA0KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZnVuY3Rpb24sDQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBncm91cCkNCiB7DQogICAgICAgIHN0cnVjdCBt
c21fcGluY3RybCAqcGN0cmwgPSBwaW5jdHJsX2Rldl9nZXRfZHJ2ZGF0YShwY3RsZGV2KTsNCiAg
ICAgICAgY29uc3Qgc3RydWN0IG1zbV9waW5ncm91cCAqZzsNCkBAIC0xNzAsNyArMTcwLDcgQEAg
c3RhdGljIGNvbnN0IHN0cnVjdCBwaW5tdXhfb3BzIG1zbV9waW5tdXhfb3BzID0gew0KICAgICAg
ICAuZ2V0X2Z1bmN0aW9uc19jb3VudCAgICA9IG1zbV9nZXRfZnVuY3Rpb25zX2NvdW50LA0KICAg
ICAgICAuZ2V0X2Z1bmN0aW9uX25hbWUgICAgICA9IG1zbV9nZXRfZnVuY3Rpb25fbmFtZSwNCiAg
ICAgICAgLmdldF9mdW5jdGlvbl9ncm91cHMgICAgPSBtc21fZ2V0X2Z1bmN0aW9uX2dyb3VwcywN
Ci0gICAgICAgLmVuYWJsZSAgICAgICAgICAgICAgICAgPSBtc21fcGlubXV4X2VuYWJsZSwNCisg
ICAgICAgLnNldF9tdXggICAgICAgICAgICAgICAgPSBtc21fcGlubXV4X3NldF9tdXgsDQogfTsN
Cg0KIHN0YXRpYyBpbnQgbXNtX2NvbmZpZ19yZWcoc3RydWN0IG1zbV9waW5jdHJsICpwY3RybCwg
ZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9zYW1zdW5nL3BpbmN0cmwtZXh5bm9zNTQ0MC5j
IGIvZHJpdmVycy9waW5jdHJsL3NhbXN1bmcvcGluY3RybC1leHlub3M1NDQwLmMNCmluZGV4IDYw
M2RhMmY5ZGQ5NS4uYjk5NWVjMmM1ZDE2IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9waW5jdHJsL3Nh
bXN1bmcvcGluY3RybC1leHlub3M1NDQwLmMNCisrKyBiL2RyaXZlcnMvcGluY3RybC9zYW1zdW5n
L3BpbmN0cmwtZXh5bm9zNTQ0MC5jDQpAQCAtMzY0LDggKzM2NCw5IEBAIHN0YXRpYyB2b2lkIGV4
eW5vczU0NDBfcGlubXV4X3NldHVwKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwgdW5zaWdu
ZWQgc2VsZWN0ICB9DQoNCiAvKiBlbmFibGUgYSBzcGVjaWZpZWQgcGlubXV4IGJ5IHdyaXRpbmcg
dG8gcmVnaXN0ZXJzICovIC1zdGF0aWMgaW50IGV4eW5vczU0NDBfcGlubXV4X2VuYWJsZShzdHJ1
Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsIHVuc2lnbmVkIHNlbGVjdG9yLA0KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGdyb3VwKQ0KK3N0YXRpYyBpbnQg
ZXh5bm9zNTQ0MF9waW5tdXhfc2V0X211eChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsDQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2VsZWN0b3IsDQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZ3JvdXApDQogew0K
ICAgICAgICBleHlub3M1NDQwX3Bpbm11eF9zZXR1cChwY3RsZGV2LCBzZWxlY3RvciwgZ3JvdXAs
IHRydWUpOw0KICAgICAgICByZXR1cm4gMDsNCkBAIC0zODcsNyArMzg4LDcgQEAgc3RhdGljIGNv
bnN0IHN0cnVjdCBwaW5tdXhfb3BzIGV4eW5vczU0NDBfcGlubXV4X29wcyA9IHsNCiAgICAgICAg
LmdldF9mdW5jdGlvbnNfY291bnQgICAgPSBleHlub3M1NDQwX2dldF9mdW5jdGlvbnNfY291bnQs
DQogICAgICAgIC5nZXRfZnVuY3Rpb25fbmFtZSAgICAgID0gZXh5bm9zNTQ0MF9waW5tdXhfZ2V0
X2ZuYW1lLA0KICAgICAgICAuZ2V0X2Z1bmN0aW9uX2dyb3VwcyAgICA9IGV4eW5vczU0NDBfcGlu
bXV4X2dldF9ncm91cHMsDQotICAgICAgIC5lbmFibGUgICAgICAgICAgICAgICAgID0gZXh5bm9z
NTQ0MF9waW5tdXhfZW5hYmxlLA0KKyAgICAgICAuc2V0X211eCAgICAgICAgICAgICAgICA9IGV4
eW5vczU0NDBfcGlubXV4X3NldF9tdXgsDQogICAgICAgIC5ncGlvX3NldF9kaXJlY3Rpb24gICAg
ID0gZXh5bm9zNTQ0MF9waW5tdXhfZ3Bpb19zZXRfZGlyZWN0aW9uLA0KIH07DQoNCmRpZmYgLS1n
aXQgYS9kcml2ZXJzL3BpbmN0cmwvc2Ftc3VuZy9waW5jdHJsLXNhbXN1bmcuYyBiL2RyaXZlcnMv
cGluY3RybC9zYW1zdW5nL3BpbmN0cmwtc2Ftc3VuZy5jDQppbmRleCBiMDc0MDZkYTMzM2MuLjRh
NDc2OTFjMzJiMSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvcGluY3RybC9zYW1zdW5nL3BpbmN0cmwt
c2Ftc3VuZy5jDQorKysgYi9kcml2ZXJzL3BpbmN0cmwvc2Ftc3VuZy9waW5jdHJsLXNhbXN1bmcu
Yw0KQEAgLTQwMSw4ICs0MDEsOSBAQCBzdGF0aWMgdm9pZCBzYW1zdW5nX3Bpbm11eF9zZXR1cChz
dHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsIHVuc2lnbmVkIHNlbGVjdG9yLCAgfQ0KDQogLyog
ZW5hYmxlIGEgc3BlY2lmaWVkIHBpbm11eCBieSB3cml0aW5nIHRvIHJlZ2lzdGVycyAqLyAtc3Rh
dGljIGludCBzYW1zdW5nX3Bpbm11eF9lbmFibGUoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2
LCB1bnNpZ25lZCBzZWxlY3RvciwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBncm91cCkNCitzdGF0aWMgaW50IHNhbXN1bmdfcGlubXV4X3NldF9tdXgo
c3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIHNlbGVjdG9yLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGdyb3VwKQ0KIHsNCiAgICAgICAgc2Ftc3VuZ19waW5tdXhfc2V0dXAocGN0
bGRldiwgc2VsZWN0b3IsIGdyb3VwLCB0cnVlKTsNCiAgICAgICAgcmV0dXJuIDA7DQpAQCAtNDEz
LDcgKzQxNCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGlubXV4X29wcyBzYW1zdW5nX3Bpbm11
eF9vcHMgPSB7DQogICAgICAgIC5nZXRfZnVuY3Rpb25zX2NvdW50ICAgID0gc2Ftc3VuZ19nZXRf
ZnVuY3Rpb25zX2NvdW50LA0KICAgICAgICAuZ2V0X2Z1bmN0aW9uX25hbWUgICAgICA9IHNhbXN1
bmdfcGlubXV4X2dldF9mbmFtZSwNCiAgICAgICAgLmdldF9mdW5jdGlvbl9ncm91cHMgICAgPSBz
YW1zdW5nX3Bpbm11eF9nZXRfZ3JvdXBzLA0KLSAgICAgICAuZW5hYmxlICAgICAgICAgICAgICAg
ICA9IHNhbXN1bmdfcGlubXV4X2VuYWJsZSwNCisgICAgICAgLnNldF9tdXggICAgICAgICAgICAg
ICAgPSBzYW1zdW5nX3Bpbm11eF9zZXRfbXV4LA0KIH07DQoNCiAvKiBzZXQgb3IgZ2V0IHRoZSBw
aW4gY29uZmlnIHNldHRpbmdzIGZvciBhIHNwZWNpZmllZCBwaW4gKi8gZGlmZiAtLWdpdCBhL2Ry
aXZlcnMvcGluY3RybC9zaC1wZmMvcGluY3RybC5jIGIvZHJpdmVycy9waW5jdHJsL3NoLXBmYy9w
aW5jdHJsLmMNCmluZGV4IDExZGIzZWUzOWQ0MC4uOTEwZGVhZWZhMGFjIDEwMDY0NA0KLS0tIGEv
ZHJpdmVycy9waW5jdHJsL3NoLXBmYy9waW5jdHJsLmMNCisrKyBiL2RyaXZlcnMvcGluY3RybC9z
aC1wZmMvcGluY3RybC5jDQpAQCAtMzEyLDggKzMxMiw4IEBAIHN0YXRpYyBpbnQgc2hfcGZjX2dl
dF9mdW5jdGlvbl9ncm91cHMoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LA0KICAgICAgICBy
ZXR1cm4gMDsNCiB9DQoNCi1zdGF0aWMgaW50IHNoX3BmY19mdW5jX2VuYWJsZShzdHJ1Y3QgcGlu
Y3RybF9kZXYgKnBjdGxkZXYsIHVuc2lnbmVkIHNlbGVjdG9yLA0KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgZ3JvdXApDQorc3RhdGljIGludCBzaF9wZmNfZnVuY19zZXRf
bXV4KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwgdW5zaWduZWQgc2VsZWN0b3IsDQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZ3JvdXApDQogew0KICAgICAgICBz
dHJ1Y3Qgc2hfcGZjX3BpbmN0cmwgKnBteCA9IHBpbmN0cmxfZGV2X2dldF9kcnZkYXRhKHBjdGxk
ZXYpOw0KICAgICAgICBzdHJ1Y3Qgc2hfcGZjICpwZmMgPSBwbXgtPnBmYzsNCkBAIC00NDIsNyAr
NDQyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwaW5tdXhfb3BzIHNoX3BmY19waW5tdXhfb3Bz
ID0gew0KICAgICAgICAuZ2V0X2Z1bmN0aW9uc19jb3VudCAgICA9IHNoX3BmY19nZXRfZnVuY3Rp
b25zX2NvdW50LA0KICAgICAgICAuZ2V0X2Z1bmN0aW9uX25hbWUgICAgICA9IHNoX3BmY19nZXRf
ZnVuY3Rpb25fbmFtZSwNCiAgICAgICAgLmdldF9mdW5jdGlvbl9ncm91cHMgICAgPSBzaF9wZmNf
Z2V0X2Z1bmN0aW9uX2dyb3VwcywNCi0gICAgICAgLmVuYWJsZSAgICAgICAgICAgICAgICAgPSBz
aF9wZmNfZnVuY19lbmFibGUsDQorICAgICAgIC5zZXRfbXV4ICAgICAgICAgICAgICAgID0gc2hf
cGZjX2Z1bmNfc2V0X211eCwNCiAgICAgICAgLmdwaW9fcmVxdWVzdF9lbmFibGUgICAgPSBzaF9w
ZmNfZ3Bpb19yZXF1ZXN0X2VuYWJsZSwNCiAgICAgICAgLmdwaW9fZGlzYWJsZV9mcmVlICAgICAg
PSBzaF9wZmNfZ3Bpb19kaXNhYmxlX2ZyZWUsDQogICAgICAgIC5ncGlvX3NldF9kaXJlY3Rpb24g
ICAgID0gc2hfcGZjX2dwaW9fc2V0X2RpcmVjdGlvbiwNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Bp
bmN0cmwvc2lyZi9waW5jdHJsLXNpcmYuYyBiL2RyaXZlcnMvcGluY3RybC9zaXJmL3BpbmN0cmwt
c2lyZi5jDQppbmRleCA0NWY5M2Y5NTJhMzkuLjZmMjUyZmQ3Y2IwYyAxMDA2NDQNCi0tLSBhL2Ry
aXZlcnMvcGluY3RybC9zaXJmL3BpbmN0cmwtc2lyZi5jDQorKysgYi9kcml2ZXJzL3BpbmN0cmwv
c2lyZi9waW5jdHJsLXNpcmYuYw0KQEAgLTE3OSw4ICsxNzksOSBAQCBzdGF0aWMgdm9pZCBzaXJm
c29jX3Bpbm11eF9lbmRpc2FibGUoc3RydWN0IHNpcmZzb2NfcG14ICpzcG14LA0KICAgICAgICB9
DQogfQ0KDQotc3RhdGljIGludCBzaXJmc29jX3Bpbm11eF9lbmFibGUoc3RydWN0IHBpbmN0cmxf
ZGV2ICpwbXhkZXYsIHVuc2lnbmVkIHNlbGVjdG9yLA0KLSAgICAgICB1bnNpZ25lZCBncm91cCkN
CitzdGF0aWMgaW50IHNpcmZzb2NfcGlubXV4X3NldF9tdXgoc3RydWN0IHBpbmN0cmxfZGV2ICpw
bXhkZXYsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNlbGVjdG9y
LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBncm91cCkNCiB7DQog
ICAgICAgIHN0cnVjdCBzaXJmc29jX3BteCAqc3BteDsNCg0KQEAgLTIzNyw3ICsyMzgsNyBAQCBz
dGF0aWMgaW50IHNpcmZzb2NfcGlubXV4X3JlcXVlc3RfZ3BpbyhzdHJ1Y3QgcGluY3RybF9kZXYg
KnBteGRldiwgIH0NCg0KIHN0YXRpYyBzdHJ1Y3QgcGlubXV4X29wcyBzaXJmc29jX3Bpbm11eF9v
cHMgPSB7DQotICAgICAgIC5lbmFibGUgPSBzaXJmc29jX3Bpbm11eF9lbmFibGUsDQorICAgICAg
IC5zZXRfbXV4ID0gc2lyZnNvY19waW5tdXhfc2V0X211eCwNCiAgICAgICAgLmdldF9mdW5jdGlv
bnNfY291bnQgPSBzaXJmc29jX3Bpbm11eF9nZXRfZnVuY3NfY291bnQsDQogICAgICAgIC5nZXRf
ZnVuY3Rpb25fbmFtZSA9IHNpcmZzb2NfcGlubXV4X2dldF9mdW5jX25hbWUsDQogICAgICAgIC5n
ZXRfZnVuY3Rpb25fZ3JvdXBzID0gc2lyZnNvY19waW5tdXhfZ2V0X2dyb3VwcywgZGlmZiAtLWdp
dCBhL2RyaXZlcnMvcGluY3RybC9zcGVhci9waW5jdHJsLXNwZWFyLmMgYi9kcml2ZXJzL3BpbmN0
cmwvc3BlYXIvcGluY3RybC1zcGVhci5jDQppbmRleCBmNzJjYzRlMTkyYmQuLmFiZGIwNWFjNDNk
YyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvcGluY3RybC9zcGVhci9waW5jdHJsLXNwZWFyLmMNCisr
KyBiL2RyaXZlcnMvcGluY3RybC9zcGVhci9waW5jdHJsLXNwZWFyLmMNCkBAIC0yNjgsNyArMjY4
LDcgQEAgc3RhdGljIGludCBzcGVhcl9waW5jdHJsX2VuZGlzYWJsZShzdHJ1Y3QgcGluY3RybF9k
ZXYgKnBjdGxkZXYsDQogICAgICAgIHJldHVybiAwOw0KIH0NCg0KLXN0YXRpYyBpbnQgc3BlYXJf
cGluY3RybF9lbmFibGUoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LCB1bnNpZ25lZCBmdW5j
dGlvbiwNCitzdGF0aWMgaW50IHNwZWFyX3BpbmN0cmxfc2V0X211eChzdHJ1Y3QgcGluY3RybF9k
ZXYgKnBjdGxkZXYsIHVuc2lnbmVkDQorZnVuY3Rpb24sDQogICAgICAgICAgICAgICAgdW5zaWdu
ZWQgZ3JvdXApDQogew0KICAgICAgICByZXR1cm4gc3BlYXJfcGluY3RybF9lbmRpc2FibGUocGN0
bGRldiwgZnVuY3Rpb24sIGdyb3VwLCB0cnVlKTsgQEAgLTMzOCw3ICszMzgsNyBAQCBzdGF0aWMg
Y29uc3Qgc3RydWN0IHBpbm11eF9vcHMgc3BlYXJfcGlubXV4X29wcyA9IHsNCiAgICAgICAgLmdl
dF9mdW5jdGlvbnNfY291bnQgPSBzcGVhcl9waW5jdHJsX2dldF9mdW5jc19jb3VudCwNCiAgICAg
ICAgLmdldF9mdW5jdGlvbl9uYW1lID0gc3BlYXJfcGluY3RybF9nZXRfZnVuY19uYW1lLA0KICAg
ICAgICAuZ2V0X2Z1bmN0aW9uX2dyb3VwcyA9IHNwZWFyX3BpbmN0cmxfZ2V0X2Z1bmNfZ3JvdXBz
LA0KLSAgICAgICAuZW5hYmxlID0gc3BlYXJfcGluY3RybF9lbmFibGUsDQorICAgICAgIC5zZXRf
bXV4ID0gc3BlYXJfcGluY3RybF9zZXRfbXV4LA0KICAgICAgICAuZ3Bpb19yZXF1ZXN0X2VuYWJs
ZSA9IGdwaW9fcmVxdWVzdF9lbmFibGUsDQogICAgICAgIC5ncGlvX2Rpc2FibGVfZnJlZSA9IGdw
aW9fZGlzYWJsZV9mcmVlLCAgfTsgZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9zdW54aS9w
aW5jdHJsLXN1bnhpLmMgYi9kcml2ZXJzL3BpbmN0cmwvc3VueGkvcGluY3RybC1zdW54aS5jDQpp
bmRleCAzZGY2NmUzNjZjODcuLmVmOWQ4MDRlNTVkZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvcGlu
Y3RybC9zdW54aS9waW5jdHJsLXN1bnhpLmMNCisrKyBiL2RyaXZlcnMvcGluY3RybC9zdW54aS9w
aW5jdHJsLXN1bnhpLmMNCkBAIC0zOTMsOSArMzkzLDkgQEAgc3RhdGljIHZvaWQgc3VueGlfcG14
X3NldChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsDQogICAgICAgIHNwaW5fdW5sb2NrX2ly
cXJlc3RvcmUoJnBjdGwtPmxvY2ssIGZsYWdzKTsgIH0NCg0KLXN0YXRpYyBpbnQgc3VueGlfcG14
X2VuYWJsZShzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsDQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgZnVuY3Rpb24sDQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgZ3JvdXApDQorc3RhdGljIGludCBzdW54aV9wbXhfc2V0X211eChzdHJ1Y3QgcGlu
Y3RybF9kZXYgKnBjdGxkZXYsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGZ1bmN0aW9uLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBncm91cCkN
CiB7DQogICAgICAgIHN0cnVjdCBzdW54aV9waW5jdHJsICpwY3RsID0gcGluY3RybF9kZXZfZ2V0
X2RydmRhdGEocGN0bGRldik7DQogICAgICAgIHN0cnVjdCBzdW54aV9waW5jdHJsX2dyb3VwICpn
ID0gcGN0bC0+Z3JvdXBzICsgZ3JvdXA7IEBAIC00NDEsNyArNDQxLDcgQEAgc3RhdGljIGNvbnN0
IHN0cnVjdCBwaW5tdXhfb3BzIHN1bnhpX3BteF9vcHMgPSB7DQogICAgICAgIC5nZXRfZnVuY3Rp
b25zX2NvdW50ICAgID0gc3VueGlfcG14X2dldF9mdW5jc19jbnQsDQogICAgICAgIC5nZXRfZnVu
Y3Rpb25fbmFtZSAgICAgID0gc3VueGlfcG14X2dldF9mdW5jX25hbWUsDQogICAgICAgIC5nZXRf
ZnVuY3Rpb25fZ3JvdXBzICAgID0gc3VueGlfcG14X2dldF9mdW5jX2dyb3VwcywNCi0gICAgICAg
LmVuYWJsZSAgICAgICAgICAgICAgICAgPSBzdW54aV9wbXhfZW5hYmxlLA0KKyAgICAgICAuc2V0
X211eCAgICAgICAgICAgICAgICA9IHN1bnhpX3BteF9zZXRfbXV4LA0KICAgICAgICAuZ3Bpb19z
ZXRfZGlyZWN0aW9uICAgICA9IHN1bnhpX3BteF9ncGlvX3NldF9kaXJlY3Rpb24sDQogfTsNCg0K
ZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC92dDg1MDAvcGluY3RybC13bXQuYyBiL2RyaXZl
cnMvcGluY3RybC92dDg1MDAvcGluY3RybC13bXQuYw0KaW5kZXggOGNlYTM1NWY5YTgxLi5kMDU1
ZDYzMzA5ZTQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3BpbmN0cmwvdnQ4NTAwL3BpbmN0cmwtd210
LmMNCisrKyBiL2RyaXZlcnMvcGluY3RybC92dDg1MDAvcGluY3RybC13bXQuYw0KQEAgLTEzMSw5
ICsxMzEsOSBAQCBzdGF0aWMgaW50IHdtdF9zZXRfcGlubXV4KHN0cnVjdCB3bXRfcGluY3RybF9k
YXRhICpkYXRhLCB1bnNpZ25lZCBmdW5jLA0KICAgICAgICByZXR1cm4gMDsNCiB9DQoNCi1zdGF0
aWMgaW50IHdtdF9wbXhfZW5hYmxlKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwNCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZnVuY19zZWxlY3RvciwNCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgZ3JvdXBfc2VsZWN0b3IpDQorc3RhdGljIGludCB3bXRf
cG14X3NldF9tdXgoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LA0KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgZnVuY19zZWxlY3RvciwNCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIGdyb3VwX3NlbGVjdG9yKQ0KIHsNCiAgICAgICAgc3RydWN0IHdtdF9w
aW5jdHJsX2RhdGEgKmRhdGEgPSBwaW5jdHJsX2Rldl9nZXRfZHJ2ZGF0YShwY3RsZGV2KTsNCiAg
ICAgICAgdTMyIHBpbm51bSA9IGRhdGEtPnBpbnNbZ3JvdXBfc2VsZWN0b3JdLm51bWJlcjsNCkBA
IC0xNjgsNyArMTY4LDcgQEAgc3RhdGljIHN0cnVjdCBwaW5tdXhfb3BzIHdtdF9waW5tdXhfb3Bz
ID0gew0KICAgICAgICAuZ2V0X2Z1bmN0aW9uc19jb3VudCA9IHdtdF9wbXhfZ2V0X2Z1bmN0aW9u
c19jb3VudCwNCiAgICAgICAgLmdldF9mdW5jdGlvbl9uYW1lID0gd210X3BteF9nZXRfZnVuY3Rp
b25fbmFtZSwNCiAgICAgICAgLmdldF9mdW5jdGlvbl9ncm91cHMgPSB3bXRfcG14X2dldF9mdW5j
dGlvbl9ncm91cHMsDQotICAgICAgIC5lbmFibGUgPSB3bXRfcG14X2VuYWJsZSwNCisgICAgICAg
LnNldF9tdXggPSB3bXRfcG14X3NldF9tdXgsDQogICAgICAgIC5ncGlvX2Rpc2FibGVfZnJlZSA9
IHdtdF9wbXhfZ3Bpb19kaXNhYmxlX2ZyZWUsDQogICAgICAgIC5ncGlvX3NldF9kaXJlY3Rpb24g
PSB3bXRfcG14X2dwaW9fc2V0X2RpcmVjdGlvbiwgIH07IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xp
bnV4L3BpbmN0cmwvcGlubXV4LmggYi9pbmNsdWRlL2xpbnV4L3BpbmN0cmwvcGlubXV4LmggaW5k
ZXggMzA5N2FhZmJlYjI0Li41MTFiZGE5ZWQ0YmYgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4
L3BpbmN0cmwvcGlubXV4LmgNCisrKyBiL2luY2x1ZGUvbGludXgvcGluY3RybC9waW5tdXguaA0K
QEAgLTM5LDEzICszOSwxMiBAQCBzdHJ1Y3QgcGluY3RybF9kZXY7DQogICogICAgIG5hbWUgY2Fu
IGJlIHVzZWQgd2l0aCB0aGUgZ2VuZXJpYyBAcGluY3RybF9vcHMgdG8gcmV0cmlldmUgdGhlDQog
ICogICAgIGFjdHVhbCBwaW5zIGFmZmVjdGVkLiBUaGUgYXBwbGljYWJsZSBncm91cHMgd2lsbCBi
ZSByZXR1cm5lZCBpbg0KICAqICAgICBAZ3JvdXBzIGFuZCB0aGUgbnVtYmVyIG9mIGdyb3VwcyBp
biBAbnVtX2dyb3Vwcw0KLSAqIEBlbmFibGU6IGVuYWJsZSBhIGNlcnRhaW4gbXV4aW5nIGZ1bmN0
aW9uIHdpdGggYSBjZXJ0YWluIHBpbiBncm91cC4gVGhlDQorICogQHNldF9tdXg6IGVuYWJsZSBh
IGNlcnRhaW4gbXV4aW5nIGZ1bmN0aW9uIHdpdGggYSBjZXJ0YWluIHBpbiBncm91cC4NCisgVGhl
DQogICogICAgIGRyaXZlciBkb2VzIG5vdCBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hldGhlciBlbmFi
bGluZyB0aGlzIGZ1bmN0aW9uDQogICogICAgIGNvbmZsaWN0cyBzb21lIG90aGVyIHVzZSBvZiB0
aGUgcGlucyBpbiB0aGF0IGdyb3VwLCBzdWNoIGNvbGxpc2lvbnMNCiAgKiAgICAgYXJlIGhhbmRs
ZWQgYnkgdGhlIHBpbm11eCBzdWJzeXN0ZW0uIFRoZSBAZnVuY19zZWxlY3RvciBzZWxlY3RzIGEN
CiAgKiAgICAgY2VydGFpbiBmdW5jdGlvbiB3aGVyZWFzIEBncm91cF9zZWxlY3RvciBzZWxlY3Rz
IGEgY2VydGFpbiBzZXQgb2YgcGlucw0KICAqICAgICB0byBiZSB1c2VkLiBPbiBzaW1wbGUgY29u
dHJvbGxlcnMgdGhlIGxhdHRlciBhcmd1bWVudCBtYXkgYmUgaWdub3JlZA0KLSAqIEBkaXNhYmxl
OiBkaXNhYmxlIGEgY2VydGFpbiBtdXhpbmcgc2VsZWN0b3Igd2l0aCBhIGNlcnRhaW4gcGluIGdy
b3VwDQogICogQGdwaW9fcmVxdWVzdF9lbmFibGU6IHJlcXVlc3RzIGFuZCBlbmFibGVzIEdQSU8g
b24gYSBjZXJ0YWluIHBpbi4NCiAgKiAgICAgSW1wbGVtZW50IHRoaXMgb25seSBpZiB5b3UgY2Fu
IG11eCBldmVyeSBwaW4gaW5kaXZpZHVhbGx5IGFzIEdQSU8uIFRoZQ0KICAqICAgICBhZmZlY3Rl
ZCBHUElPIHJhbmdlIGlzIHBhc3NlZCBhbG9uZyB3aXRoIGFuIG9mZnNldChwaW4gbnVtYmVyKSBp
bnRvIHRoYXQNCkBAIC02OCw4ICs2Nyw4IEBAIHN0cnVjdCBwaW5tdXhfb3BzIHsNCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzZWxlY3RvciwNCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICogY29uc3QgKipncm91cHMsDQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgKiBjb25zdCBudW1fZ3JvdXBz
KTsNCi0gICAgICAgaW50ICgqZW5hYmxlKSAoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LCB1
bnNpZ25lZCBmdW5jX3NlbGVjdG9yLA0KLSAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBn
cm91cF9zZWxlY3Rvcik7DQorICAgICAgIGludCAoKnNldF9tdXgpIChzdHJ1Y3QgcGluY3RybF9k
ZXYgKnBjdGxkZXYsIHVuc2lnbmVkIGZ1bmNfc2VsZWN0b3IsDQorICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBncm91cF9zZWxlY3Rvcik7DQogICAgICAgIGludCAoKmdwaW9fcmVxdWVz
dF9lbmFibGUpIChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsDQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGluY3RybF9ncGlvX3JhbmdlICpyYW5nZSwNCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG9mZnNldCk7DQotLQ0K
MS45LjMNCg0K
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Linus Walleij Sept. 3, 2014, 11:59 a.m. UTC | #2
On Wed, Sep 3, 2014 at 1:26 PM, Fan Wu <fwu@marvell.com> wrote:

> Dear Linus,
> This is OK for me.

Allright I'll record that as an ACK. Thanks!

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
FanWu Sept. 3, 2014, 1:39 p.m. UTC | #3
Many thanks!
-----Original Message-----
From: Linus Walleij [mailto:linus.walleij@linaro.org] 

Sent: 2014年9月3日 19:59
To: Fan Wu
Cc: linux-kernel@vger.kernel.org; linux-arm-kernel@lists.infradead.org; linux-gpio@vger.kernel.org; Wilbur Wang; Yilu Mao
Subject: Re: [PATCH] pinctrl: clean up after enable refactoring

On Wed, Sep 3, 2014 at 1:26 PM, Fan Wu <fwu@marvell.com> wrote:

> Dear Linus,

> This is OK for me.


Allright I'll record that as an ACK. Thanks!

Yours,
Linus Walleij
Stephen Warren Sept. 3, 2014, 3:02 p.m. UTC | #4
On 09/03/2014 05:05 AM, Linus Walleij wrote:
> commit 2243a87d90b42eb38bc281957df3e57c712b5e56
> "pinctrl: avoid duplicated calling enable_pinmux_setting for a pin"
> removed the .disable callback from the struct pinmux_ops,
> making the .enable() callback the only remaining callback.
>
> However .enable() is a bad name as it seems to imply that a
> muxing can also be disabled. Rename the callback to .set_mux()
> and also take this opportunity to clean out any remaining
> mentions of .disable() from the documentation.

Acked-by: Stephen Warren <swarren@nvidia.com>
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Bjorn Andersson Sept. 3, 2014, 4:14 p.m. UTC | #5
On Wed, Sep 3, 2014 at 4:05 AM, Linus Walleij <linus.walleij@linaro.org> wrote:
[..]
> diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinctrl-msm.c
> index 80a64cad907d..01eab47a746f 100644
> --- a/drivers/pinctrl/qcom/pinctrl-msm.c
> +++ b/drivers/pinctrl/qcom/pinctrl-msm.c
> @@ -134,9 +134,9 @@ static int msm_get_function_groups(struct pinctrl_dev *pctldev,
>         return 0;
>  }
>
> -static int msm_pinmux_enable(struct pinctrl_dev *pctldev,
> -                            unsigned function,
> -                            unsigned group)
> +static int msm_pinmux_set_mux(struct pinctrl_dev *pctldev,
> +                             unsigned function,
> +                             unsigned group)
>  {
>         struct msm_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev);
>         const struct msm_pingroup *g;
> @@ -170,7 +170,7 @@ static const struct pinmux_ops msm_pinmux_ops = {
>         .get_functions_count    = msm_get_functions_count,
>         .get_function_name      = msm_get_function_name,
>         .get_function_groups    = msm_get_function_groups,
> -       .enable                 = msm_pinmux_enable,
> +       .set_mux                = msm_pinmux_set_mux,
>  };
>
>  static int msm_config_reg(struct msm_pinctrl *pctrl,

Acked-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/Documentation/pinctrl.txt b/Documentation/pinctrl.txt
index 23f1590f49fe..b8f2147b96dd 100644
--- a/Documentation/pinctrl.txt
+++ b/Documentation/pinctrl.txt
@@ -702,7 +702,7 @@  static int foo_get_groups(struct pinctrl_dev *pctldev, unsigned selector,
 	return 0;
 }
 
-int foo_enable(struct pinctrl_dev *pctldev, unsigned selector,
+int foo_set_mux(struct pinctrl_dev *pctldev, unsigned selector,
 		unsigned group)
 {
 	u8 regbit = (1 << selector + group);
@@ -711,21 +711,11 @@  int foo_enable(struct pinctrl_dev *pctldev, unsigned selector,
 	return 0;
 }
 
-void foo_disable(struct pinctrl_dev *pctldev, unsigned selector,
-		unsigned group)
-{
-	u8 regbit = (1 << selector + group);
-
-	writeb((readb(MUX) & ~(regbit)), MUX)
-	return 0;
-}
-
 struct pinmux_ops foo_pmxops = {
 	.get_functions_count = foo_get_functions_count,
 	.get_function_name = foo_get_fname,
 	.get_function_groups = foo_get_groups,
-	.enable = foo_enable,
-	.disable = foo_disable,
+	.set_mux = foo_set_mux,
 };
 
 /* Pinmux operations are handled by some pin controller */
diff --git a/drivers/pinctrl/berlin/berlin.c b/drivers/pinctrl/berlin/berlin.c
index 86db2235ab00..61f1bf0e60ba 100644
--- a/drivers/pinctrl/berlin/berlin.c
+++ b/drivers/pinctrl/berlin/berlin.c
@@ -170,9 +170,9 @@  berlin_pinctrl_find_function_by_name(struct berlin_pinctrl *pctrl,
 	return NULL;
 }
 
-static int berlin_pinmux_enable(struct pinctrl_dev *pctrl_dev,
-				unsigned function,
-				unsigned group)
+static int berlin_pinmux_set(struct pinctrl_dev *pctrl_dev,
+			     unsigned function,
+			     unsigned group)
 {
 	struct berlin_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctrl_dev);
 	const struct berlin_desc_group *group_desc = pctrl->desc->groups + group;
@@ -197,7 +197,7 @@  static const struct pinmux_ops berlin_pinmux_ops = {
 	.get_functions_count	= &berlin_pinmux_get_functions_count,
 	.get_function_name	= &berlin_pinmux_get_function_name,
 	.get_function_groups	= &berlin_pinmux_get_function_groups,
-	.enable			= &berlin_pinmux_enable,
+	.set_mux		= &berlin_pinmux_set,
 };
 
 static int berlin_pinctrl_add_function(struct berlin_pinctrl *pctrl,
diff --git a/drivers/pinctrl/mvebu/pinctrl-mvebu.c b/drivers/pinctrl/mvebu/pinctrl-mvebu.c
index 9908374f8f92..f3b426cdaf8f 100644
--- a/drivers/pinctrl/mvebu/pinctrl-mvebu.c
+++ b/drivers/pinctrl/mvebu/pinctrl-mvebu.c
@@ -259,8 +259,8 @@  static int mvebu_pinmux_get_groups(struct pinctrl_dev *pctldev, unsigned fid,
 	return 0;
 }
 
-static int mvebu_pinmux_enable(struct pinctrl_dev *pctldev, unsigned fid,
-			unsigned gid)
+static int mvebu_pinmux_set(struct pinctrl_dev *pctldev, unsigned fid,
+			    unsigned gid)
 {
 	struct mvebu_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev);
 	struct mvebu_pinctrl_function *func = &pctl->functions[fid];
@@ -344,7 +344,7 @@  static const struct pinmux_ops mvebu_pinmux_ops = {
 	.get_function_groups = mvebu_pinmux_get_groups,
 	.gpio_request_enable = mvebu_pinmux_gpio_request_enable,
 	.gpio_set_direction = mvebu_pinmux_gpio_set_direction,
-	.enable = mvebu_pinmux_enable,
+	.set_mux = mvebu_pinmux_set,
 };
 
 static int mvebu_pinctrl_get_groups_count(struct pinctrl_dev *pctldev)
diff --git a/drivers/pinctrl/nomadik/pinctrl-abx500.c b/drivers/pinctrl/nomadik/pinctrl-abx500.c
index a53a689a2bfa..b0289824cf73 100644
--- a/drivers/pinctrl/nomadik/pinctrl-abx500.c
+++ b/drivers/pinctrl/nomadik/pinctrl-abx500.c
@@ -709,8 +709,8 @@  static int abx500_pmx_get_func_groups(struct pinctrl_dev *pctldev,
 	return 0;
 }
 
-static int abx500_pmx_enable(struct pinctrl_dev *pctldev, unsigned function,
-			     unsigned group)
+static int abx500_pmx_set(struct pinctrl_dev *pctldev, unsigned function,
+			  unsigned group)
 {
 	struct abx500_pinctrl *pct = pinctrl_dev_get_drvdata(pctldev);
 	struct gpio_chip *chip = &pct->chip;
@@ -784,7 +784,7 @@  static const struct pinmux_ops abx500_pinmux_ops = {
 	.get_functions_count = abx500_pmx_get_funcs_cnt,
 	.get_function_name = abx500_pmx_get_func_name,
 	.get_function_groups = abx500_pmx_get_func_groups,
-	.enable = abx500_pmx_enable,
+	.set_mux = abx500_pmx_set,
 	.gpio_request_enable = abx500_gpio_request_enable,
 	.gpio_disable_free = abx500_gpio_disable_free,
 };
diff --git a/drivers/pinctrl/nomadik/pinctrl-nomadik.c b/drivers/pinctrl/nomadik/pinctrl-nomadik.c
index e7cab07eef47..c093d75a022a 100644
--- a/drivers/pinctrl/nomadik/pinctrl-nomadik.c
+++ b/drivers/pinctrl/nomadik/pinctrl-nomadik.c
@@ -1647,8 +1647,8 @@  static int nmk_pmx_get_func_groups(struct pinctrl_dev *pctldev,
 	return 0;
 }
 
-static int nmk_pmx_enable(struct pinctrl_dev *pctldev, unsigned function,
-			  unsigned group)
+static int nmk_pmx_set(struct pinctrl_dev *pctldev, unsigned function,
+		       unsigned group)
 {
 	struct nmk_pinctrl *npct = pinctrl_dev_get_drvdata(pctldev);
 	const struct nmk_pingroup *g;
@@ -1810,7 +1810,7 @@  static const struct pinmux_ops nmk_pinmux_ops = {
 	.get_functions_count = nmk_pmx_get_funcs_cnt,
 	.get_function_name = nmk_pmx_get_func_name,
 	.get_function_groups = nmk_pmx_get_func_groups,
-	.enable = nmk_pmx_enable,
+	.set_mux = nmk_pmx_set,
 	.gpio_request_enable = nmk_gpio_request_enable,
 	.gpio_disable_free = nmk_gpio_disable_free,
 };
diff --git a/drivers/pinctrl/pinctrl-adi2.c b/drivers/pinctrl/pinctrl-adi2.c
index b092b93c67a1..e02943b0285d 100644
--- a/drivers/pinctrl/pinctrl-adi2.c
+++ b/drivers/pinctrl/pinctrl-adi2.c
@@ -619,8 +619,8 @@  static struct pinctrl_ops adi_pctrl_ops = {
 	.get_group_pins = adi_get_group_pins,
 };
 
-static int adi_pinmux_enable(struct pinctrl_dev *pctldev, unsigned func_id,
-	unsigned group_id)
+static int adi_pinmux_set(struct pinctrl_dev *pctldev, unsigned func_id,
+			  unsigned group_id)
 {
 	struct adi_pinctrl *pinctrl = pinctrl_dev_get_drvdata(pctldev);
 	struct gpio_port *port;
@@ -698,7 +698,7 @@  static int adi_pinmux_request_gpio(struct pinctrl_dev *pctldev,
 }
 
 static struct pinmux_ops adi_pinmux_ops = {
-	.enable = adi_pinmux_enable,
+	.set_mux = adi_pinmux_set,
 	.get_functions_count = adi_pinmux_get_funcs_count,
 	.get_function_name = adi_pinmux_get_func_name,
 	.get_function_groups = adi_pinmux_get_groups,
diff --git a/drivers/pinctrl/pinctrl-as3722.c b/drivers/pinctrl/pinctrl-as3722.c
index 0e4ec91f4d49..1f790a4b83fe 100644
--- a/drivers/pinctrl/pinctrl-as3722.c
+++ b/drivers/pinctrl/pinctrl-as3722.c
@@ -230,7 +230,7 @@  static int as3722_pinctrl_get_func_groups(struct pinctrl_dev *pctldev,
 	return 0;
 }
 
-static int as3722_pinctrl_enable(struct pinctrl_dev *pctldev, unsigned function,
+static int as3722_pinctrl_set(struct pinctrl_dev *pctldev, unsigned function,
 		unsigned group)
 {
 	struct as3722_pctrl_info *as_pci = pinctrl_dev_get_drvdata(pctldev);
@@ -327,7 +327,7 @@  static const struct pinmux_ops as3722_pinmux_ops = {
 	.get_functions_count	= as3722_pinctrl_get_funcs_count,
 	.get_function_name	= as3722_pinctrl_get_func_name,
 	.get_function_groups	= as3722_pinctrl_get_func_groups,
-	.enable			= as3722_pinctrl_enable,
+	.set_mux		= as3722_pinctrl_set,
 	.gpio_request_enable	= as3722_pinctrl_gpio_request_enable,
 	.gpio_set_direction	= as3722_pinctrl_gpio_set_direction,
 };
diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c
index af1ba4fc150d..4839c36a3a1c 100644
--- a/drivers/pinctrl/pinctrl-at91.c
+++ b/drivers/pinctrl/pinctrl-at91.c
@@ -554,8 +554,8 @@  static void at91_mux_gpio_enable(void __iomem *pio, unsigned mask, bool input)
 	writel_relaxed(mask, pio + (input ? PIO_ODR : PIO_OER));
 }
 
-static int at91_pmx_enable(struct pinctrl_dev *pctldev, unsigned selector,
-			   unsigned group)
+static int at91_pmx_set(struct pinctrl_dev *pctldev, unsigned selector,
+			unsigned group)
 {
 	struct at91_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
 	const struct at91_pmx_pin *pins_conf = info->groups[group].pins_conf;
@@ -684,7 +684,7 @@  static const struct pinmux_ops at91_pmx_ops = {
 	.get_functions_count	= at91_pmx_get_funcs_count,
 	.get_function_name	= at91_pmx_get_func_name,
 	.get_function_groups	= at91_pmx_get_groups,
-	.enable			= at91_pmx_enable,
+	.set_mux		= at91_pmx_set,
 	.gpio_request_enable	= at91_gpio_request_enable,
 	.gpio_disable_free	= at91_gpio_disable_free,
 };
diff --git a/drivers/pinctrl/pinctrl-bcm281xx.c b/drivers/pinctrl/pinctrl-bcm281xx.c
index c5ca9e633fff..a26e0c2ba33e 100644
--- a/drivers/pinctrl/pinctrl-bcm281xx.c
+++ b/drivers/pinctrl/pinctrl-bcm281xx.c
@@ -1055,9 +1055,9 @@  static int bcm281xx_pinctrl_get_fcn_groups(struct pinctrl_dev *pctldev,
 	return 0;
 }
 
-static int bcm281xx_pinmux_enable(struct pinctrl_dev *pctldev,
-				  unsigned function,
-				  unsigned group)
+static int bcm281xx_pinmux_set(struct pinctrl_dev *pctldev,
+			       unsigned function,
+			       unsigned group)
 {
 	struct bcm281xx_pinctrl_data *pdata = pinctrl_dev_get_drvdata(pctldev);
 	const struct bcm281xx_pin_function *f = &pdata->functions[function];
@@ -1084,7 +1084,7 @@  static struct pinmux_ops bcm281xx_pinctrl_pinmux_ops = {
 	.get_functions_count = bcm281xx_pinctrl_get_fcns_count,
 	.get_function_name = bcm281xx_pinctrl_get_fcn_name,
 	.get_function_groups = bcm281xx_pinctrl_get_fcn_groups,
-	.enable = bcm281xx_pinmux_enable,
+	.set_mux = bcm281xx_pinmux_set,
 };
 
 static int bcm281xx_pinctrl_pin_config_get(struct pinctrl_dev *pctldev,
diff --git a/drivers/pinctrl/pinctrl-bcm2835.c b/drivers/pinctrl/pinctrl-bcm2835.c
index 5bcfd7ace0cd..eabba02f71f9 100644
--- a/drivers/pinctrl/pinctrl-bcm2835.c
+++ b/drivers/pinctrl/pinctrl-bcm2835.c
@@ -830,7 +830,7 @@  static int bcm2835_pmx_get_function_groups(struct pinctrl_dev *pctldev,
 	return 0;
 }
 
-static int bcm2835_pmx_enable(struct pinctrl_dev *pctldev,
+static int bcm2835_pmx_set(struct pinctrl_dev *pctldev,
 		unsigned func_selector,
 		unsigned group_selector)
 {
@@ -869,7 +869,7 @@  static const struct pinmux_ops bcm2835_pmx_ops = {
 	.get_functions_count = bcm2835_pmx_get_functions_count,
 	.get_function_name = bcm2835_pmx_get_function_name,
 	.get_function_groups = bcm2835_pmx_get_function_groups,
-	.enable = bcm2835_pmx_enable,
+	.set_mux = bcm2835_pmx_set,
 	.gpio_disable_free = bcm2835_pmx_gpio_disable_free,
 	.gpio_set_direction = bcm2835_pmx_gpio_set_direction,
 };
diff --git a/drivers/pinctrl/pinctrl-imx.c b/drivers/pinctrl/pinctrl-imx.c
index 946d594a64dd..570e5acb4a6a 100644
--- a/drivers/pinctrl/pinctrl-imx.c
+++ b/drivers/pinctrl/pinctrl-imx.c
@@ -179,8 +179,8 @@  static const struct pinctrl_ops imx_pctrl_ops = {
 
 };
 
-static int imx_pmx_enable(struct pinctrl_dev *pctldev, unsigned selector,
-			   unsigned group)
+static int imx_pmx_set(struct pinctrl_dev *pctldev, unsigned selector,
+		       unsigned group)
 {
 	struct imx_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
 	const struct imx_pinctrl_soc_info *info = ipctl->info;
@@ -298,7 +298,7 @@  static const struct pinmux_ops imx_pmx_ops = {
 	.get_functions_count = imx_pmx_get_funcs_count,
 	.get_function_name = imx_pmx_get_func_name,
 	.get_function_groups = imx_pmx_get_groups,
-	.enable = imx_pmx_enable,
+	.set_mux = imx_pmx_set,
 };
 
 static int imx_pinconf_get(struct pinctrl_dev *pctldev,
diff --git a/drivers/pinctrl/pinctrl-imx1-core.c b/drivers/pinctrl/pinctrl-imx1-core.c
index 483420757c9f..176a3e62f1cf 100644
--- a/drivers/pinctrl/pinctrl-imx1-core.c
+++ b/drivers/pinctrl/pinctrl-imx1-core.c
@@ -298,8 +298,8 @@  static const struct pinctrl_ops imx1_pctrl_ops = {
 
 };
 
-static int imx1_pmx_enable(struct pinctrl_dev *pctldev, unsigned selector,
-			   unsigned group)
+static int imx1_pmx_set(struct pinctrl_dev *pctldev, unsigned selector,
+			unsigned group)
 {
 	struct imx1_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev);
 	const struct imx1_pinctrl_soc_info *info = ipctl->info;
@@ -385,7 +385,7 @@  static const struct pinmux_ops imx1_pmx_ops = {
 	.get_functions_count = imx1_pmx_get_funcs_count,
 	.get_function_name = imx1_pmx_get_func_name,
 	.get_function_groups = imx1_pmx_get_groups,
-	.enable = imx1_pmx_enable,
+	.set_mux = imx1_pmx_set,
 };
 
 static int imx1_pinconf_get(struct pinctrl_dev *pctldev,
diff --git a/drivers/pinctrl/pinctrl-lantiq.c b/drivers/pinctrl/pinctrl-lantiq.c
index d22ca252b80d..296e5b37f768 100644
--- a/drivers/pinctrl/pinctrl-lantiq.c
+++ b/drivers/pinctrl/pinctrl-lantiq.c
@@ -257,9 +257,9 @@  static int match_group_mux(const struct ltq_pin_group *grp,
 	return ret;
 }
 
-static int ltq_pmx_enable(struct pinctrl_dev *pctrldev,
-				unsigned func,
-				unsigned group)
+static int ltq_pmx_set(struct pinctrl_dev *pctrldev,
+		       unsigned func,
+		       unsigned group)
 {
 	struct ltq_pinmux_info *info = pinctrl_dev_get_drvdata(pctrldev);
 	const struct ltq_pin_group *pin_grp = &info->grps[group];
@@ -316,7 +316,7 @@  static const struct pinmux_ops ltq_pmx_ops = {
 	.get_functions_count	= ltq_pmx_func_count,
 	.get_function_name	= ltq_pmx_func_name,
 	.get_function_groups	= ltq_pmx_get_groups,
-	.enable			= ltq_pmx_enable,
+	.set_mux		= ltq_pmx_set,
 	.gpio_request_enable	= ltq_pmx_gpio_request_enable,
 };
 
diff --git a/drivers/pinctrl/pinctrl-mxs.c b/drivers/pinctrl/pinctrl-mxs.c
index 40c76f26998c..67035091f8fd 100644
--- a/drivers/pinctrl/pinctrl-mxs.c
+++ b/drivers/pinctrl/pinctrl-mxs.c
@@ -195,8 +195,8 @@  static int mxs_pinctrl_get_func_groups(struct pinctrl_dev *pctldev,
 	return 0;
 }
 
-static int mxs_pinctrl_enable(struct pinctrl_dev *pctldev, unsigned selector,
-			      unsigned group)
+static int mxs_pinctrl_set_mux(struct pinctrl_dev *pctldev, unsigned selector,
+			       unsigned group)
 {
 	struct mxs_pinctrl_data *d = pinctrl_dev_get_drvdata(pctldev);
 	struct mxs_group *g = &d->soc->groups[group];
@@ -223,7 +223,7 @@  static const struct pinmux_ops mxs_pinmux_ops = {
 	.get_functions_count = mxs_pinctrl_get_funcs_count,
 	.get_function_name = mxs_pinctrl_get_func_name,
 	.get_function_groups = mxs_pinctrl_get_func_groups,
-	.enable = mxs_pinctrl_enable,
+	.set_mux = mxs_pinctrl_set_mux,
 };
 
 static int mxs_pinconf_get(struct pinctrl_dev *pctldev,
diff --git a/drivers/pinctrl/pinctrl-palmas.c b/drivers/pinctrl/pinctrl-palmas.c
index f13d0e78a41c..e3079d3d19fe 100644
--- a/drivers/pinctrl/pinctrl-palmas.c
+++ b/drivers/pinctrl/pinctrl-palmas.c
@@ -685,7 +685,8 @@  static int palmas_pinctrl_get_func_groups(struct pinctrl_dev *pctldev,
 	return 0;
 }
 
-static int palmas_pinctrl_enable(struct pinctrl_dev *pctldev, unsigned function,
+static int palmas_pinctrl_set_mux(struct pinctrl_dev *pctldev,
+		unsigned function,
 		unsigned group)
 {
 	struct palmas_pctrl_chip_info *pci = pinctrl_dev_get_drvdata(pctldev);
@@ -742,7 +743,7 @@  static const struct pinmux_ops palmas_pinmux_ops = {
 	.get_functions_count = palmas_pinctrl_get_funcs_count,
 	.get_function_name = palmas_pinctrl_get_func_name,
 	.get_function_groups = palmas_pinctrl_get_func_groups,
-	.enable = palmas_pinctrl_enable,
+	.set_mux = palmas_pinctrl_set_mux,
 };
 
 static int palmas_pinconf_get(struct pinctrl_dev *pctldev,
diff --git a/drivers/pinctrl/pinctrl-rockchip.c b/drivers/pinctrl/pinctrl-rockchip.c
index 5e8b2e04cd7a..b91b966add8f 100644
--- a/drivers/pinctrl/pinctrl-rockchip.c
+++ b/drivers/pinctrl/pinctrl-rockchip.c
@@ -813,8 +813,8 @@  static int rockchip_pmx_get_groups(struct pinctrl_dev *pctldev,
 	return 0;
 }
 
-static int rockchip_pmx_enable(struct pinctrl_dev *pctldev, unsigned selector,
-							    unsigned group)
+static int rockchip_pmx_set(struct pinctrl_dev *pctldev, unsigned selector,
+			    unsigned group)
 {
 	struct rockchip_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
 	const unsigned int *pins = info->groups[group].pins;
@@ -889,7 +889,7 @@  static const struct pinmux_ops rockchip_pmx_ops = {
 	.get_functions_count	= rockchip_pmx_get_funcs_count,
 	.get_function_name	= rockchip_pmx_get_func_name,
 	.get_function_groups	= rockchip_pmx_get_groups,
-	.enable			= rockchip_pmx_enable,
+	.set_mux		= rockchip_pmx_set,
 	.gpio_set_direction	= rockchip_pmx_gpio_set_direction,
 };
 
diff --git a/drivers/pinctrl/pinctrl-single.c b/drivers/pinctrl/pinctrl-single.c
index 784de13facf3..9032422ad18f 100644
--- a/drivers/pinctrl/pinctrl-single.c
+++ b/drivers/pinctrl/pinctrl-single.c
@@ -447,7 +447,7 @@  static int pcs_get_function(struct pinctrl_dev *pctldev, unsigned pin,
 	return 0;
 }
 
-static int pcs_enable(struct pinctrl_dev *pctldev, unsigned fselector,
+static int pcs_set_mux(struct pinctrl_dev *pctldev, unsigned fselector,
 	unsigned group)
 {
 	struct pcs_device *pcs;
@@ -519,7 +519,7 @@  static const struct pinmux_ops pcs_pinmux_ops = {
 	.get_functions_count = pcs_get_functions_count,
 	.get_function_name = pcs_get_function_name,
 	.get_function_groups = pcs_get_function_groups,
-	.enable = pcs_enable,
+	.set_mux = pcs_sex_mux,
 	.gpio_request_enable = pcs_request_gpio,
 };
 
diff --git a/drivers/pinctrl/pinctrl-st.c b/drivers/pinctrl/pinctrl-st.c
index 5475374d803f..6c4c41bed1e3 100644
--- a/drivers/pinctrl/pinctrl-st.c
+++ b/drivers/pinctrl/pinctrl-st.c
@@ -914,8 +914,8 @@  static struct st_pio_control *st_get_pio_control(
 	return &bank->pc;
 }
 
-static int st_pmx_enable(struct pinctrl_dev *pctldev, unsigned fselector,
-		unsigned group)
+static int st_pmx_set_mux(struct pinctrl_dev *pctldev, unsigned fselector,
+			unsigned group)
 {
 	struct st_pinctrl *info = pinctrl_dev_get_drvdata(pctldev);
 	struct st_pinconf *conf = info->groups[group].pin_conf;
@@ -951,7 +951,7 @@  static struct pinmux_ops st_pmxops = {
 	.get_functions_count	= st_pmx_get_funcs_count,
 	.get_function_name	= st_pmx_get_fname,
 	.get_function_groups	= st_pmx_get_groups,
-	.enable			= st_pmx_enable,
+	.set_mux		= st_pmx_set_mux,
 	.gpio_set_direction	= st_pmx_set_gpio_direction,
 };
 
diff --git a/drivers/pinctrl/pinctrl-tb10x.c b/drivers/pinctrl/pinctrl-tb10x.c
index 71c5d4f0c538..3b9bfcf717ac 100644
--- a/drivers/pinctrl/pinctrl-tb10x.c
+++ b/drivers/pinctrl/pinctrl-tb10x.c
@@ -697,7 +697,7 @@  static void tb10x_gpio_disable_free(struct pinctrl_dev *pctl,
 	mutex_unlock(&state->mutex);
 }
 
-static int tb10x_pctl_enable(struct pinctrl_dev *pctl,
+static int tb10x_pctl_set_mux(struct pinctrl_dev *pctl,
 			unsigned func_selector, unsigned group_selector)
 {
 	struct tb10x_pinctrl *state = pinctrl_dev_get_drvdata(pctl);
@@ -744,7 +744,7 @@  static struct pinmux_ops tb10x_pinmux_ops = {
 	.get_function_groups = tb10x_get_function_groups,
 	.gpio_request_enable = tb10x_gpio_request_enable,
 	.gpio_disable_free = tb10x_gpio_disable_free,
-	.enable = tb10x_pctl_enable,
+	.set_mux = tb10x_pctl_set_mux,
 };
 
 static struct pinctrl_desc tb10x_pindesc = {
diff --git a/drivers/pinctrl/pinctrl-tegra-xusb.c b/drivers/pinctrl/pinctrl-tegra-xusb.c
index a06620474845..4648c9e5c582 100644
--- a/drivers/pinctrl/pinctrl-tegra-xusb.c
+++ b/drivers/pinctrl/pinctrl-tegra-xusb.c
@@ -281,9 +281,9 @@  static int tegra_xusb_padctl_get_function_groups(struct pinctrl_dev *pinctrl,
 	return 0;
 }
 
-static int tegra_xusb_padctl_pinmux_enable(struct pinctrl_dev *pinctrl,
-					   unsigned int function,
-					   unsigned int group)
+static int tegra_xusb_padctl_pinmux_set(struct pinctrl_dev *pinctrl,
+					unsigned int function,
+					unsigned int group)
 {
 	struct tegra_xusb_padctl *padctl = pinctrl_dev_get_drvdata(pinctrl);
 	const struct tegra_xusb_padctl_lane *lane;
@@ -311,7 +311,7 @@  static const struct pinmux_ops tegra_xusb_padctl_pinmux_ops = {
 	.get_functions_count = tegra_xusb_padctl_get_functions_count,
 	.get_function_name = tegra_xusb_padctl_get_function_name,
 	.get_function_groups = tegra_xusb_padctl_get_function_groups,
-	.enable = tegra_xusb_padctl_pinmux_enable,
+	.set_mux = tegra_xusb_padctl_pinmux_set,
 };
 
 static int tegra_xusb_padctl_pinconf_group_get(struct pinctrl_dev *pinctrl,
diff --git a/drivers/pinctrl/pinctrl-tegra.c b/drivers/pinctrl/pinctrl-tegra.c
index 150af5503c09..e5949d51bc52 100644
--- a/drivers/pinctrl/pinctrl-tegra.c
+++ b/drivers/pinctrl/pinctrl-tegra.c
@@ -262,8 +262,9 @@  static int tegra_pinctrl_get_func_groups(struct pinctrl_dev *pctldev,
 	return 0;
 }
 
-static int tegra_pinctrl_enable(struct pinctrl_dev *pctldev, unsigned function,
-			       unsigned group)
+static int tegra_pinctrl_set_mux(struct pinctrl_dev *pctldev,
+				 unsigned function,
+				 unsigned group)
 {
 	struct tegra_pmx *pmx = pinctrl_dev_get_drvdata(pctldev);
 	const struct tegra_pingroup *g;
@@ -294,7 +295,7 @@  static const struct pinmux_ops tegra_pinmux_ops = {
 	.get_functions_count = tegra_pinctrl_get_funcs_count,
 	.get_function_name = tegra_pinctrl_get_func_name,
 	.get_function_groups = tegra_pinctrl_get_func_groups,
-	.enable = tegra_pinctrl_enable,
+	.set_mux = tegra_pinctrl_set_mux,
 };
 
 static int tegra_pinconf_reg(struct tegra_pmx *pmx,
diff --git a/drivers/pinctrl/pinctrl-tz1090-pdc.c b/drivers/pinctrl/pinctrl-tz1090-pdc.c
index 41e81a35cabb..3bb6a3b78864 100644
--- a/drivers/pinctrl/pinctrl-tz1090-pdc.c
+++ b/drivers/pinctrl/pinctrl-tz1090-pdc.c
@@ -547,8 +547,9 @@  static void tz1090_pdc_pinctrl_mux(struct tz1090_pdc_pmx *pmx,
 	__global_unlock2(flags);
 }
 
-static int tz1090_pdc_pinctrl_enable(struct pinctrl_dev *pctldev,
-				     unsigned int function, unsigned int group)
+static int tz1090_pdc_pinctrl_set_mux(struct pinctrl_dev *pctldev,
+				      unsigned int function,
+				      unsigned int group)
 {
 	struct tz1090_pdc_pmx *pmx = pinctrl_dev_get_drvdata(pctldev);
 	const struct tz1090_pdc_pingroup *grp = &tz1090_pdc_groups[group];
@@ -634,7 +635,7 @@  static struct pinmux_ops tz1090_pdc_pinmux_ops = {
 	.get_functions_count	= tz1090_pdc_pinctrl_get_funcs_count,
 	.get_function_name	= tz1090_pdc_pinctrl_get_func_name,
 	.get_function_groups	= tz1090_pdc_pinctrl_get_func_groups,
-	.enable			= tz1090_pdc_pinctrl_enable,
+	.set_mux		= tz1090_pdc_pinctrl_set_mux,
 	.gpio_request_enable	= tz1090_pdc_pinctrl_gpio_request_enable,
 	.gpio_disable_free	= tz1090_pdc_pinctrl_gpio_disable_free,
 };
diff --git a/drivers/pinctrl/pinctrl-tz1090.c b/drivers/pinctrl/pinctrl-tz1090.c
index 24082216842e..48d36413b99f 100644
--- a/drivers/pinctrl/pinctrl-tz1090.c
+++ b/drivers/pinctrl/pinctrl-tz1090.c
@@ -1415,8 +1415,8 @@  found_mux:
  * the effect is the same as enabling the function on each individual pin in the
  * group.
  */
-static int tz1090_pinctrl_enable(struct pinctrl_dev *pctldev,
-				 unsigned int function, unsigned int group)
+static int tz1090_pinctrl_set_mux(struct pinctrl_dev *pctldev,
+				  unsigned int function, unsigned int group)
 {
 	struct tz1090_pmx *pmx = pinctrl_dev_get_drvdata(pctldev);
 	struct tz1090_pingroup *grp;
@@ -1517,7 +1517,7 @@  static struct pinmux_ops tz1090_pinmux_ops = {
 	.get_functions_count	= tz1090_pinctrl_get_funcs_count,
 	.get_function_name	= tz1090_pinctrl_get_func_name,
 	.get_function_groups	= tz1090_pinctrl_get_func_groups,
-	.enable			= tz1090_pinctrl_enable,
+	.set_mux		= tz1090_pinctrl_set_mux,
 	.gpio_request_enable	= tz1090_pinctrl_gpio_request_enable,
 	.gpio_disable_free	= tz1090_pinctrl_gpio_disable_free,
 };
diff --git a/drivers/pinctrl/pinctrl-u300.c b/drivers/pinctrl/pinctrl-u300.c
index 0959bb36450f..e9c7113d81f2 100644
--- a/drivers/pinctrl/pinctrl-u300.c
+++ b/drivers/pinctrl/pinctrl-u300.c
@@ -955,8 +955,8 @@  static void u300_pmx_endisable(struct u300_pmx *upmx, unsigned selector,
 	}
 }
 
-static int u300_pmx_enable(struct pinctrl_dev *pctldev, unsigned selector,
-			   unsigned group)
+static int u300_pmx_set_mux(struct pinctrl_dev *pctldev, unsigned selector,
+			    unsigned group)
 {
 	struct u300_pmx *upmx;
 
@@ -994,7 +994,7 @@  static const struct pinmux_ops u300_pmx_ops = {
 	.get_functions_count = u300_pmx_get_funcs_count,
 	.get_function_name = u300_pmx_get_func_name,
 	.get_function_groups = u300_pmx_get_groups,
-	.enable = u300_pmx_enable,
+	.set_mux = u300_pmx_set_mux,
 };
 
 static int u300_pin_config_get(struct pinctrl_dev *pctldev, unsigned pin,
diff --git a/drivers/pinctrl/pinmux.c b/drivers/pinctrl/pinmux.c
index c055daf9a80f..b874458dcb88 100644
--- a/drivers/pinctrl/pinmux.c
+++ b/drivers/pinctrl/pinmux.c
@@ -41,7 +41,7 @@  int pinmux_check_ops(struct pinctrl_dev *pctldev)
 	    !ops->get_functions_count ||
 	    !ops->get_function_name ||
 	    !ops->get_function_groups ||
-	    !ops->enable) {
+	    !ops->set_mux) {
 		dev_err(pctldev->dev, "pinmux ops lacks necessary functions\n");
 		return -EINVAL;
 	}
@@ -445,15 +445,15 @@  int pinmux_enable_setting(struct pinctrl_setting const *setting)
 		desc->mux_setting = &(setting->data.mux);
 	}
 
-	ret = ops->enable(pctldev, setting->data.mux.func,
-			  setting->data.mux.group);
+	ret = ops->set_mux(pctldev, setting->data.mux.func,
+			   setting->data.mux.group);
 
 	if (ret)
-		goto err_enable;
+		goto err_set_mux;
 
 	return 0;
 
-err_enable:
+err_set_mux:
 	for (i = 0; i < num_pins; i++) {
 		desc = pin_desc_get(pctldev, pins[i]);
 		if (desc)
diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinctrl-msm.c
index 80a64cad907d..01eab47a746f 100644
--- a/drivers/pinctrl/qcom/pinctrl-msm.c
+++ b/drivers/pinctrl/qcom/pinctrl-msm.c
@@ -134,9 +134,9 @@  static int msm_get_function_groups(struct pinctrl_dev *pctldev,
 	return 0;
 }
 
-static int msm_pinmux_enable(struct pinctrl_dev *pctldev,
-			     unsigned function,
-			     unsigned group)
+static int msm_pinmux_set_mux(struct pinctrl_dev *pctldev,
+			      unsigned function,
+			      unsigned group)
 {
 	struct msm_pinctrl *pctrl = pinctrl_dev_get_drvdata(pctldev);
 	const struct msm_pingroup *g;
@@ -170,7 +170,7 @@  static const struct pinmux_ops msm_pinmux_ops = {
 	.get_functions_count	= msm_get_functions_count,
 	.get_function_name	= msm_get_function_name,
 	.get_function_groups	= msm_get_function_groups,
-	.enable			= msm_pinmux_enable,
+	.set_mux		= msm_pinmux_set_mux,
 };
 
 static int msm_config_reg(struct msm_pinctrl *pctrl,
diff --git a/drivers/pinctrl/samsung/pinctrl-exynos5440.c b/drivers/pinctrl/samsung/pinctrl-exynos5440.c
index 603da2f9dd95..b995ec2c5d16 100644
--- a/drivers/pinctrl/samsung/pinctrl-exynos5440.c
+++ b/drivers/pinctrl/samsung/pinctrl-exynos5440.c
@@ -364,8 +364,9 @@  static void exynos5440_pinmux_setup(struct pinctrl_dev *pctldev, unsigned select
 }
 
 /* enable a specified pinmux by writing to registers */
-static int exynos5440_pinmux_enable(struct pinctrl_dev *pctldev, unsigned selector,
-					unsigned group)
+static int exynos5440_pinmux_set_mux(struct pinctrl_dev *pctldev,
+				     unsigned selector,
+				     unsigned group)
 {
 	exynos5440_pinmux_setup(pctldev, selector, group, true);
 	return 0;
@@ -387,7 +388,7 @@  static const struct pinmux_ops exynos5440_pinmux_ops = {
 	.get_functions_count	= exynos5440_get_functions_count,
 	.get_function_name	= exynos5440_pinmux_get_fname,
 	.get_function_groups	= exynos5440_pinmux_get_groups,
-	.enable			= exynos5440_pinmux_enable,
+	.set_mux		= exynos5440_pinmux_set_mux,
 	.gpio_set_direction	= exynos5440_pinmux_gpio_set_direction,
 };
 
diff --git a/drivers/pinctrl/samsung/pinctrl-samsung.c b/drivers/pinctrl/samsung/pinctrl-samsung.c
index b07406da333c..4a47691c32b1 100644
--- a/drivers/pinctrl/samsung/pinctrl-samsung.c
+++ b/drivers/pinctrl/samsung/pinctrl-samsung.c
@@ -401,8 +401,9 @@  static void samsung_pinmux_setup(struct pinctrl_dev *pctldev, unsigned selector,
 }
 
 /* enable a specified pinmux by writing to registers */
-static int samsung_pinmux_enable(struct pinctrl_dev *pctldev, unsigned selector,
-					unsigned group)
+static int samsung_pinmux_set_mux(struct pinctrl_dev *pctldev,
+				  unsigned selector,
+				  unsigned group)
 {
 	samsung_pinmux_setup(pctldev, selector, group, true);
 	return 0;
@@ -413,7 +414,7 @@  static const struct pinmux_ops samsung_pinmux_ops = {
 	.get_functions_count	= samsung_get_functions_count,
 	.get_function_name	= samsung_pinmux_get_fname,
 	.get_function_groups	= samsung_pinmux_get_groups,
-	.enable			= samsung_pinmux_enable,
+	.set_mux		= samsung_pinmux_set_mux,
 };
 
 /* set or get the pin config settings for a specified pin */
diff --git a/drivers/pinctrl/sh-pfc/pinctrl.c b/drivers/pinctrl/sh-pfc/pinctrl.c
index 11db3ee39d40..910deaefa0ac 100644
--- a/drivers/pinctrl/sh-pfc/pinctrl.c
+++ b/drivers/pinctrl/sh-pfc/pinctrl.c
@@ -312,8 +312,8 @@  static int sh_pfc_get_function_groups(struct pinctrl_dev *pctldev,
 	return 0;
 }
 
-static int sh_pfc_func_enable(struct pinctrl_dev *pctldev, unsigned selector,
-			      unsigned group)
+static int sh_pfc_func_set_mux(struct pinctrl_dev *pctldev, unsigned selector,
+			       unsigned group)
 {
 	struct sh_pfc_pinctrl *pmx = pinctrl_dev_get_drvdata(pctldev);
 	struct sh_pfc *pfc = pmx->pfc;
@@ -442,7 +442,7 @@  static const struct pinmux_ops sh_pfc_pinmux_ops = {
 	.get_functions_count	= sh_pfc_get_functions_count,
 	.get_function_name	= sh_pfc_get_function_name,
 	.get_function_groups	= sh_pfc_get_function_groups,
-	.enable			= sh_pfc_func_enable,
+	.set_mux		= sh_pfc_func_set_mux,
 	.gpio_request_enable	= sh_pfc_gpio_request_enable,
 	.gpio_disable_free	= sh_pfc_gpio_disable_free,
 	.gpio_set_direction	= sh_pfc_gpio_set_direction,
diff --git a/drivers/pinctrl/sirf/pinctrl-sirf.c b/drivers/pinctrl/sirf/pinctrl-sirf.c
index 45f93f952a39..6f252fd7cb0c 100644
--- a/drivers/pinctrl/sirf/pinctrl-sirf.c
+++ b/drivers/pinctrl/sirf/pinctrl-sirf.c
@@ -179,8 +179,9 @@  static void sirfsoc_pinmux_endisable(struct sirfsoc_pmx *spmx,
 	}
 }
 
-static int sirfsoc_pinmux_enable(struct pinctrl_dev *pmxdev, unsigned selector,
-	unsigned group)
+static int sirfsoc_pinmux_set_mux(struct pinctrl_dev *pmxdev,
+				unsigned selector,
+				unsigned group)
 {
 	struct sirfsoc_pmx *spmx;
 
@@ -237,7 +238,7 @@  static int sirfsoc_pinmux_request_gpio(struct pinctrl_dev *pmxdev,
 }
 
 static struct pinmux_ops sirfsoc_pinmux_ops = {
-	.enable = sirfsoc_pinmux_enable,
+	.set_mux = sirfsoc_pinmux_set_mux,
 	.get_functions_count = sirfsoc_pinmux_get_funcs_count,
 	.get_function_name = sirfsoc_pinmux_get_func_name,
 	.get_function_groups = sirfsoc_pinmux_get_groups,
diff --git a/drivers/pinctrl/spear/pinctrl-spear.c b/drivers/pinctrl/spear/pinctrl-spear.c
index f72cc4e192bd..abdb05ac43dc 100644
--- a/drivers/pinctrl/spear/pinctrl-spear.c
+++ b/drivers/pinctrl/spear/pinctrl-spear.c
@@ -268,7 +268,7 @@  static int spear_pinctrl_endisable(struct pinctrl_dev *pctldev,
 	return 0;
 }
 
-static int spear_pinctrl_enable(struct pinctrl_dev *pctldev, unsigned function,
+static int spear_pinctrl_set_mux(struct pinctrl_dev *pctldev, unsigned function,
 		unsigned group)
 {
 	return spear_pinctrl_endisable(pctldev, function, group, true);
@@ -338,7 +338,7 @@  static const struct pinmux_ops spear_pinmux_ops = {
 	.get_functions_count = spear_pinctrl_get_funcs_count,
 	.get_function_name = spear_pinctrl_get_func_name,
 	.get_function_groups = spear_pinctrl_get_func_groups,
-	.enable = spear_pinctrl_enable,
+	.set_mux = spear_pinctrl_set_mux,
 	.gpio_request_enable = gpio_request_enable,
 	.gpio_disable_free = gpio_disable_free,
 };
diff --git a/drivers/pinctrl/sunxi/pinctrl-sunxi.c b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
index 3df66e366c87..ef9d804e55de 100644
--- a/drivers/pinctrl/sunxi/pinctrl-sunxi.c
+++ b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
@@ -393,9 +393,9 @@  static void sunxi_pmx_set(struct pinctrl_dev *pctldev,
 	spin_unlock_irqrestore(&pctl->lock, flags);
 }
 
-static int sunxi_pmx_enable(struct pinctrl_dev *pctldev,
-			    unsigned function,
-			    unsigned group)
+static int sunxi_pmx_set_mux(struct pinctrl_dev *pctldev,
+			     unsigned function,
+			     unsigned group)
 {
 	struct sunxi_pinctrl *pctl = pinctrl_dev_get_drvdata(pctldev);
 	struct sunxi_pinctrl_group *g = pctl->groups + group;
@@ -441,7 +441,7 @@  static const struct pinmux_ops sunxi_pmx_ops = {
 	.get_functions_count	= sunxi_pmx_get_funcs_cnt,
 	.get_function_name	= sunxi_pmx_get_func_name,
 	.get_function_groups	= sunxi_pmx_get_func_groups,
-	.enable			= sunxi_pmx_enable,
+	.set_mux		= sunxi_pmx_set_mux,
 	.gpio_set_direction	= sunxi_pmx_gpio_set_direction,
 };
 
diff --git a/drivers/pinctrl/vt8500/pinctrl-wmt.c b/drivers/pinctrl/vt8500/pinctrl-wmt.c
index 8cea355f9a81..d055d63309e4 100644
--- a/drivers/pinctrl/vt8500/pinctrl-wmt.c
+++ b/drivers/pinctrl/vt8500/pinctrl-wmt.c
@@ -131,9 +131,9 @@  static int wmt_set_pinmux(struct wmt_pinctrl_data *data, unsigned func,
 	return 0;
 }
 
-static int wmt_pmx_enable(struct pinctrl_dev *pctldev,
-			  unsigned func_selector,
-			  unsigned group_selector)
+static int wmt_pmx_set_mux(struct pinctrl_dev *pctldev,
+			   unsigned func_selector,
+			   unsigned group_selector)
 {
 	struct wmt_pinctrl_data *data = pinctrl_dev_get_drvdata(pctldev);
 	u32 pinnum = data->pins[group_selector].number;
@@ -168,7 +168,7 @@  static struct pinmux_ops wmt_pinmux_ops = {
 	.get_functions_count = wmt_pmx_get_functions_count,
 	.get_function_name = wmt_pmx_get_function_name,
 	.get_function_groups = wmt_pmx_get_function_groups,
-	.enable = wmt_pmx_enable,
+	.set_mux = wmt_pmx_set_mux,
 	.gpio_disable_free = wmt_pmx_gpio_disable_free,
 	.gpio_set_direction = wmt_pmx_gpio_set_direction,
 };
diff --git a/include/linux/pinctrl/pinmux.h b/include/linux/pinctrl/pinmux.h
index 3097aafbeb24..511bda9ed4bf 100644
--- a/include/linux/pinctrl/pinmux.h
+++ b/include/linux/pinctrl/pinmux.h
@@ -39,13 +39,12 @@  struct pinctrl_dev;
  *	name can be used with the generic @pinctrl_ops to retrieve the
  *	actual pins affected. The applicable groups will be returned in
  *	@groups and the number of groups in @num_groups
- * @enable: enable a certain muxing function with a certain pin group. The
+ * @set_mux: enable a certain muxing function with a certain pin group. The
  *	driver does not need to figure out whether enabling this function
  *	conflicts some other use of the pins in that group, such collisions
  *	are handled by the pinmux subsystem. The @func_selector selects a
  *	certain function whereas @group_selector selects a certain set of pins
  *	to be used. On simple controllers the latter argument may be ignored
- * @disable: disable a certain muxing selector with a certain pin group
  * @gpio_request_enable: requests and enables GPIO on a certain pin.
  *	Implement this only if you can mux every pin individually as GPIO. The
  *	affected GPIO range is passed along with an offset(pin number) into that
@@ -68,8 +67,8 @@  struct pinmux_ops {
 				  unsigned selector,
 				  const char * const **groups,
 				  unsigned * const num_groups);
-	int (*enable) (struct pinctrl_dev *pctldev, unsigned func_selector,
-		       unsigned group_selector);
+	int (*set_mux) (struct pinctrl_dev *pctldev, unsigned func_selector,
+			unsigned group_selector);
 	int (*gpio_request_enable) (struct pinctrl_dev *pctldev,
 				    struct pinctrl_gpio_range *range,
 				    unsigned offset);