From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756620AbbDVMsN (ORCPT ); Wed, 22 Apr 2015 08:48:13 -0400 Received: from frisell.zx2c4.com ([192.95.5.64]:41691 "EHLO frisell.zx2c4.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756526AbbDVMsJ (ORCPT ); Wed, 22 Apr 2015 08:48:09 -0400 From: "Jason A. Donenfeld" To: Johan Hovold , Petr Slansky , Adam C Powell IV , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman Cc: "Jason A. Donenfeld" Subject: [PATCH 2/2] pl2303: Match I330 phone more precisely Date: Wed, 22 Apr 2015 14:48:10 +0200 Message-Id: <1429706890-29047-2-git-send-email-Jason@zx2c4.com> X-Mailer: git-send-email 2.3.5 In-Reply-To: <1429706890-29047-1-git-send-email-Jason@zx2c4.com> References: <20150422123800.GA27882@kroah.com> <1429706890-29047-1-git-send-email-Jason@zx2c4.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Samsung has just released a portable USB3 SSD, coming in a very small and nice form factor. Its USB ID is 04e8:8001, which unfortunately is already used by the pl2303 driver for the Samsung I330 phone cradle. Having pl2303 pick up this device ID results in conflicts with the usb-storage driver, which handles the newly released portable USB3 SSD. To work around this conflict, I've dug up a mailing list post [1] from a long time ago, in which a user posts the full USB descriptor information. The most specific value in this appears to be the interface class, which has value 255 (0xff). Since usb-storage requires an interface class of 0x8, I believe it's correct to disambiguate the two devices by matching on 0xff inside pl2303. [1] http://permalink.gmane.org/gmane.linux.usb.user/4264 Signed-off-by: Jason A. Donenfeld --- drivers/usb/serial/pl2303.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c index 829604d..8bb929a 100644 --- a/drivers/usb/serial/pl2303.c +++ b/drivers/usb/serial/pl2303.c @@ -61,7 +61,7 @@ static const struct usb_device_id id_table[] = { { USB_DEVICE(DCU10_VENDOR_ID, DCU10_PRODUCT_ID) }, { USB_DEVICE(SITECOM_VENDOR_ID, SITECOM_PRODUCT_ID) }, { USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_ID) }, - { USB_DEVICE(SAMSUNG_VENDOR_ID, SAMSUNG_PRODUCT_ID) }, + { USB_DEVICE_INTERFACE_CLASS(SAMSUNG_VENDOR_ID, SAMSUNG_PRODUCT_ID, 0xff) }, { USB_DEVICE(SIEMENS_VENDOR_ID, SIEMENS_PRODUCT_ID_SX1), .driver_info = PL2303_QUIRK_UART_STATE_IDX0 }, { USB_DEVICE(SIEMENS_VENDOR_ID, SIEMENS_PRODUCT_ID_X65), -- 2.3.5