From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=3.0 tests=DKIM_SIGNED, MAILING_LIST_MULTI,SPF_PASS,T_DKIM_INVALID,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 25CCCC07520 for ; Thu, 13 Sep 2018 09:22:12 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D169220854 for ; Thu, 13 Sep 2018 09:22:11 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="gTzTTB6+" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D169220854 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727885AbeIMOaq (ORCPT ); Thu, 13 Sep 2018 10:30:46 -0400 Received: from mail-lj1-f196.google.com ([209.85.208.196]:33208 "EHLO mail-lj1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726509AbeIMOap (ORCPT ); Thu, 13 Sep 2018 10:30:45 -0400 Received: by mail-lj1-f196.google.com with SMTP id s12-v6so4032000ljj.0; Thu, 13 Sep 2018 02:22:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=WrpPmSf/Ir/AP2WGlMpgLdi04RIUiS4FuIpJJIM8Qcw=; b=gTzTTB6+HtkgjgS5YAIxcP8oN3ofdc6yeHk+Xw853yXm+lzLPy4MYo6ULvP5wmnBem Txof5CPTsntbGU5zbLiK2giLmukv2Wcfw9bnh8g2MNPHqL0YfS0gJhR101UknijzzMr6 jr6gEWSURWLH/Fao1uataEnv8jDEyuKqZSUxs4GZZ5QvLTFKSquBQkq5qqJ8PagFWzQ5 7vr+R9jiqfZKcCPJJ0WSu1WAoAJ98XwSLUbu7bbjkOfFgYTqWQBK6cqjhsiQhGEViiXr bPGq9FkjqsM29VIqBt3ciapr9EMNzHuRkbkK4Q5lDFuDfL680VxjZHZyWvk8vCD4KJYY Cb6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=WrpPmSf/Ir/AP2WGlMpgLdi04RIUiS4FuIpJJIM8Qcw=; b=VNILyuaulMtynot+QJjOJ0ZQTQHz7RIuIU6Fv6yqazs4WlxUF7yQcyfubl+MCmALSo e2Qx4XbnOxnpHqjUINTCIHfhHOKsECl/5hQQuOgJTfcb4yEdFEfsHl4hKJuhekndpcjd H897pS2/tT8eK59AL4NVNqAlSy90q8CP3lFvZ7MMZNaBtetSHL1mOTQf5fndu411Oyu4 2EoiaQVBEyheGg3hwIeDVrhxlachZhLwaisnzcbFpDFZESMifWmF0tELh43qZwrZ9n9Z qfcu1jkjzz8/og4cyxxHeGGuRwRiN5TpfH2D55hjiBGgOqslOJDEKgu5OA64UJgf7Axi qQNA== X-Gm-Message-State: APzg51AuFh4ngS+qKU4Yz4dxzKhGqRhPHr7xQBA3pWnNrkqyHYcaqRGF u4zz1nLGmb+wgCWt7yGYN3SUiPHs X-Google-Smtp-Source: ANB0VdapW6g5V2tGTcLU4RJ6qXrOKkBwm/aHmMeYzzu5GQ5bs03YhYKOaXuiZjSp/rdIxD5CFhF3XQ== X-Received: by 2002:a2e:291c:: with SMTP id u28-v6mr3834798lje.70.1536830525308; Thu, 13 Sep 2018 02:22:05 -0700 (PDT) Received: from xi.terra (c-74bee655.07-184-6d6c6d4.bbcust.telenor.se. [85.230.190.116]) by smtp.gmail.com with ESMTPSA id q85-v6sm628461lfg.20.2018.09.13.02.22.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Sep 2018 02:22:04 -0700 (PDT) Received: from johan by xi.terra with local (Exim 4.91) (envelope-from ) id 1g0Np7-0000DH-Ej; Thu, 13 Sep 2018 11:22:05 +0200 From: Johan Hovold To: Kristian Evensen Cc: linux-usb@vger.kernel.org, =?UTF-8?q?Bj=C3=B8rn=20Mork?= , Dan Williams , Lars Melin , linux-kernel@vger.kernel.org, Johan Hovold , stable Subject: [PATCH 2/2] USB: serial: option: add two-endpoints device-id flag Date: Thu, 13 Sep 2018 11:21:50 +0200 Message-Id: <20180913092152.770-2-johan@kernel.org> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20180913092152.770-1-johan@kernel.org> References: <20180913091753.GA3443@localhost> <20180913092152.770-1-johan@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Allow matching on interfaces having two endpoints by adding a new device-id flag. This allows for the handling of devices whose interface numbers can change (e.g. Quectel EP06) to be contained in the device-id table. Cc: stable Signed-off-by: Johan Hovold --- drivers/usb/serial/option.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c index 382feafbd127..241a73e172a1 100644 --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c @@ -561,6 +561,9 @@ static void option_instat_callback(struct urb *urb); /* Interface is reserved */ #define RSVD(ifnum) ((BIT(ifnum) & 0xff) << 0) +/* Interface must have two endpoints */ +#define NUMEP2 BIT(16) + static const struct usb_device_id option_ids[] = { { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, @@ -1082,7 +1085,7 @@ static const struct usb_device_id option_ids[] = { { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96), .driver_info = RSVD(4) }, { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0xff, 0xff), - .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) }, + .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 }, { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0, 0) }, { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6001) }, { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CMU_300) }, @@ -1986,7 +1989,6 @@ static int option_probe(struct usb_serial *serial, { struct usb_interface_descriptor *iface_desc = &serial->interface->cur_altsetting->desc; - struct usb_device_descriptor *dev_desc = &serial->dev->descriptor; unsigned long device_flags = id->driver_info; /* Never bind to the CD-Rom emulation interface */ @@ -2002,16 +2004,11 @@ static int option_probe(struct usb_serial *serial, return -ENODEV; /* - * Don't bind to the QMI device of the Quectel EP06/EG06/EM06. Class, - * subclass and protocol is 0xff for both the diagnostic port and the - * QMI interface, but the diagnostic port only has two endpoints (QMI - * has three). + * Allow matching on bNumEndpoints for devices whose interface numbers + * change (e.g. Quectel EP06). */ - if (dev_desc->idVendor == cpu_to_le16(QUECTEL_VENDOR_ID) && - dev_desc->idProduct == cpu_to_le16(QUECTEL_PRODUCT_EP06) && - iface_desc->bInterfaceSubClass && iface_desc->bNumEndpoints == 3) { + if (device_flags & NUMEP2 && iface_desc->bNumEndpoints != 2) return -ENODEV; - } /* Store the device flags so we can use them during attach. */ usb_set_serial_data(serial, (void *)device_flags); -- 2.19.0 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: [2/2] USB: serial: option: add two-endpoints device-id flag From: Johan Hovold Message-Id: <20180913092152.770-2-johan@kernel.org> Date: Thu, 13 Sep 2018 11:21:50 +0200 To: Kristian Evensen Cc: linux-usb@vger.kernel.org, =?UTF-8?q?Bj=C3=B8rn=20Mork?= , Dan Williams , Lars Melin , linux-kernel@vger.kernel.org, Johan Hovold , stable List-ID: QWxsb3cgbWF0Y2hpbmcgb24gaW50ZXJmYWNlcyBoYXZpbmcgdHdvIGVuZHBvaW50cyBieSBhZGRp bmcgYSBuZXcKZGV2aWNlLWlkIGZsYWcuCgpUaGlzIGFsbG93cyBmb3IgdGhlIGhhbmRsaW5nIG9m IGRldmljZXMgd2hvc2UgaW50ZXJmYWNlIG51bWJlcnMgY2FuCmNoYW5nZSAoZS5nLiBRdWVjdGVs IEVQMDYpIHRvIGJlIGNvbnRhaW5lZCBpbiB0aGUgZGV2aWNlLWlkIHRhYmxlLgoKQ2M6IHN0YWJs ZSA8c3RhYmxlQHZnZXIua2VybmVsLm9yZz4KU2lnbmVkLW9mZi1ieTogSm9oYW4gSG92b2xkIDxq b2hhbkBrZXJuZWwub3JnPgotLS0KIGRyaXZlcnMvdXNiL3NlcmlhbC9vcHRpb24uYyB8IDE3ICsr KysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAxMCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvb3B0aW9uLmMgYi9kcml2 ZXJzL3VzYi9zZXJpYWwvb3B0aW9uLmMKaW5kZXggMzgyZmVhZmJkMTI3Li4yNDFhNzNlMTcyYTEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9vcHRpb24uYworKysgYi9kcml2ZXJzL3Vz Yi9zZXJpYWwvb3B0aW9uLmMKQEAgLTU2MSw2ICs1NjEsOSBAQCBzdGF0aWMgdm9pZCBvcHRpb25f aW5zdGF0X2NhbGxiYWNrKHN0cnVjdCB1cmIgKnVyYik7CiAvKiBJbnRlcmZhY2UgaXMgcmVzZXJ2 ZWQgKi8KICNkZWZpbmUgUlNWRChpZm51bSkJKChCSVQoaWZudW0pICYgMHhmZikgPDwgMCkKIAor LyogSW50ZXJmYWNlIG11c3QgaGF2ZSB0d28gZW5kcG9pbnRzICovCisjZGVmaW5lIE5VTUVQMgkJ QklUKDE2KQorCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBvcHRpb25faWRz W10gPSB7CiAJeyBVU0JfREVWSUNFKE9QVElPTl9WRU5ET1JfSUQsIE9QVElPTl9QUk9EVUNUX0NP TFQpIH0sCkBAIC0xMDgyLDcgKzEwODUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZp Y2VfaWQgb3B0aW9uX2lkc1tdID0gewogCXsgVVNCX0RFVklDRShRVUVDVEVMX1ZFTkRPUl9JRCwg UVVFQ1RFTF9QUk9EVUNUX0JHOTYpLAogCSAgLmRyaXZlcl9pbmZvID0gUlNWRCg0KSB9LAogCXsg VVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oUVVFQ1RFTF9WRU5ET1JfSUQsIFFVRUNURUxf UFJPRFVDVF9FUDA2LCAweGZmLCAweGZmLCAweGZmKSwKLQkgIC5kcml2ZXJfaW5mbyA9IFJTVkQo MSkgfCBSU1ZEKDIpIHwgUlNWRCgzKSB8IFJTVkQoNCkgfSwKKwkgIC5kcml2ZXJfaW5mbyA9IFJT VkQoMSkgfCBSU1ZEKDIpIHwgUlNWRCgzKSB8IFJTVkQoNCkgfCBOVU1FUDIgfSwKIAl7IFVTQl9E RVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFFVRUNURUxfVkVORE9SX0lELCBRVUVDVEVMX1BST0RV Q1RfRVAwNiwgMHhmZiwgMCwgMCkgfSwKIAl7IFVTQl9ERVZJQ0UoQ01PVEVDSF9WRU5ET1JfSUQs IENNT1RFQ0hfUFJPRFVDVF82MDAxKSB9LAogCXsgVVNCX0RFVklDRShDTU9URUNIX1ZFTkRPUl9J RCwgQ01PVEVDSF9QUk9EVUNUX0NNVV8zMDApIH0sCkBAIC0xOTg2LDcgKzE5ODksNiBAQCBzdGF0 aWMgaW50IG9wdGlvbl9wcm9iZShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLAogewogCXN0cnVj dCB1c2JfaW50ZXJmYWNlX2Rlc2NyaXB0b3IgKmlmYWNlX2Rlc2MgPQogCQkJCSZzZXJpYWwtPmlu dGVyZmFjZS0+Y3VyX2FsdHNldHRpbmctPmRlc2M7Ci0Jc3RydWN0IHVzYl9kZXZpY2VfZGVzY3Jp cHRvciAqZGV2X2Rlc2MgPSAmc2VyaWFsLT5kZXYtPmRlc2NyaXB0b3I7CiAJdW5zaWduZWQgbG9u ZyBkZXZpY2VfZmxhZ3MgPSBpZC0+ZHJpdmVyX2luZm87CiAKIAkvKiBOZXZlciBiaW5kIHRvIHRo ZSBDRC1Sb20gZW11bGF0aW9uIGludGVyZmFjZQkqLwpAQCAtMjAwMiwxNiArMjAwNCwxMSBAQCBz dGF0aWMgaW50IG9wdGlvbl9wcm9iZShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLAogCQlyZXR1 cm4gLUVOT0RFVjsKIAogCS8qCi0JICogRG9uJ3QgYmluZCB0byB0aGUgUU1JIGRldmljZSBvZiB0 aGUgUXVlY3RlbCBFUDA2L0VHMDYvRU0wNi4gQ2xhc3MsCi0JICogc3ViY2xhc3MgYW5kIHByb3Rv Y29sIGlzIDB4ZmYgZm9yIGJvdGggdGhlIGRpYWdub3N0aWMgcG9ydCBhbmQgdGhlCi0JICogUU1J IGludGVyZmFjZSwgYnV0IHRoZSBkaWFnbm9zdGljIHBvcnQgb25seSBoYXMgdHdvIGVuZHBvaW50 cyAoUU1JCi0JICogaGFzIHRocmVlKS4KKwkgKiBBbGxvdyBtYXRjaGluZyBvbiBiTnVtRW5kcG9p bnRzIGZvciBkZXZpY2VzIHdob3NlIGludGVyZmFjZSBudW1iZXJzCisJICogY2hhbmdlIChlLmcu IFF1ZWN0ZWwgRVAwNikuCiAJICovCi0JaWYgKGRldl9kZXNjLT5pZFZlbmRvciA9PSBjcHVfdG9f bGUxNihRVUVDVEVMX1ZFTkRPUl9JRCkgJiYKLQkgICAgZGV2X2Rlc2MtPmlkUHJvZHVjdCA9PSBj cHVfdG9fbGUxNihRVUVDVEVMX1BST0RVQ1RfRVAwNikgJiYKLQkgICAgaWZhY2VfZGVzYy0+Yklu dGVyZmFjZVN1YkNsYXNzICYmIGlmYWNlX2Rlc2MtPmJOdW1FbmRwb2ludHMgPT0gMykgeworCWlm IChkZXZpY2VfZmxhZ3MgJiBOVU1FUDIgJiYgaWZhY2VfZGVzYy0+Yk51bUVuZHBvaW50cyAhPSAy KQogCQlyZXR1cm4gLUVOT0RFVjsKLQl9CiAKIAkvKiBTdG9yZSB0aGUgZGV2aWNlIGZsYWdzIHNv IHdlIGNhbiB1c2UgdGhlbSBkdXJpbmcgYXR0YWNoLiAqLwogCXVzYl9zZXRfc2VyaWFsX2RhdGEo c2VyaWFsLCAodm9pZCAqKWRldmljZV9mbGFncyk7Cg==