Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 11 Jan 2015 18:17:30 +0100
From:      Hans Petter Selasky <hps@selasky.org>
To:        Joshua Ruehlig <joshruehlig@gmail.com>
Cc:        freebsd-usb@freebsd.org
Subject:   Re: [Bug 185747] [cam] [patch] fix support for USB key "Kingston DT 101 G2"
Message-ID:  <54B2B02A.1030808@selasky.org>
In-Reply-To: <CAAhjGQvb_fghwxnVvbqas%2B-eo_%2BdCkjWTTZL8-ikM=bqBa4q=A@mail.gmail.com>
References:  <bug-185747-17@https.bugs.freebsd.org/bugzilla/>	<bug-185747-17-I2rbBeguqj@https.bugs.freebsd.org/bugzilla/>	<54B28BE3.9010501@selasky.org> <CAAhjGQvb_fghwxnVvbqas%2B-eo_%2BdCkjWTTZL8-ikM=bqBa4q=A@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------050306040005090502090003
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

On 01/11/15 17:59, Joshua Ruehlig wrote:
> Tell meif you need anything else, thanks
> - Josh

Hi,

Can you try the attached patch?

--HPS


--------------050306040005090502090003
Content-Type: text/x-patch;
 name="kingston_fix.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="kingston_fix.diff"

Index: sys/dev/usb/usb_freebsd.h
===================================================================
--- sys/dev/usb/usb_freebsd.h	(revision 276981)
+++ sys/dev/usb/usb_freebsd.h	(working copy)
@@ -88,7 +88,7 @@
 #define	USB_EP0_BUFSIZE		1024	/* bytes */
 #define	USB_CS_RESET_LIMIT	20	/* failures = 20 * 50 ms = 1sec */
 
-#define	USB_MAX_AUTO_QUIRK	4	/* maximum number of dynamic quirks */
+#define	USB_MAX_AUTO_QUIRK	8	/* maximum number of dynamic quirks */
 
 typedef uint32_t usb_timeout_t;		/* milliseconds */
 typedef uint32_t usb_frlength_t;	/* bytes */
Index: sys/dev/usb/usb_freebsd_loader.h
===================================================================
--- sys/dev/usb/usb_freebsd_loader.h	(revision 276981)
+++ sys/dev/usb/usb_freebsd_loader.h	(working copy)
@@ -83,7 +83,7 @@
 #define	USB_EP0_BUFSIZE		1024	/* bytes */
 #define	USB_CS_RESET_LIMIT	20	/* failures = 20 * 50 ms = 1sec */
 
-#define	USB_MAX_AUTO_QUIRK	4	/* maximum number of dynamic quirks */
+#define	USB_MAX_AUTO_QUIRK	8	/* maximum number of dynamic quirks */
 
 typedef uint32_t usb_timeout_t;		/* milliseconds */
 typedef uint32_t usb_frlength_t;	/* bytes */
Index: sys/dev/usb/usb_msctest.c
===================================================================
--- sys/dev/usb/usb_msctest.c	(revision 276981)
+++ sys/dev/usb/usb_msctest.c	(working copy)
@@ -718,10 +718,11 @@
 		if (err != ERR_CSW_FAILED)
 			goto error;
 
-		DPRINTF("Device doesn't handle synchronize cache\n");
+		DPRINTF("Device doesn't handle synchronize cache "
+		    "and prevent allow medium removal\n");
 
 		usbd_add_dynamic_quirk(udev, UQ_MSC_NO_SYNC_CACHE);
-
+		usbd_add_dynamic_quirk(udev, UQ_MSC_NO_PREVENT_ALLOW);
 	} else {
 
 		/*
@@ -748,10 +749,13 @@
 					goto retry_sync_cache;
 
 				DPRINTF("Device most likely doesn't "
-				    "handle synchronize cache\n");
+				    "handle synchronize cache nor"
+				    "prevent allow medium removal\n");
 
 				usbd_add_dynamic_quirk(udev,
 				    UQ_MSC_NO_SYNC_CACHE);
+				usbd_add_dynamic_quirk(udev,
+				    UQ_MSC_NO_PREVENT_ALLOW);
 			} else {
 				if (err != ERR_CSW_FAILED)
 					goto error;
@@ -796,6 +800,7 @@
 
 	usbd_add_dynamic_quirk(udev, UQ_MSC_NO_SYNC_CACHE);
 	usbd_add_dynamic_quirk(udev, UQ_MSC_NO_TEST_UNIT_READY);
+	usbd_add_dynamic_quirk(udev, UQ_MSC_NO_PREVENT_ALLOW);
 
 	/* Need to re-enumerate the device */
 	usbd_req_re_enumerate(udev, NULL);

--------------050306040005090502090003--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54B2B02A.1030808>