ChangeSet 1.1245, 2003/06/18 16:54:36-07:00, vojtech@suse.cz [PATCH] USB: Make Olympus cameras work with usb-storage According to Jan Derfinak, Olympus USB cameras mistakenly report an 'USBU' signature instead of 'USBS', while using the normal USB Storage protocol. drivers/usb/storage/transport.c | 2 +- drivers/usb/storage/transport.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff -Nru a/drivers/usb/storage/transport.c b/drivers/usb/storage/transport.c --- a/drivers/usb/storage/transport.c Wed Jun 18 17:35:16 2003 +++ b/drivers/usb/storage/transport.c Wed Jun 18 17:35:16 2003 @@ -1250,7 +1250,7 @@ US_DEBUGP("Bulk status Sig 0x%x T 0x%x R %d Stat 0x%x\n", le32_to_cpu(bcs->Signature), bcs->Tag, bcs->Residue, bcs->Status); - if (bcs->Signature != cpu_to_le32(US_BULK_CS_SIGN) || + if ((bcs->Signature != cpu_to_le32(US_BULK_CS_SIGN) && bcs->Signature != cpu_to_le32(US_BULK_CS_OLYMPUS_SIGN)) || bcs->Tag != bcb->Tag || bcs->Status > US_BULK_STAT_PHASE || partial != 13) { US_DEBUGP("Bulk logical error\n"); diff -Nru a/drivers/usb/storage/transport.h b/drivers/usb/storage/transport.h --- a/drivers/usb/storage/transport.h Wed Jun 18 17:35:16 2003 +++ b/drivers/usb/storage/transport.h Wed Jun 18 17:35:16 2003 @@ -106,6 +106,8 @@ #define US_BULK_CS_WRAP_LEN 13 #define US_BULK_CS_SIGN 0x53425355 /* spells out 'USBS' */ +/* This is for Olympus Camedia digital cameras */ +#define US_BULK_CS_OLYMPUS_SIGN 0x55425355 /* spells out 'USBU' */ #define US_BULK_STAT_OK 0 #define US_BULK_STAT_FAIL 1 #define US_BULK_STAT_PHASE 2