From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v4] usb/gadget/uvc-configs Fix host unable to negotiate framesizes other than first From: Joel Pepper Message-Id: <31bf1ba2-9f9c-4d4d-af63-f610147fc14e@rwthex-s3-b.rwth-ad.de> Date: Wed, 21 Mar 2018 11:20:18 +0100 To: Laurent Pinchart Cc: Felipe Balbi , Greg Kroah-Hartman , Paul Elder , linux-usb@vger.kernel.org, Joel Pepper List-ID: LSBBZGQgYkZyYW1lSW5kZXggYXMgYSBVVkNHX0ZSQU1FX0FUVFJfUk8gZm9yIGVhY2ggZnJhbWUg c2l6ZS4KLSBBdXRvbWF0aWNhbGx5IGFzc2lnbiBhc2NlbmRpbmcgYkZyYW1lSW5kZXggdG8gZWFj aCBmcmFtZSBpbiBhIGZvcm1hdC4KCkJlZm9yZSBhbGwgImJGcmFtZWluZGV4IiBhdHRyaWJ1dGVz IHdlcmUgc2V0IHRvICIxIiB3aXRoIG5vIHdheSB0bwpjb25maWd1cmUgdGhlIGdhZGdldCBvdGhl cndpc2UuIFRoaXMgcmVzdWx0ZWQgaW4gdGhlIGhvc3QgYWx3YXlzCm5lZ290aWF0aW5nIGZvciBi RnJhbWVJbmRleCAxIChpLmUuIHRoZSBmaXJzdCBmcmFtZXNpemUgb2YgdGhlIGdhZGdldCkuCkFm dGVyIHRoZSBuZWdvdGlhdGlvbiB0aGUgaG9zdCBkcml2ZXIgd2lsbCBzZXQgdGhlIHVzZXIgb3Ig YXBwbGljYXRpb24Kc2VsZWN0ZWQgZnJhbWVzaXplLCB3aGlsZSB0aGUgZ2FkZ2V0IGlzIGFjdHVh bGx5IHNldCB0byB0aGUgZmlyc3QKZnJhbWVzaXplLgoKTm93LCB3aGVuIHRoZSBjb250YWluaW5n IGZvcm1hdCBpcyBsaW5rZWQgaW50byB0aGUgc3RyZWFtaW5nIGhlYWRlciwKaXRlcmF0ZSBvdmVy IGFsbCBjaGlsZCBmcmFtZSBkZXNjcmlwdG9ycyBhbmQgYXNzaWduIGFzY2VuZGluZyBpbmRpY2Vz LgpUaGUgYXV0b21hdGljYWxseSBhc3NpZ25lZCBpbmRpY2VzIGNhbiBiZSByZWFkIGZyb20gdGhl IG5ldyByZWFkIG9ubHkKYkZyYW1lSW5kZXggY29uZmlnc2ZzIGF0dHJpYnV0ZSBpbiBlYWNoIGZy YW1lIGRlc2NyaXB0b3IgaXRlbS4KCnYyOiBBZGQgdGhlIG5ldyBhdHRyaWJ1dGUgdG8gYm90aCBN SlBFRyBhbmQgdW5jb21wcmVzc2VkIGZyYW1lIGRlc2NyaXB0b3JzCmluIERvY3VtZW50YXRpb24v QUJJLCB3aXRoIG5vdGUgdGhhdCBpdCB3YXMgYWRkZWQgb25seSBpbiBhIGxhdGVyCmtlcm5lbCB2 ZXJzaW9uCgp2MzogQ2hhbmdlZCBmcm9tIHNpbXBseSBhbGxvd2luZyB1c2VyIHRvIHNldCB0aGUg dmFsdWUgZm9yIGJGcmFtZUluZGV4IHRvCmF1dG9tYXRpY2FsbHkgYXNzaWduaW5nIGNvcnJlY3Qg ZGlzdGluY3QgZnJhbWUgaW5kZXhlcy4gQ2hhbmdlZApiRnJhbWVJbmRleCBmcm9tIFJXIHRvIFJP Cgp2NDogQWN0dWFsbHkgaW5jbHVkZSB1cGRhdGVkIHBhdGNoCgpTaWduZWQtb2ZmLWJ5OiBKb2Vs IFBlcHBlciA8am9lbC5wZXBwZXJAcnd0aC1hYWNoZW4uZGU+Ci0tLQogRG9jdW1lbnRhdGlvbi9B QkkvdGVzdGluZy9jb25maWdmcy11c2ItZ2FkZ2V0LXV2YyB8IDE4ICsrKysrKysrCiBkcml2ZXJz L3VzYi9nYWRnZXQvZnVuY3Rpb24vdXZjX2NvbmZpZ2ZzLmMgICAgICAgIHwgNTMgKysrKysrKysr KysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgNzEgaW5zZXJ0aW9ucygrKQoKZGlmZiAt LWdpdCBhL0RvY3VtZW50YXRpb24vQUJJL3Rlc3RpbmcvY29uZmlnZnMtdXNiLWdhZGdldC11dmMg Yi9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2NvbmZpZ2ZzLXVzYi1nYWRnZXQtdXZjCmluZGV4 IDFiYTBkMGYuLjg3MmVkOGEgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcv Y29uZmlnZnMtdXNiLWdhZGdldC11dmMKKysrIGIvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9j b25maWdmcy11c2ItZ2FkZ2V0LXV2YwpAQCAtMTk0LDYgKzE5NCwxNCBAQCBEZXNjcmlwdGlvbjoJ U3BlY2lmaWMgTUpQRUcgZnJhbWUgZGVzY3JpcHRvcnMKIAkJYm1DYXBhYmlsaXRpZXMJCS0gc3Rp bGwgaW1hZ2Ugc3VwcG9ydCwgZml4ZWQgZnJhbWUtcmF0ZQogCQkJCQlzdXBwb3J0CiAKK0RhdGU6 CQlNYXIgMjAxOAorS2VybmVsVmVyc2lvbjoJNC4xNgorCisJCWJGcmFtZUluZGV4CQktIHVuaXF1 ZSBpZCBmb3IgdGhpcyBmcmFtZWRlc2NyaXB0b3I7CisJCQkJCW9ubHkgZGVmaW5lZCBhZnRlciBw YXJlbnQgZm9ybWF0IGlzCisJCQkJCWxpbmtlZCBpbnRvIHRoZSBzdHJlYW1pbmcgaGVhZGVyOwor CQkJCQlyZWFkLW9ubHkKKwogV2hhdDoJCS9jb25maWcvdXNiLWdhZGdldC9nYWRnZXQvZnVuY3Rp b25zL3V2Yy5uYW1lL3N0cmVhbWluZy91bmNvbXByZXNzZWQKIERhdGU6CQlEZWMgMjAxNAogS2Vy bmVsVmVyc2lvbjoJNC4wCkBAIC0yNDEsNiArMjQ5LDE2IEBAIERlc2NyaXB0aW9uOglTcGVjaWZp YyB1bmNvbXByZXNzZWQgZnJhbWUgZGVzY3JpcHRvcnMKIAkJYm1DYXBhYmlsaXRpZXMJCS0gc3Rp bGwgaW1hZ2Ugc3VwcG9ydCwgZml4ZWQgZnJhbWUtcmF0ZQogCQkJCQlzdXBwb3J0CiAKK0RhdGU6 ICAgICAgICAgICBNYXIgMjAxOAorS2VybmVsVmVyc2lvbjogIDQuMTYKKworICAgICAgICAgICAg ICAgIGJGcmFtZUluZGV4ICAgICAgICAgICAgIC0gdW5pcXVlIGlkIGZvciB0aGlzIGZyYW1lZGVz Y3JpcHRvcjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmx5IGRl ZmluZWQgYWZ0ZXIgcGFyZW50IGZvcm1hdCBpcyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsaW5rZWQgaW50byB0aGUgc3RyZWFtaW5nIGhlYWRlcjsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkLW9ubHkKKworCisKIFdoYXQ6CQkv Y29uZmlnL3VzYi1nYWRnZXQvZ2FkZ2V0L2Z1bmN0aW9ucy91dmMubmFtZS9zdHJlYW1pbmcvaGVh ZGVyCiBEYXRlOgkJRGVjIDIwMTQKIEtlcm5lbFZlcnNpb246CTQuMApkaWZmIC0tZ2l0IGEvZHJp dmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL3V2Y19jb25maWdmcy5jIGIvZHJpdmVycy91c2IvZ2Fk Z2V0L2Z1bmN0aW9uL3V2Y19jb25maWdmcy5jCmluZGV4IGM5YjhjYzRhLi5hNzNkYmM1IDEwMDY0 NAotLS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vdXZjX2NvbmZpZ2ZzLmMKKysrIGIv ZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL3V2Y19jb25maWdmcy5jCkBAIC0zMiw2ICszMiw3 IEBAIHN0YXRpYyBzdHJ1Y3QgY29uZmlnZnNfYXR0cmlidXRlIHByZWZpeCMjYXR0cl8jI2NuYW1l ID0geyBcCiB9CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGZfdXZjX29wdHMgKnRvX2ZfdXZjX29w dHMoc3RydWN0IGNvbmZpZ19pdGVtICppdGVtKTsKK3N0YXRpYyB2b2lkIF9fdXZjZ19mbXRfc2V0 X2luZGljZXMoc3RydWN0IGNvbmZpZ19ncm91cCogZm10KTsKIAogLyogY29udHJvbC9oZWFkZXIv PE5BTUU+ICovCiBERUNMQVJFX1VWQ19IRUFERVJfREVTQ1JJUFRPUigxKTsKQEAgLTc1MSw2ICs3 NTIsOCBAQCBzdGF0aWMgaW50IHV2Y2dfc3RyZWFtaW5nX2hlYWRlcl9hbGxvd19saW5rKHN0cnVj dCBjb25maWdfaXRlbSAqc3JjLAogCWlmICghdGFyZ2V0X2ZtdCkKIAkJZ290byBvdXQ7CiAKKwlf X3V2Y2dfZm10X3NldF9pbmRpY2VzKHRvX2NvbmZpZ19ncm91cCh0YXJnZXQpKTsKKwogCWZvcm1h dF9wdHIgPSBremFsbG9jKHNpemVvZigqZm9ybWF0X3B0ciksIEdGUF9LRVJORUwpOwogCWlmICgh Zm9ybWF0X3B0cikgewogCQlyZXQgPSAtRU5PTUVNOwpAQCAtOTI5LDYgKzkzMiwzMCBAQCBzdGF0 aWMgc3RydWN0IHV2Y2dfZnJhbWUgKnRvX3V2Y2dfZnJhbWUoc3RydWN0IGNvbmZpZ19pdGVtICpp dGVtKQogCXJldHVybiBjb250YWluZXJfb2YoaXRlbSwgc3RydWN0IHV2Y2dfZnJhbWUsIGl0ZW0p OwogfQogCisjZGVmaW5lIFVWQ0dfRlJBTUVfQVRUUl9STyhjbmFtZSwgYW5hbWUsIHRvX2NwdV9l bmRpYW4sIHRvX2xpdHRsZV9lbmRpYW4sIGJpdHMpIFwKK3N0YXRpYyBzc2l6ZV90IHV2Y2dfZnJh bWVfIyNjbmFtZSMjX3Nob3coc3RydWN0IGNvbmZpZ19pdGVtICppdGVtLCBjaGFyICpwYWdlKVwK K3sJCQkJCQkJCQlcCisJc3RydWN0IHV2Y2dfZnJhbWUgKmYgPSB0b191dmNnX2ZyYW1lKGl0ZW0p OwkJCVwKKwlzdHJ1Y3QgZl91dmNfb3B0cyAqb3B0czsJCQkJCVwKKwlzdHJ1Y3QgY29uZmlnX2l0 ZW0gKm9wdHNfaXRlbTsJCQkJCVwKKwlzdHJ1Y3QgbXV0ZXggKnN1X211dGV4ID0gJmYtPml0ZW0u Y2lfZ3JvdXAtPmNnX3N1YnN5cy0+c3VfbXV0ZXg7XAorCWludCByZXN1bHQ7CQkJCQkJCVwKKwkJ CQkJCQkJCVwKKwltdXRleF9sb2NrKHN1X211dGV4KTsgLyogZm9yIG5hdmlnYXRpbmcgY29uZmln ZnMgaGllcmFyY2h5ICovCVwKKwkJCQkJCQkJCVwKKwlvcHRzX2l0ZW0gPSBmLT5pdGVtLmNpX3Bh cmVudC0+Y2lfcGFyZW50LT5jaV9wYXJlbnQtPmNpX3BhcmVudDsJXAorCW9wdHMgPSB0b19mX3V2 Y19vcHRzKG9wdHNfaXRlbSk7CQkJCVwKKwkJCQkJCQkJCVwKKwltdXRleF9sb2NrKCZvcHRzLT5s b2NrKTsJCQkJCVwKKwlyZXN1bHQgPSBzcHJpbnRmKHBhZ2UsICIlZFxuIiwgdG9fY3B1X2VuZGlh bihmLT5mcmFtZS5jbmFtZSkpOwlcCisJbXV0ZXhfdW5sb2NrKCZvcHRzLT5sb2NrKTsJCQkJCVwK KwkJCQkJCQkJCVwKKwltdXRleF91bmxvY2soc3VfbXV0ZXgpOwkJCQkJCVwKKwlyZXR1cm4gcmVz dWx0OwkJCQkJCQlcCit9CQkJCQkJCQkJXAorCQkJCQkJCQkJXAorVVZDX0FUVFJfUk8odXZjZ19m cmFtZV8sIGNuYW1lLCBhbmFtZSk7CisKICNkZWZpbmUgVVZDR19GUkFNRV9BVFRSKGNuYW1lLCBh bmFtZSwgdG9fY3B1X2VuZGlhbiwgdG9fbGl0dGxlX2VuZGlhbiwgYml0cykgXAogc3RhdGljIHNz aXplX3QgdXZjZ19mcmFtZV8jI2NuYW1lIyNfc2hvdyhzdHJ1Y3QgY29uZmlnX2l0ZW0gKml0ZW0s IGNoYXIgKnBhZ2UpXAogewkJCQkJCQkJCVwKQEAgLTk5MCw2ICsxMDE3LDkgQEAgVVZDX0FUVFIo dXZjZ19mcmFtZV8sIGNuYW1lLCBhbmFtZSk7CiAKICNkZWZpbmUgbm9vcF9jb252ZXJzaW9uKHgp ICh4KQogCitVVkNHX0ZSQU1FX0FUVFJfUk8oYl9mcmFtZV9pbmRleCwgYkZyYW1lSW5kZXgsIG5v b3BfY29udmVyc2lvbiwKKwkJbm9vcF9jb252ZXJzaW9uLCA4KTsKKwogVVZDR19GUkFNRV9BVFRS KGJtX2NhcGFiaWxpdGllcywgYm1DYXBhYmlsaXRpZXMsIG5vb3BfY29udmVyc2lvbiwKIAkJbm9v cF9jb252ZXJzaW9uLCA4KTsKIFVWQ0dfRlJBTUVfQVRUUih3X3dpZHRoLCB3V2lkdGgsIGxlMTZf dG9fY3B1LCBjcHVfdG9fbGUxNiwgMTYpOwpAQCAtMTEzNyw2ICsxMTY3LDcgQEAgVVZDX0FUVFIo dXZjZ19mcmFtZV8sIGR3X2ZyYW1lX2ludGVydmFsLCBkd0ZyYW1lSW50ZXJ2YWwpOwogCiBzdGF0 aWMgc3RydWN0IGNvbmZpZ2ZzX2F0dHJpYnV0ZSAqdXZjZ19mcmFtZV9hdHRyc1tdID0gewogCSZ1 dmNnX2ZyYW1lX2F0dHJfYm1fY2FwYWJpbGl0aWVzLAorCSZ1dmNnX2ZyYW1lX2F0dHJfYl9mcmFt ZV9pbmRleCwKIAkmdXZjZ19mcmFtZV9hdHRyX3dfd2lkdGgsCiAJJnV2Y2dfZnJhbWVfYXR0cl93 X2hlaWdodCwKIAkmdXZjZ19mcmFtZV9hdHRyX2R3X21pbl9iaXRfcmF0ZSwKQEAgLTEyMTQsNiAr MTI0NSwyOCBAQCBzdGF0aWMgdm9pZCB1dmNnX2ZyYW1lX2Ryb3Aoc3RydWN0IGNvbmZpZ19ncm91 cCAqZ3JvdXAsIHN0cnVjdCBjb25maWdfaXRlbSAqaXRlbQogCW11dGV4X3VubG9jaygmb3B0cy0+ bG9jayk7CiB9CiAKK3N0YXRpYyB2b2lkIF9fdXZjZ19mbXRfc2V0X2luZGljZXMoc3RydWN0IGNv bmZpZ19ncm91cCogZm10KQoreworCXU4IGkgPSAxOworCXN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5 OworCXN0cnVjdCBjb25maWdfaXRlbSAqY2k7CisJc3RydWN0IHV2Y2dfZnJhbWUgKmZybTsKKwor CWxpc3RfZm9yX2VhY2goZW50cnksJihmbXQtPmNnX2NoaWxkcmVuKSl7CisJCWNpID0gY29udGFp bmVyX29mKGVudHJ5LHN0cnVjdCBjb25maWdfaXRlbSxjaV9lbnRyeSk7CisKKwkJaWYoY2ktPmNp X3R5cGUgIT0gJnV2Y2dfZnJhbWVfdHlwZSl7CisJCQljb250aW51ZTsKKwkJfQorCisJCWZybSA9 IHRvX3V2Y2dfZnJhbWUoY2kpOworCQlmcm0tPmZyYW1lLmJfZnJhbWVfaW5kZXggPSBpOworCQlp Kys7CisKKwl9CisKK30KKwogLyogc3RyZWFtaW5nL3VuY29tcHJlc3NlZC88TkFNRT4gKi8KIHN0 cnVjdCB1dmNnX3VuY29tcHJlc3NlZCB7CiAJc3RydWN0IHV2Y2dfZm9ybWF0CQlmbXQ7Cg==