Add devices and quirks for some Olympus cameras.

Reviewed by:	hps@
Fixes:	   	Problems attaching Olympus cameras.
MFC after:	2 weeks
This commit is contained in:
Greg Lehey 2022-03-23 12:40:28 +11:00
parent 4d1ba6febf
commit 31e076d70b
2 changed files with 48 additions and 1 deletions

View file

@ -353,6 +353,39 @@ static struct usb_quirk_entry usb_quirks[USB_DEV_QUIRKS_MAX] = {
USB_QUIRK(OLYMPUS, C1, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_WRONG_CSWSIG),
USB_QUIRK(OLYMPUS, C700, 0x0000, 0xffff, UQ_MSC_NO_GETMAXLUN),
/* Selected Olympus DSLR and EVIL models. See ../usbdevs for more
* details.
*
* Not all quirks apply to all models. The commented-out entries are
* correct for that model.
*/
USB_QUIRK(OLYMPUS, E_1, 0x0000, 0xffff, UQ_MSC_NO_GETMAXLUN,
UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_PREVENT_ALLOW,
UQ_MSC_NO_SYNC_CACHE),
/*
* Product code 0x118.
* USB_QUIRK(OLYMPUS, E_300, 0x0000, 0xffff, UQ_MSC_NO_GETMAXLUN,
* UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_PREVENT_ALLOW,
* UQ_MSC_NO_SYNC_CACHE),
* USB_QUIRK(OLYMPUS, E_30, 0x0000, 0xffff, UQ_MSC_NO_GETMAXLUN,
* UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_PREVENT_ALLOW,
* UQ_MSC_NO_SYNC_CACHE), */
USB_QUIRK(OLYMPUS, E_330, 0x0000, 0xffff, UQ_MSC_NO_GETMAXLUN,
UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_PREVENT_ALLOW,
UQ_MSC_NO_SYNC_CACHE, UQ_MSC_NO_START_STOP),
USB_QUIRK(OLYMPUS, E_PM1, 0x0000, 0xffff, UQ_MSC_NO_GETMAXLUN,
UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_PREVENT_ALLOW,
UQ_MSC_NO_SYNC_CACHE, UQ_MSC_NO_START_STOP),
/* Product code 0x12e.
* USB_QUIRK(OLYMPUS, E_PM2, 0x0000, 0xffff, 0),
* USB_QUIRK(OLYMPUS, E_M1MarkII, 0x0000, 0xffff, UQ_MSC_NO_GETMAXLUN,
* UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_PREVENT_ALLOW,
* UQ_MSC_NO_SYNC_CACHE),
* USB_QUIRK(OLYMPUS, E_M5MarkIII, 0x0000, 0xffff, 0),
*/
USB_QUIRK(OLYMPUS, E_M1, 0x0000, 0xffff, UQ_MSC_NO_GETMAXLUN,
UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_PREVENT_ALLOW,
UQ_MSC_NO_SYNC_CACHE, UQ_MSC_NO_START_STOP),
USB_QUIRK(ONSPEC, SDS_HOTFIND_D, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN, UQ_MSC_NO_SYNC_CACHE),
USB_QUIRK(ONSPEC, CFMS_RW, 0x0000, 0xffff, UQ_MSC_FORCE_PROTO_SCSI),
@ -1042,7 +1075,7 @@ usb_quirk_init(void *arg)
{
char envkey[sizeof(USB_QUIRK_ENVROOT) + 2]; /* 2 digits max, 0 to 99 */
int i;
/* initialize mutex */
mtx_init(&usb_quirk_mtx, "USB quirk", NULL, MTX_DEF);

View file

@ -3535,6 +3535,20 @@ product OLIMEX ARM_USB_OCD_H 0x002b FTDI compatible adapter
/* Olympus products */
product OLYMPUS C1 0x0102 C-1 Digital Camera
product OLYMPUS C700 0x0105 C-700 Ultra Zoom
/* Current Olympus DSLRs and EVIL cameras reuse the same product code and
* bcdDevice for multiple models. This may result in problems with newer
* cameras. */
/* Olympus DSLRs */
product OLYMPUS E_1 0x0102
product OLYMPUS E_300 0x0118
product OLYMPUS E_330 0x0118
product OLYMPUS E_30 0x0118
/* Olympus EVIL cameras */
product OLYMPUS E_PM1 0x012c
product OLYMPUS E_PM2 0x012e
product OLYMPUS E_M1 0x012e
product OLYMPUS E_M1MarkII 0x012e
product OLYMPUS E_M5MarkIII 0x012e
/* OmniVision Technologies, Inc. products */
product OMNIVISION OV511 0x0511 OV511 Camera