hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/scsi/sr_vendor.c
....@@ -61,6 +61,7 @@
6161 #define VENDOR_NEC 2
6262 #define VENDOR_TOSHIBA 3
6363 #define VENDOR_WRITER 4 /* pre-scsi3 writers */
64
+#define VENDOR_CYGNAL_85ED 5 /* CD-on-a-chip */
6465
6566 #define VENDOR_TIMEOUT 30*HZ
6667
....@@ -96,6 +97,23 @@
9697 } else if (!strncmp(vendor, "TOSHIBA", 7)) {
9798 cd->vendor = VENDOR_TOSHIBA;
9899
100
+ } else if (!strncmp(vendor, "Beurer", 6) &&
101
+ !strncmp(model, "Gluco Memory", 12)) {
102
+ /* The Beurer GL50 evo uses a Cygnal-manufactured CD-on-a-chip
103
+ that only accepts a subset of SCSI commands. Most of the
104
+ not-implemented commands are fine to fail, but a few,
105
+ particularly around the MMC or Audio commands, will put the
106
+ device into an unrecoverable state, so they need to be
107
+ avoided at all costs.
108
+ */
109
+ cd->vendor = VENDOR_CYGNAL_85ED;
110
+ cd->cdi.mask |= (
111
+ CDC_MULTI_SESSION |
112
+ CDC_CLOSE_TRAY | CDC_OPEN_TRAY |
113
+ CDC_LOCK |
114
+ CDC_GENERIC_PACKET |
115
+ CDC_PLAY_AUDIO
116
+ );
99117 }
100118 }
101119