passing accel=0 will disable acceleration. This is useful for debugging.
Signed-off-by: Alex Deucher <alexdeucher at gmail.com> --- drivers/gpu/drm/radeon/evergreen.c | 2 +- drivers/gpu/drm/radeon/r100.c | 2 +- drivers/gpu/drm/radeon/r300.c | 2 +- drivers/gpu/drm/radeon/r420.c | 2 +- drivers/gpu/drm/radeon/r520.c | 2 +- drivers/gpu/drm/radeon/r600.c | 2 +- drivers/gpu/drm/radeon/radeon.h | 1 + drivers/gpu/drm/radeon/radeon_drv.c | 4 ++++ drivers/gpu/drm/radeon/rs400.c | 2 +- drivers/gpu/drm/radeon/rs600.c | 2 +- drivers/gpu/drm/radeon/rs690.c | 2 +- drivers/gpu/drm/radeon/rv515.c | 2 +- drivers/gpu/drm/radeon/rv770.c | 2 +- 13 files changed, 16 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c index 0137a4c..af19080 100644 --- a/drivers/gpu/drm/radeon/evergreen.c +++ b/drivers/gpu/drm/radeon/evergreen.c @@ -2111,7 +2111,7 @@ int evergreen_init(struct radeon_device *rdev) rdev->accel_working = false; r = evergreen_startup(rdev); - if (r) { + if (r || (radeon_accel == 0)) { dev_err(rdev->dev, "disabling GPU acceleration\n"); r700_cp_fini(rdev); r600_wb_fini(rdev); diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c index 6443d9e..0441e80 100644 --- a/drivers/gpu/drm/radeon/r100.c +++ b/drivers/gpu/drm/radeon/r100.c @@ -3738,7 +3738,7 @@ int r100_init(struct radeon_device *rdev) r100_set_safe_registers(rdev); rdev->accel_working = true; r = r100_startup(rdev); - if (r) { + if (r || (radeon_accel == 0)) { /* Somethings want wront with the accel init stop accel */ dev_err(rdev->dev, "Disabling GPU acceleration\n"); r100_cp_fini(rdev); diff --git a/drivers/gpu/drm/radeon/r300.c b/drivers/gpu/drm/radeon/r300.c index 590f6a8..30a9112 100644 --- a/drivers/gpu/drm/radeon/r300.c +++ b/drivers/gpu/drm/radeon/r300.c @@ -1443,7 +1443,7 @@ int r300_init(struct radeon_device *rdev) r300_set_reg_safe(rdev); rdev->accel_working = true; r = r300_startup(rdev); - if (r) { + if (r || (radeon_accel == 0)) { /* Somethings want wront with the accel init stop accel */ dev_err(rdev->dev, "Disabling GPU acceleration\n"); r100_cp_fini(rdev); diff --git a/drivers/gpu/drm/radeon/r420.c b/drivers/gpu/drm/radeon/r420.c index be092d2..ebb9017 100644 --- a/drivers/gpu/drm/radeon/r420.c +++ b/drivers/gpu/drm/radeon/r420.c @@ -376,7 +376,7 @@ int r420_init(struct radeon_device *rdev) r420_set_reg_safe(rdev); rdev->accel_working = true; r = r420_startup(rdev); - if (r) { + if (r || (radeon_accel == 0)) { /* Somethings want wront with the accel init stop accel */ dev_err(rdev->dev, "Disabling GPU acceleration\n"); r100_cp_fini(rdev); diff --git a/drivers/gpu/drm/radeon/r520.c b/drivers/gpu/drm/radeon/r520.c index 870111e..38caca5 100644 --- a/drivers/gpu/drm/radeon/r520.c +++ b/drivers/gpu/drm/radeon/r520.c @@ -290,7 +290,7 @@ int r520_init(struct radeon_device *rdev) rv515_set_safe_registers(rdev); rdev->accel_working = true; r = r520_startup(rdev); - if (r) { + if (r || (radeon_accel == 0)) { /* Somethings want wront with the accel init stop accel */ dev_err(rdev->dev, "Disabling GPU acceleration\n"); r100_cp_fini(rdev); diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c index 4a35c54..d11632f 100644 --- a/drivers/gpu/drm/radeon/r600.c +++ b/drivers/gpu/drm/radeon/r600.c @@ -2324,7 +2324,7 @@ int r600_init(struct radeon_device *rdev) rdev->accel_working = true; r = r600_startup(rdev); - if (r) { + if (r || (radeon_accel == 0)) { dev_err(rdev->dev, "disabling GPU acceleration\n"); r600_cp_fini(rdev); r600_wb_fini(rdev); diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h index d284270..fc0574c 100644 --- a/drivers/gpu/drm/radeon/radeon.h +++ b/drivers/gpu/drm/radeon/radeon.h @@ -93,6 +93,7 @@ extern int radeon_dynpm; extern int radeon_audio; extern int radeon_disp_priority; extern int radeon_hw_i2c; +extern int radeon_accel; /* * Copy from radeon_drv.h so we don't have to include both and have conflicting diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c index 4b05563..cfe5cd8 100644 --- a/drivers/gpu/drm/radeon/radeon_drv.c +++ b/drivers/gpu/drm/radeon/radeon_drv.c @@ -95,6 +95,7 @@ int radeon_dynpm = -1; int radeon_audio = 1; int radeon_disp_priority = 0; int radeon_hw_i2c = 0; +int radeon_accel = 1; MODULE_PARM_DESC(no_wb, "Disable AGP writeback for scratch registers"); module_param_named(no_wb, radeon_no_wb, int, 0444); @@ -144,6 +145,9 @@ module_param_named(disp_priority, radeon_disp_priority, int, 0444); MODULE_PARM_DESC(hw_i2c, "hw i2c engine enable (0 = disable)"); module_param_named(hw_i2c, radeon_hw_i2c, int, 0444); +MODULE_PARM_DESC(accel, "acceleration (0 = disable)"); +module_param_named(accel, radeon_accel, int, 0444); + static int radeon_suspend(struct drm_device *dev, pm_message_t state) { drm_radeon_private_t *dev_priv = dev->dev_private; diff --git a/drivers/gpu/drm/radeon/rs400.c b/drivers/gpu/drm/radeon/rs400.c index dc76fe7..e36f193 100644 --- a/drivers/gpu/drm/radeon/rs400.c +++ b/drivers/gpu/drm/radeon/rs400.c @@ -528,7 +528,7 @@ int rs400_init(struct radeon_device *rdev) r300_set_reg_safe(rdev); rdev->accel_working = true; r = rs400_startup(rdev); - if (r) { + if (r || (radeon_accel == 0)) { /* Somethings want wront with the accel init stop accel */ dev_err(rdev->dev, "Disabling GPU acceleration\n"); r100_cp_fini(rdev); diff --git a/drivers/gpu/drm/radeon/rs600.c b/drivers/gpu/drm/radeon/rs600.c index b312b72..fbdc6be 100644 --- a/drivers/gpu/drm/radeon/rs600.c +++ b/drivers/gpu/drm/radeon/rs600.c @@ -789,7 +789,7 @@ int rs600_init(struct radeon_device *rdev) rs600_set_safe_registers(rdev); rdev->accel_working = true; r = rs600_startup(rdev); - if (r) { + if (r || (radeon_accel == 0)) { /* Somethings want wront with the accel init stop accel */ dev_err(rdev->dev, "Disabling GPU acceleration\n"); r100_cp_fini(rdev); diff --git a/drivers/gpu/drm/radeon/rs690.c b/drivers/gpu/drm/radeon/rs690.c index 56a0aec..1a38699 100644 --- a/drivers/gpu/drm/radeon/rs690.c +++ b/drivers/gpu/drm/radeon/rs690.c @@ -749,7 +749,7 @@ int rs690_init(struct radeon_device *rdev) rs600_set_safe_registers(rdev); rdev->accel_working = true; r = rs690_startup(rdev); - if (r) { + if (r || (radeon_accel == 0)) { /* Somethings want wront with the accel init stop accel */ dev_err(rdev->dev, "Disabling GPU acceleration\n"); r100_cp_fini(rdev); diff --git a/drivers/gpu/drm/radeon/rv515.c b/drivers/gpu/drm/radeon/rv515.c index c513473..104e285 100644 --- a/drivers/gpu/drm/radeon/rv515.c +++ b/drivers/gpu/drm/radeon/rv515.c @@ -523,7 +523,7 @@ int rv515_init(struct radeon_device *rdev) rv515_set_safe_registers(rdev); rdev->accel_working = true; r = rv515_startup(rdev); - if (r) { + if (r || (radeon_accel == 0)) { /* Somethings want wront with the accel init stop accel */ dev_err(rdev->dev, "Disabling GPU acceleration\n"); r100_cp_fini(rdev); diff --git a/drivers/gpu/drm/radeon/rv770.c b/drivers/gpu/drm/radeon/rv770.c index a74683e..779a89e 100644 --- a/drivers/gpu/drm/radeon/rv770.c +++ b/drivers/gpu/drm/radeon/rv770.c @@ -1123,7 +1123,7 @@ int rv770_init(struct radeon_device *rdev) rdev->accel_working = true; r = rv770_startup(rdev); - if (r) { + if (r || (radeon_accel == 0)) { dev_err(rdev->dev, "disabling GPU acceleration\n"); r700_cp_fini(rdev); r600_wb_fini(rdev); -- 1.5.6.3 --001485f1d90e2acc450484ee027e Content-Type: text/plain; charset=US-ASCII; name="0001-drm-radeon-kms-add-accel-parameter.patch" Content-Disposition: attachment; filename="0001-drm-radeon-kms-add-accel-parameter.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g8diaflg0 RnJvbSAxMTRmMzQ5MWE0MTFmNTBhMGRlMWQ1OTQ3NWZjMjY3ZWZkNWFmYTZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4IERldWNoZXIgPGFsZXhkZXVjaGVyQGdtYWlsLmNvbT4K RGF0ZTogRnJpLCAyMyBBcHIgMjAxMCAxNzoxMjo0NiAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIGRy bS9yYWRlb24va21zOiBhZGQgYWNjZWwgcGFyYW1ldGVyCgpwYXNzaW5nIGFjY2VsPTAgd2lsbCBk aXNhYmxlIGFjY2VsZXJhdGlvbi4KClRoaXMgaXMgdXNlZnVsIGZvciBkZWJ1Z2dpbmcuCgpTaWdu ZWQtb2ZmLWJ5OiBBbGV4IERldWNoZXIgPGFsZXhkZXVjaGVyQGdtYWlsLmNvbT4KLS0tCiBkcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVlbi5jICB8ICAgIDIgKy0KIGRyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcjEwMC5jICAgICAgIHwgICAgMiArLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y MzAwLmMgICAgICAgfCAgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I0MjAuYyAgICAg ICB8ICAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjUyMC5jICAgICAgIHwgICAgMiAr LQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwLmMgICAgICAgfCAgICAyICstCiBkcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oICAgICB8ICAgIDEgKwogZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb25fZHJ2LmMgfCAgICA0ICsrKysKIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnM0 MDAuYyAgICAgIHwgICAgMiArLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yczYwMC5jICAgICAg fCAgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JzNjkwLmMgICAgICB8ICAgIDIgKy0K IGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnY1MTUuYyAgICAgIHwgICAgMiArLQogZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9ydjc3MC5jICAgICAgfCAgICAyICstCiAxMyBmaWxlcyBjaGFuZ2VkLCAx NiBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL2V2ZXJncmVlbi5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3Jl ZW4uYwppbmRleCAwMTM3YTRjLi5hZjE5MDgwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL2V2ZXJncmVlbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVu LmMKQEAgLTIxMTEsNyArMjExMSw3IEBAIGludCBldmVyZ3JlZW5faW5pdChzdHJ1Y3QgcmFkZW9u X2RldmljZSAqcmRldikKIAogCXJkZXYtPmFjY2VsX3dvcmtpbmcgPSBmYWxzZTsKIAlyID0gZXZl cmdyZWVuX3N0YXJ0dXAocmRldik7Ci0JaWYgKHIpIHsKKwlpZiAociB8fCAocmFkZW9uX2FjY2Vs ID09IDApKSB7CiAJCWRldl9lcnIocmRldi0+ZGV2LCAiZGlzYWJsaW5nIEdQVSBhY2NlbGVyYXRp b25cbiIpOwogCQlyNzAwX2NwX2ZpbmkocmRldik7CiAJCXI2MDBfd2JfZmluaShyZGV2KTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjEwMC5jIGIvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yMTAwLmMKaW5kZXggNjQ0M2Q5ZS4uMDQ0MWU4MCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yMTAwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMTAw LmMKQEAgLTM3MzgsNyArMzczOCw3IEBAIGludCByMTAwX2luaXQoc3RydWN0IHJhZGVvbl9kZXZp Y2UgKnJkZXYpCiAJcjEwMF9zZXRfc2FmZV9yZWdpc3RlcnMocmRldik7CiAJcmRldi0+YWNjZWxf d29ya2luZyA9IHRydWU7CiAJciA9IHIxMDBfc3RhcnR1cChyZGV2KTsKLQlpZiAocikgeworCWlm IChyIHx8IChyYWRlb25fYWNjZWwgPT0gMCkpIHsKIAkJLyogU29tZXRoaW5ncyB3YW50IHdyb250 IHdpdGggdGhlIGFjY2VsIGluaXQgc3RvcCBhY2NlbCAqLwogCQlkZXZfZXJyKHJkZXYtPmRldiwg IkRpc2FibGluZyBHUFUgYWNjZWxlcmF0aW9uXG4iKTsKIAkJcjEwMF9jcF9maW5pKHJkZXYpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMzAwLmMgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3IzMDAuYwppbmRleCA1OTBmNmE4Li4zMGE5MTEyIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3IzMDAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Iz MDAuYwpAQCAtMTQ0Myw3ICsxNDQzLDcgQEAgaW50IHIzMDBfaW5pdChzdHJ1Y3QgcmFkZW9uX2Rl dmljZSAqcmRldikKIAlyMzAwX3NldF9yZWdfc2FmZShyZGV2KTsKIAlyZGV2LT5hY2NlbF93b3Jr aW5nID0gdHJ1ZTsKIAlyID0gcjMwMF9zdGFydHVwKHJkZXYpOwotCWlmIChyKSB7CisJaWYgKHIg fHwgKHJhZGVvbl9hY2NlbCA9PSAwKSkgewogCQkvKiBTb21ldGhpbmdzIHdhbnQgd3JvbnQgd2l0 aCB0aGUgYWNjZWwgaW5pdCBzdG9wIGFjY2VsICovCiAJCWRldl9lcnIocmRldi0+ZGV2LCAiRGlz YWJsaW5nIEdQVSBhY2NlbGVyYXRpb25cbiIpOwogCQlyMTAwX2NwX2ZpbmkocmRldik7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I0MjAuYyBiL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcjQyMC5jCmluZGV4IGJlMDkyZDIuLmViYjkwMTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcjQyMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjQyMC5j CkBAIC0zNzYsNyArMzc2LDcgQEAgaW50IHI0MjBfaW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAq cmRldikKIAlyNDIwX3NldF9yZWdfc2FmZShyZGV2KTsKIAlyZGV2LT5hY2NlbF93b3JraW5nID0g dHJ1ZTsKIAlyID0gcjQyMF9zdGFydHVwKHJkZXYpOwotCWlmIChyKSB7CisJaWYgKHIgfHwgKHJh ZGVvbl9hY2NlbCA9PSAwKSkgewogCQkvKiBTb21ldGhpbmdzIHdhbnQgd3JvbnQgd2l0aCB0aGUg YWNjZWwgaW5pdCBzdG9wIGFjY2VsICovCiAJCWRldl9lcnIocmRldi0+ZGV2LCAiRGlzYWJsaW5n IEdQVSBhY2NlbGVyYXRpb25cbiIpOwogCQlyMTAwX2NwX2ZpbmkocmRldik7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I1MjAuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cjUyMC5jCmluZGV4IDg3MDExMWUuLjM4Y2FjYTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcjUyMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjUyMC5jCkBAIC0y OTAsNyArMjkwLDcgQEAgaW50IHI1MjBfaW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikK IAlydjUxNV9zZXRfc2FmZV9yZWdpc3RlcnMocmRldik7CiAJcmRldi0+YWNjZWxfd29ya2luZyA9 IHRydWU7CiAJciA9IHI1MjBfc3RhcnR1cChyZGV2KTsKLQlpZiAocikgeworCWlmIChyIHx8IChy YWRlb25fYWNjZWwgPT0gMCkpIHsKIAkJLyogU29tZXRoaW5ncyB3YW50IHdyb250IHdpdGggdGhl IGFjY2VsIGluaXQgc3RvcCBhY2NlbCAqLwogCQlkZXZfZXJyKHJkZXYtPmRldiwgIkRpc2FibGlu ZyBHUFUgYWNjZWxlcmF0aW9uXG4iKTsKIAkJcjEwMF9jcF9maW5pKHJkZXYpOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3I2MDAuYwppbmRleCA0YTM1YzU0Li5kMTE2MzJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3I2MDAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDAuYwpAQCAt MjMyNCw3ICsyMzI0LDcgQEAgaW50IHI2MDBfaW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRl dikKIAogCXJkZXYtPmFjY2VsX3dvcmtpbmcgPSB0cnVlOwogCXIgPSByNjAwX3N0YXJ0dXAocmRl dik7Ci0JaWYgKHIpIHsKKwlpZiAociB8fCAocmFkZW9uX2FjY2VsID09IDApKSB7CiAJCWRldl9l cnIocmRldi0+ZGV2LCAiZGlzYWJsaW5nIEdQVSBhY2NlbGVyYXRpb25cbiIpOwogCQlyNjAwX2Nw X2ZpbmkocmRldik7CiAJCXI2MDBfd2JfZmluaShyZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uLmggYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5o CmluZGV4IGQyODQyNzAuLmZjMDU3NGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcmFkZW9uLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaApAQCAtOTMs NiArOTMsNyBAQCBleHRlcm4gaW50IHJhZGVvbl9keW5wbTsKIGV4dGVybiBpbnQgcmFkZW9uX2F1 ZGlvOwogZXh0ZXJuIGludCByYWRlb25fZGlzcF9wcmlvcml0eTsKIGV4dGVybiBpbnQgcmFkZW9u X2h3X2kyYzsKK2V4dGVybiBpbnQgcmFkZW9uX2FjY2VsOwogCiAvKgogICogQ29weSBmcm9tIHJh ZGVvbl9kcnYuaCBzbyB3ZSBkb24ndCBoYXZlIHRvIGluY2x1ZGUgYm90aCBhbmQgaGF2ZSBjb25m bGljdGluZwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZHJ2LmMg Yi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kcnYuYwppbmRleCA0YjA1NTYzLi5jZmU1 Y2Q4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kcnYuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kcnYuYwpAQCAtOTUsNiArOTUsNyBAQCBp bnQgcmFkZW9uX2R5bnBtID0gLTE7CiBpbnQgcmFkZW9uX2F1ZGlvID0gMTsKIGludCByYWRlb25f ZGlzcF9wcmlvcml0eSA9IDA7CiBpbnQgcmFkZW9uX2h3X2kyYyA9IDA7CitpbnQgcmFkZW9uX2Fj Y2VsID0gMTsKIAogTU9EVUxFX1BBUk1fREVTQyhub193YiwgIkRpc2FibGUgQUdQIHdyaXRlYmFj ayBmb3Igc2NyYXRjaCByZWdpc3RlcnMiKTsKIG1vZHVsZV9wYXJhbV9uYW1lZChub193YiwgcmFk ZW9uX25vX3diLCBpbnQsIDA0NDQpOwpAQCAtMTQ0LDYgKzE0NSw5IEBAIG1vZHVsZV9wYXJhbV9u YW1lZChkaXNwX3ByaW9yaXR5LCByYWRlb25fZGlzcF9wcmlvcml0eSwgaW50LCAwNDQ0KTsKIE1P RFVMRV9QQVJNX0RFU0MoaHdfaTJjLCAiaHcgaTJjIGVuZ2luZSBlbmFibGUgKDAgPSBkaXNhYmxl KSIpOwogbW9kdWxlX3BhcmFtX25hbWVkKGh3X2kyYywgcmFkZW9uX2h3X2kyYywgaW50LCAwNDQ0 KTsKIAorTU9EVUxFX1BBUk1fREVTQyhhY2NlbCwgImFjY2VsZXJhdGlvbiAoMCA9IGRpc2FibGUp Iik7Cittb2R1bGVfcGFyYW1fbmFtZWQoYWNjZWwsIHJhZGVvbl9hY2NlbCwgaW50LCAwNDQ0KTsK Kwogc3RhdGljIGludCByYWRlb25fc3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBwbV9t ZXNzYWdlX3Qgc3RhdGUpCiB7CiAJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnM0MDAu YyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnM0MDAuYwppbmRleCBkYzc2ZmU3Li5lMzZmMTkz IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JzNDAwLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yczQwMC5jCkBAIC01MjgsNyArNTI4LDcgQEAgaW50IHJzNDAwX2lu aXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJcjMwMF9zZXRfcmVnX3NhZmUocmRldik7 CiAJcmRldi0+YWNjZWxfd29ya2luZyA9IHRydWU7CiAJciA9IHJzNDAwX3N0YXJ0dXAocmRldik7 Ci0JaWYgKHIpIHsKKwlpZiAociB8fCAocmFkZW9uX2FjY2VsID09IDApKSB7CiAJCS8qIFNvbWV0 aGluZ3Mgd2FudCB3cm9udCB3aXRoIHRoZSBhY2NlbCBpbml0IHN0b3AgYWNjZWwgKi8KIAkJZGV2 X2VycihyZGV2LT5kZXYsICJEaXNhYmxpbmcgR1BVIGFjY2VsZXJhdGlvblxuIik7CiAJCXIxMDBf Y3BfZmluaShyZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnM2MDAu YyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnM2MDAuYwppbmRleCBiMzEyYjcyLi5mYmRjNmJl IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JzNjAwLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yczYwMC5jCkBAIC03ODksNyArNzg5LDcgQEAgaW50IHJzNjAwX2lu aXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJcnM2MDBfc2V0X3NhZmVfcmVnaXN0ZXJz KHJkZXYpOwogCXJkZXYtPmFjY2VsX3dvcmtpbmcgPSB0cnVlOwogCXIgPSByczYwMF9zdGFydHVw KHJkZXYpOwotCWlmIChyKSB7CisJaWYgKHIgfHwgKHJhZGVvbl9hY2NlbCA9PSAwKSkgewogCQkv KiBTb21ldGhpbmdzIHdhbnQgd3JvbnQgd2l0aCB0aGUgYWNjZWwgaW5pdCBzdG9wIGFjY2VsICov CiAJCWRldl9lcnIocmRldi0+ZGV2LCAiRGlzYWJsaW5nIEdQVSBhY2NlbGVyYXRpb25cbiIpOwog CQlyMTAwX2NwX2ZpbmkocmRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JzNjkwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JzNjkwLmMKaW5kZXggNTZhMGFlYy4u MWEzODY5OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yczY5MC5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnM2OTAuYwpAQCAtNzQ5LDcgKzc0OSw3IEBAIGludCBy czY5MF9pbml0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogCXJzNjAwX3NldF9zYWZlX3Jl Z2lzdGVycyhyZGV2KTsKIAlyZGV2LT5hY2NlbF93b3JraW5nID0gdHJ1ZTsKIAlyID0gcnM2OTBf c3RhcnR1cChyZGV2KTsKLQlpZiAocikgeworCWlmIChyIHx8IChyYWRlb25fYWNjZWwgPT0gMCkp IHsKIAkJLyogU29tZXRoaW5ncyB3YW50IHdyb250IHdpdGggdGhlIGFjY2VsIGluaXQgc3RvcCBh Y2NlbCAqLwogCQlkZXZfZXJyKHJkZXYtPmRldiwgIkRpc2FibGluZyBHUFUgYWNjZWxlcmF0aW9u XG4iKTsKIAkJcjEwMF9jcF9maW5pKHJkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9ydjUxNS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ydjUxNS5jCmluZGV4IGM1 MTM0NzMuLjEwNGUyODUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnY1MTUu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3J2NTE1LmMKQEAgLTUyMyw3ICs1MjMsNyBA QCBpbnQgcnY1MTVfaW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIAlydjUxNV9zZXRf c2FmZV9yZWdpc3RlcnMocmRldik7CiAJcmRldi0+YWNjZWxfd29ya2luZyA9IHRydWU7CiAJciA9 IHJ2NTE1X3N0YXJ0dXAocmRldik7Ci0JaWYgKHIpIHsKKwlpZiAociB8fCAocmFkZW9uX2FjY2Vs ID09IDApKSB7CiAJCS8qIFNvbWV0aGluZ3Mgd2FudCB3cm9udCB3aXRoIHRoZSBhY2NlbCBpbml0 IHN0b3AgYWNjZWwgKi8KIAkJZGV2X2VycihyZGV2LT5kZXYsICJEaXNhYmxpbmcgR1BVIGFjY2Vs ZXJhdGlvblxuIik7CiAJCXIxMDBfY3BfZmluaShyZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcnY3NzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnY3NzAuYwpp bmRleCBhNzQ2ODNlLi43NzlhODllIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3J2NzcwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ydjc3MC5jCkBAIC0xMTIzLDcg KzExMjMsNyBAQCBpbnQgcnY3NzBfaW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIAog CXJkZXYtPmFjY2VsX3dvcmtpbmcgPSB0cnVlOwogCXIgPSBydjc3MF9zdGFydHVwKHJkZXYpOwot CWlmIChyKSB7CisJaWYgKHIgfHwgKHJhZGVvbl9hY2NlbCA9PSAwKSkgewogCQlkZXZfZXJyKHJk ZXYtPmRldiwgImRpc2FibGluZyBHUFUgYWNjZWxlcmF0aW9uXG4iKTsKIAkJcjcwMF9jcF9maW5p KHJkZXYpOwogCQlyNjAwX3diX2ZpbmkocmRldik7Ci0tIAoxLjUuNi4zCgo= --001485f1d90e2acc450484ee027e--