|
Michal Suchanek |
913b04 |
From 396bbe1427828be1025fb052b7e04b42f421352d Mon Sep 17 00:00:00 2001
|
|
Michal Suchanek |
913b04 |
From: =?UTF-8?q?Diego=20Elio=20Petten=C3=B2?= <flameeyes@flameeyes.com>
|
|
Michal Suchanek |
913b04 |
Date: Tue, 19 Nov 2019 21:37:09 +0000
|
|
Michal Suchanek |
913b04 |
Subject: [PATCH] sr_vendor: support Beurer GL50 evo CD-on-a-chip devices.
|
|
Michal Suchanek |
913b04 |
MIME-Version: 1.0
|
|
Michal Suchanek |
913b04 |
Content-Type: text/plain; charset=UTF-8
|
|
Michal Suchanek |
913b04 |
Content-Transfer-Encoding: 8bit
|
|
Michal Suchanek |
913b04 |
|
|
Michal Suchanek |
913b04 |
References: boo#1164632
|
|
Michal Suchanek |
913b04 |
Patch-mainline: v5.5-rc1
|
|
Michal Suchanek |
913b04 |
Git-commit: 396bbe1427828be1025fb052b7e04b42f421352d
|
|
Michal Suchanek |
913b04 |
|
|
Michal Suchanek |
913b04 |
The Beurer GL50 evo uses a Cygnal-manufactured CD-on-a-chip that only
|
|
Michal Suchanek |
913b04 |
accepts a subset of SCSI commands, and supports neither audio commands
|
|
Michal Suchanek |
913b04 |
nor generic packet commands.
|
|
Michal Suchanek |
913b04 |
|
|
Michal Suchanek |
913b04 |
Actually sending those commands bring the device to an unrecoverable
|
|
Michal Suchanek |
913b04 |
state that causes the device to hang and reset.
|
|
Michal Suchanek |
913b04 |
|
|
Michal Suchanek |
913b04 |
To: Jens Axboe <axboe@kernel.dk>
|
|
Michal Suchanek |
913b04 |
Cc: linux-kernel@vger.kernel.org
|
|
Michal Suchanek |
913b04 |
Cc: linux-scsi@vger.kernel.org
|
|
Michal Suchanek |
913b04 |
Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.com>
|
|
Michal Suchanek |
913b04 |
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
Michal Suchanek |
913b04 |
Acked-by: Michal Suchanek <msuchanek@suse.de>
|
|
Michal Suchanek |
913b04 |
---
|
|
Michal Suchanek |
913b04 |
drivers/scsi/sr_vendor.c | 18 ++++++++++++++++++
|
|
Michal Suchanek |
913b04 |
1 file changed, 18 insertions(+)
|
|
Michal Suchanek |
913b04 |
|
|
Michal Suchanek |
913b04 |
diff --git a/drivers/scsi/sr_vendor.c b/drivers/scsi/sr_vendor.c
|
|
Michal Suchanek |
913b04 |
index e3b0ce25162b..17a56c87d383 100644
|
|
Michal Suchanek |
913b04 |
--- a/drivers/scsi/sr_vendor.c
|
|
Michal Suchanek |
913b04 |
+++ b/drivers/scsi/sr_vendor.c
|
|
Michal Suchanek |
913b04 |
@@ -61,6 +61,7 @@
|
|
Michal Suchanek |
913b04 |
#define VENDOR_NEC 2
|
|
Michal Suchanek |
913b04 |
#define VENDOR_TOSHIBA 3
|
|
Michal Suchanek |
913b04 |
#define VENDOR_WRITER 4 /* pre-scsi3 writers */
|
|
Michal Suchanek |
913b04 |
+#define VENDOR_CYGNAL_85ED 5 /* CD-on-a-chip */
|
|
Michal Suchanek |
913b04 |
|
|
Michal Suchanek |
913b04 |
#define VENDOR_TIMEOUT 30*HZ
|
|
Michal Suchanek |
913b04 |
|
|
Michal Suchanek |
913b04 |
@@ -99,6 +100,23 @@ void sr_vendor_init(Scsi_CD *cd)
|
|
Michal Suchanek |
913b04 |
} else if (!strncmp(vendor, "TOSHIBA", 7)) {
|
|
Michal Suchanek |
913b04 |
cd->vendor = VENDOR_TOSHIBA;
|
|
Michal Suchanek |
913b04 |
|
|
Michal Suchanek |
913b04 |
+ } else if (!strncmp(vendor, "Beurer", 6) &&
|
|
Michal Suchanek |
913b04 |
+ !strncmp(model, "Gluco Memory", 12)) {
|
|
Michal Suchanek |
913b04 |
+ /* The Beurer GL50 evo uses a Cygnal-manufactured CD-on-a-chip
|
|
Michal Suchanek |
913b04 |
+ that only accepts a subset of SCSI commands. Most of the
|
|
Michal Suchanek |
913b04 |
+ not-implemented commands are fine to fail, but a few,
|
|
Michal Suchanek |
913b04 |
+ particularly around the MMC or Audio commands, will put the
|
|
Michal Suchanek |
913b04 |
+ device into an unrecoverable state, so they need to be
|
|
Michal Suchanek |
913b04 |
+ avoided at all costs.
|
|
Michal Suchanek |
913b04 |
+ */
|
|
Michal Suchanek |
913b04 |
+ cd->vendor = VENDOR_CYGNAL_85ED;
|
|
Michal Suchanek |
913b04 |
+ cd->cdi.mask |= (
|
|
Michal Suchanek |
913b04 |
+ CDC_MULTI_SESSION |
|
|
Michal Suchanek |
913b04 |
+ CDC_CLOSE_TRAY | CDC_OPEN_TRAY |
|
|
Michal Suchanek |
913b04 |
+ CDC_LOCK |
|
|
Michal Suchanek |
913b04 |
+ CDC_GENERIC_PACKET |
|
|
Michal Suchanek |
913b04 |
+ CDC_PLAY_AUDIO
|
|
Michal Suchanek |
913b04 |
+ );
|
|
Michal Suchanek |
913b04 |
}
|
|
Michal Suchanek |
913b04 |
#endif
|
|
Michal Suchanek |
913b04 |
}
|
|
Michal Suchanek |
913b04 |
--
|
|
Michal Suchanek |
913b04 |
2.23.0
|
|
Michal Suchanek |
913b04 |
|