git: d45fa9f42406 - stable/13 - Add devices and quirks for some Olympus cameras.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 13 Apr 2022 23:43:46 UTC
The branch stable/13 has been updated by grog: URL: https://cgit.FreeBSD.org/src/commit/?id=d45fa9f42406121e34ea265969663d812fa57e13 commit d45fa9f42406121e34ea265969663d812fa57e13 Author: Greg Lehey <grog@FreeBSD.org> AuthorDate: 2022-03-23 01:40:28 +0000 Commit: Greg Lehey <grog@FreeBSD.org> CommitDate: 2022-04-13 23:40:37 +0000 Add devices and quirks for some Olympus cameras. Reviewed by: hps@ Fixes: Problems attaching Olympus cameras. (cherry picked from commit 31e076d70b5fc06e9cd9ecfe19296d4fe6a8a5a5) --- sys/dev/usb/quirk/usb_quirk.c | 35 ++++++++++++++++++++++++++++++++++- sys/dev/usb/usbdevs | 14 ++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/sys/dev/usb/quirk/usb_quirk.c b/sys/dev/usb/quirk/usb_quirk.c index cab6f1b7c074..d86ca5643515 100644 --- a/sys/dev/usb/quirk/usb_quirk.c +++ b/sys/dev/usb/quirk/usb_quirk.c @@ -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); diff --git a/sys/dev/usb/usbdevs b/sys/dev/usb/usbdevs index 84ff3598750a..b07be3edd241 100644 --- a/sys/dev/usb/usbdevs +++ b/sys/dev/usb/usbdevs @@ -3533,6 +3533,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