.. | .. |
---|
61 | 61 | #define VENDOR_NEC 2 |
---|
62 | 62 | #define VENDOR_TOSHIBA 3 |
---|
63 | 63 | #define VENDOR_WRITER 4 /* pre-scsi3 writers */ |
---|
| 64 | +#define VENDOR_CYGNAL_85ED 5 /* CD-on-a-chip */ |
---|
64 | 65 | |
---|
65 | 66 | #define VENDOR_TIMEOUT 30*HZ |
---|
66 | 67 | |
---|
.. | .. |
---|
96 | 97 | } else if (!strncmp(vendor, "TOSHIBA", 7)) { |
---|
97 | 98 | cd->vendor = VENDOR_TOSHIBA; |
---|
98 | 99 | |
---|
| 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 | + ); |
---|
99 | 117 | } |
---|
100 | 118 | } |
---|
101 | 119 | |
---|