ChangeSet 1.1196.1.1, 2003/05/20 21:39:21-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. The attached patches (again by Jan) fix this problem in 2.4 and 2.5. 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 Fri May 23 14:27:01 2003 +++ b/drivers/usb/storage/transport.c Fri May 23 14:27:01 2003 @@ -988,7 +988,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) { 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 Fri May 23 14:27:01 2003 +++ b/drivers/usb/storage/transport.h Fri May 23 14:27:01 2003 @@ -105,6 +105,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