Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 May 2017 09:22:53 +0000 (UTC)
From:      Wojciech Macek <wma@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r319117 - head/sys/cam/scsi
Message-ID:  <201705290922.v4T9MrkD005947@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: wma
Date: Mon May 29 09:22:53 2017
New Revision: 319117
URL: https://svnweb.freebsd.org/changeset/base/319117

Log:
  Introduce Genesys GL3224 quirks
  
  The Genesys chip is failing when issueing READ_CAP(16) command.
  Force a quirk to disable it and use READ_CAP(10) instead.
  
  Also, depending on used firmware, GL3224 can be recognized
  either as 'storage device' or 'mass storage class' -
  enable both variants in scsi_quirk_table.
  
  Submitted by:    Wojciech Macek <wma@semihalf.com>
                   Konrad Adamczyk <ka@semihalf.com>
  Obtained from:   Semihalf
  Sponsored by:    Stormshield
  Reviewed by:     mav
  Differential revision: https://reviews.freebsd.org/D10902

Modified:
  head/sys/cam/scsi/scsi_da.c
  head/sys/cam/scsi/scsi_xpt.c

Modified: head/sys/cam/scsi/scsi_da.c
==============================================================================
--- head/sys/cam/scsi/scsi_da.c	Mon May 29 09:21:38 2017	(r319116)
+++ head/sys/cam/scsi/scsi_da.c	Mon May 29 09:22:53 2017	(r319117)
@@ -684,6 +684,13 @@ static struct da_quirk_entry da_quirk_ta
 	},
 	{
 		/*
+		 * Genesys GL3224
+		 */
+		{T_DIRECT, SIP_MEDIA_REMOVABLE, "Generic*", "STORAGE DEVICE*",
+		"120?"}, /*quirks*/ DA_Q_NO_SYNC_CACHE | DA_Q_4K | DA_Q_NO_RC16
+	},
+	{
+		/*
 		 * Genesys 6-in-1 Card Reader
 		 * PR: usb/94647
 		 */

Modified: head/sys/cam/scsi/scsi_xpt.c
==============================================================================
--- head/sys/cam/scsi/scsi_xpt.c	Mon May 29 09:21:38 2017	(r319116)
+++ head/sys/cam/scsi/scsi_xpt.c	Mon May 29 09:22:53 2017	(r319117)
@@ -547,6 +547,14 @@ static struct scsi_quirk_entry scsi_quir
 		CAM_QUIRK_NORPTLUNS, /*mintags*/2, /*maxtags*/255
 	},
 	{
+		{ T_DIRECT, SIP_MEDIA_REMOVABLE, "Generic", "STORAGE DEVICE*", "120?" },
+		CAM_QUIRK_NORPTLUNS, /*mintags*/2, /*maxtags*/255
+	},
+	{
+		{ T_DIRECT, SIP_MEDIA_REMOVABLE, "Generic", "MassStorageClass", "1533" },
+		CAM_QUIRK_NORPTLUNS, /*mintags*/2, /*maxtags*/255
+	},
+	{
 		/* Default tagged queuing parameters for all devices */
 		{
 		  T_ANY, SIP_MEDIA_REMOVABLE|SIP_MEDIA_FIXED,



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