* [PATCH] usb-storage: Add support for Rio Karma @ 2005-11-23 4:07 Bob Copeland 2005-11-23 6:54 ` Matthew Dharm 2005-11-23 15:35 ` [usb-storage] " Alan Stern 0 siblings, 2 replies; 8+ messages in thread From: Bob Copeland @ 2005-11-23 4:07 UTC (permalink / raw) To: linux-kernel, usb-storage, mdharm-usb Add support for the Rio Karma portable digital audio player to usb-storage. Signed-off-by: Bob Copeland <me@bobcopeland.com> --- This is the first in a pair of patches to add the Rio Karma as a mass storage device. This patch exposes the player as a block device when connected to USB, and the next patch, "Read Rio Karma boot sector," also properly exposes the partitions. This is useful as-is to users for purposes of back-up/restore or blanking the disk on the unit, e.g. with dd. A filesystem driver for the Optimized MPEG File System, used by both Rio Karma and ReplayTV, is in an embryonic stage at http://bobcopeland.com/karma/. drivers/usb/storage/rio_karma.c | 104 +++++++++++++++++++++++++++++++++++++++ drivers/usb/storage/rio_karma.h | 9 +++ 2 files changed, 113 insertions(+), 0 deletions(-) create mode 100644 drivers/usb/storage/rio_karma.c create mode 100644 drivers/usb/storage/rio_karma.h applies-to: 3c36672829527bef6951ca2f1eae7da4285fee31 ece6a8eb17d1b6464349ab2b025fdb8bc76e00da diff --git a/drivers/usb/storage/rio_karma.c b/drivers/usb/storage/rio_karma.c new file mode 100644 index 0000000..ea1be9a --- /dev/null +++ b/drivers/usb/storage/rio_karma.c @@ -0,0 +1,104 @@ +/* USB driver for DNNA Rio Karma + * + * (C) 2005 Bob Copeland (me@bobcopeland.com) + * + * The Karma is a mass storage device, although it requires some + * initialization code to get in that mode. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#include <linux/delay.h> +#include <linux/string.h> +#include <linux/jiffies.h> +#include "rio_karma.h" +#include "usb.h" +#include "transport.h" +#include "debug.h" + +#define RIO_MSC 0x08 +#define RIOP_INIT "RIOP\x00\x01\x08\x00" +#define CMD_LEN 40 +#define RECV_LEN 0x200 + +/* Initialize the Karma and get it into mass storage mode. + * + * The initialization begins by sending 40 bytes starting + * RIOP\x00\x01\x08\x00, which the device will ack with a 512-byte + * packet with the high four bits set and everything else null. + * + * Next, we send RIOP\x80\x00\x08\x00. Each time, a 512 byte response + * must be read, but we must loop until byte 5 in the response is 0x08, + * indicating success. + */ +int rio_karma_init(struct us_data *us) +{ + int result, partial; + char *recv; + static char init_cmd[] = RIOP_INIT; + unsigned long timeout; + + // us->iobuf is big enough to hold cmd but not receive + if (!(recv = kmalloc(RECV_LEN, GFP_KERNEL | __GFP_DMA))) + goto die_nomem; + + US_DEBUGP("Initializing Karma...\n"); + + memcpy(us->iobuf, init_cmd, sizeof(init_cmd)); + memset(&us->iobuf[sizeof(init_cmd)], 0, CMD_LEN - sizeof(init_cmd)); + + result = usb_stor_bulk_transfer_buf(us, us->send_bulk_pipe, + us->iobuf, CMD_LEN, &partial); + if (result != USB_STOR_XFER_GOOD) + goto die; + + result = usb_stor_bulk_transfer_buf(us, us->recv_bulk_pipe, + recv, RECV_LEN, &partial); + if (result != USB_STOR_XFER_GOOD) + goto die; + + us->iobuf[4] = 0x80; + us->iobuf[5] = 0; + timeout = jiffies + msecs_to_jiffies(3000); + for (;;) { + US_DEBUGP("Sending init command\n"); + result = usb_stor_bulk_transfer_buf(us, us->send_bulk_pipe, + us->iobuf, CMD_LEN, &partial); + if (result != USB_STOR_XFER_GOOD) + goto die; + + result = usb_stor_bulk_transfer_buf(us, us->recv_bulk_pipe, + recv, RECV_LEN, &partial); + if (result != USB_STOR_XFER_GOOD) + goto die; + + if (recv[5] == RIO_MSC) + break; + if (time_after(jiffies, timeout)) + goto die; + msleep(10); + } + US_DEBUGP("Karma initialized.\n"); + kfree(recv); + return 0; + +die: + kfree(recv); +die_nomem: + US_DEBUGP("Could not initialize karma.\n"); + return USB_STOR_TRANSPORT_FAILED; +} + diff --git a/drivers/usb/storage/rio_karma.h b/drivers/usb/storage/rio_karma.h new file mode 100644 index 0000000..99b44fd --- /dev/null +++ b/drivers/usb/storage/rio_karma.h @@ -0,0 +1,9 @@ +#ifndef _RIO_KARMA_H +#define _RIO_KARMA_H + +#include <linux/config.h> +#include "usb.h" + +int rio_karma_init(struct us_data *); + +#endif --- 0.99.9i -- Bob Copeland %% www.bobcopeland.com ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH] usb-storage: Add support for Rio Karma 2005-11-23 4:07 [PATCH] usb-storage: Add support for Rio Karma Bob Copeland @ 2005-11-23 6:54 ` Matthew Dharm 2005-11-23 11:33 ` Bob Copeland 2005-11-23 15:35 ` [usb-storage] " Alan Stern 1 sibling, 1 reply; 8+ messages in thread From: Matthew Dharm @ 2005-11-23 6:54 UTC (permalink / raw) To: Bob Copeland; +Cc: linux-kernel, usb-storage [-- Attachment #1: Type: text/plain, Size: 5788 bytes --] I'm guessing you're missing some significant portions of patch here... this code isn't compiled/linked, you don't add to the unusual_devs table, all you have here is an initializer function, etc etc. The material on your web page supports this conclusion. Matt On Tue, Nov 22, 2005 at 11:07:52PM -0500, Bob Copeland wrote: > Add support for the Rio Karma portable digital audio player to usb-storage. > > Signed-off-by: Bob Copeland <me@bobcopeland.com> > > --- > > This is the first in a pair of patches to add the Rio Karma as a mass > storage device. This patch exposes the player as a block device when > connected to USB, and the next patch, "Read Rio Karma boot sector," also > properly exposes the partitions. This is useful as-is to users for purposes > of back-up/restore or blanking the disk on the unit, e.g. with dd. > > A filesystem driver for the Optimized MPEG File System, used by both Rio Karma > and ReplayTV, is in an embryonic stage at http://bobcopeland.com/karma/. > > drivers/usb/storage/rio_karma.c | 104 +++++++++++++++++++++++++++++++++++++++ > drivers/usb/storage/rio_karma.h | 9 +++ > 2 files changed, 113 insertions(+), 0 deletions(-) > create mode 100644 drivers/usb/storage/rio_karma.c > create mode 100644 drivers/usb/storage/rio_karma.h > > applies-to: 3c36672829527bef6951ca2f1eae7da4285fee31 > ece6a8eb17d1b6464349ab2b025fdb8bc76e00da > diff --git a/drivers/usb/storage/rio_karma.c b/drivers/usb/storage/rio_karma.c > new file mode 100644 > index 0000000..ea1be9a > --- /dev/null > +++ b/drivers/usb/storage/rio_karma.c > @@ -0,0 +1,104 @@ > +/* USB driver for DNNA Rio Karma > + * > + * (C) 2005 Bob Copeland (me@bobcopeland.com) > + * > + * The Karma is a mass storage device, although it requires some > + * initialization code to get in that mode. > + * > + * This program is free software; you can redistribute it and/or modify it > + * under the terms of the GNU General Public License as published by the > + * Free Software Foundation; either version 2, or (at your option) any > + * later version. > + * > + * This program is distributed in the hope that it will be useful, but > + * WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > + * General Public License for more details. > + * > + * You should have received a copy of the GNU General Public License along > + * with this program; if not, write to the Free Software Foundation, Inc., > + * 675 Mass Ave, Cambridge, MA 02139, USA. > + * > + */ > + > +#include <linux/delay.h> > +#include <linux/string.h> > +#include <linux/jiffies.h> > +#include "rio_karma.h" > +#include "usb.h" > +#include "transport.h" > +#include "debug.h" > + > +#define RIO_MSC 0x08 > +#define RIOP_INIT "RIOP\x00\x01\x08\x00" > +#define CMD_LEN 40 > +#define RECV_LEN 0x200 > + > +/* Initialize the Karma and get it into mass storage mode. > + * > + * The initialization begins by sending 40 bytes starting > + * RIOP\x00\x01\x08\x00, which the device will ack with a 512-byte > + * packet with the high four bits set and everything else null. > + * > + * Next, we send RIOP\x80\x00\x08\x00. Each time, a 512 byte response > + * must be read, but we must loop until byte 5 in the response is 0x08, > + * indicating success. > + */ > +int rio_karma_init(struct us_data *us) > +{ > + int result, partial; > + char *recv; > + static char init_cmd[] = RIOP_INIT; > + unsigned long timeout; > + > + // us->iobuf is big enough to hold cmd but not receive > + if (!(recv = kmalloc(RECV_LEN, GFP_KERNEL | __GFP_DMA))) > + goto die_nomem; > + > + US_DEBUGP("Initializing Karma...\n"); > + > + memcpy(us->iobuf, init_cmd, sizeof(init_cmd)); > + memset(&us->iobuf[sizeof(init_cmd)], 0, CMD_LEN - sizeof(init_cmd)); > + > + result = usb_stor_bulk_transfer_buf(us, us->send_bulk_pipe, > + us->iobuf, CMD_LEN, &partial); > + if (result != USB_STOR_XFER_GOOD) > + goto die; > + > + result = usb_stor_bulk_transfer_buf(us, us->recv_bulk_pipe, > + recv, RECV_LEN, &partial); > + if (result != USB_STOR_XFER_GOOD) > + goto die; > + > + us->iobuf[4] = 0x80; > + us->iobuf[5] = 0; > + timeout = jiffies + msecs_to_jiffies(3000); > + for (;;) { > + US_DEBUGP("Sending init command\n"); > + result = usb_stor_bulk_transfer_buf(us, us->send_bulk_pipe, > + us->iobuf, CMD_LEN, &partial); > + if (result != USB_STOR_XFER_GOOD) > + goto die; > + > + result = usb_stor_bulk_transfer_buf(us, us->recv_bulk_pipe, > + recv, RECV_LEN, &partial); > + if (result != USB_STOR_XFER_GOOD) > + goto die; > + > + if (recv[5] == RIO_MSC) > + break; > + if (time_after(jiffies, timeout)) > + goto die; > + msleep(10); > + } > + US_DEBUGP("Karma initialized.\n"); > + kfree(recv); > + return 0; > + > +die: > + kfree(recv); > +die_nomem: > + US_DEBUGP("Could not initialize karma.\n"); > + return USB_STOR_TRANSPORT_FAILED; > +} > + > diff --git a/drivers/usb/storage/rio_karma.h b/drivers/usb/storage/rio_karma.h > new file mode 100644 > index 0000000..99b44fd > --- /dev/null > +++ b/drivers/usb/storage/rio_karma.h > @@ -0,0 +1,9 @@ > +#ifndef _RIO_KARMA_H > +#define _RIO_KARMA_H > + > +#include <linux/config.h> > +#include "usb.h" > + > +int rio_karma_init(struct us_data *); > + > +#endif > --- > 0.99.9i > -- > Bob Copeland %% www.bobcopeland.com -- Matthew Dharm Home: mdharm-usb@one-eyed-alien.net Maintainer, Linux USB Mass Storage Driver G: Money isn't everything, A.J. AJ: Who convinced you of that? G: The Chief, at my last salary review. -- Mike and Greg User Friendly, 11/3/1998 [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] usb-storage: Add support for Rio Karma 2005-11-23 6:54 ` Matthew Dharm @ 2005-11-23 11:33 ` Bob Copeland 2005-11-23 18:18 ` [usb-storage] " Alan Stern 0 siblings, 1 reply; 8+ messages in thread From: Bob Copeland @ 2005-11-23 11:33 UTC (permalink / raw) To: linux-kernel, usb-storage On Tue, Nov 22, 2005 at 10:54:27PM -0800, Matthew Dharm wrote: > I'm guessing you're missing some significant portions of patch here... this > code isn't compiled/linked, you don't add to the unusual_devs table, all > you have here is an initializer function, etc etc. > > The material on your web page supports this conclusion. Oh, sorry, I fumbled the git commands to generate that one. Here's the full patch: Subject: [PATCH] usb-storage: Add support for Rio Karma Add support for the Rio Karma portable digital audio player to usb-storage. Signed-off-by: Bob Copeland <me@bobcopeland.com> --- Kconfig | 7 +++ Makefile | 1 rio_karma.c | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ rio_karma.h | 9 ++++ unusual_devs.h | 7 +++ usb.c | 3 + 6 files changed, 131 insertions(+) diff --git a/drivers/usb/storage/Kconfig b/drivers/usb/storage/Kconfig index c41d64d..1a7bd5d 100644 --- a/drivers/usb/storage/Kconfig +++ b/drivers/usb/storage/Kconfig @@ -124,3 +124,10 @@ config USB_STORAGE_ONETOUCH hard drive's as an input device. An action can be associated with this input in any keybinding software. (e.g. gnome's keyboard short- cuts) + +config USB_STORAGE_KARMA + bool "Rio Karma MP3 player (EXPERIMENTAL)" + depends on USB_STORAGE && EXPERIMENTAL + help + Say Y here to include additional code to support the Rio Karma + digital music player as a mass storage device. diff --git a/drivers/usb/storage/Makefile b/drivers/usb/storage/Makefile index 44ab8f9..5f90c2b 100644 --- a/drivers/usb/storage/Makefile +++ b/drivers/usb/storage/Makefile @@ -19,6 +19,7 @@ usb-storage-obj-$(CONFIG_USB_STORAGE_ISD usb-storage-obj-$(CONFIG_USB_STORAGE_DATAFAB) += datafab.o usb-storage-obj-$(CONFIG_USB_STORAGE_JUMPSHOT) += jumpshot.o usb-storage-obj-$(CONFIG_USB_STORAGE_ONETOUCH) += onetouch.o +usb-storage-obj-$(CONFIG_USB_STORAGE_KARMA) += rio_karma.o usb-storage-objs := scsiglue.o protocol.o transport.o usb.o \ initializers.o $(usb-storage-obj-y) diff --git a/drivers/usb/storage/rio_karma.c b/drivers/usb/storage/rio_karma.c new file mode 100644 index 0000000..ea1be9a --- /dev/null +++ b/drivers/usb/storage/rio_karma.c @@ -0,0 +1,104 @@ +/* USB driver for DNNA Rio Karma + * + * (C) 2005 Bob Copeland (me@bobcopeland.com) + * + * The Karma is a mass storage device, although it requires some + * initialization code to get in that mode. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#include <linux/delay.h> +#include <linux/string.h> +#include <linux/jiffies.h> +#include "rio_karma.h" +#include "usb.h" +#include "transport.h" +#include "debug.h" + +#define RIO_MSC 0x08 +#define RIOP_INIT "RIOP\x00\x01\x08\x00" +#define CMD_LEN 40 +#define RECV_LEN 0x200 + +/* Initialize the Karma and get it into mass storage mode. + * + * The initialization begins by sending 40 bytes starting + * RIOP\x00\x01\x08\x00, which the device will ack with a 512-byte + * packet with the high four bits set and everything else null. + * + * Next, we send RIOP\x80\x00\x08\x00. Each time, a 512 byte response + * must be read, but we must loop until byte 5 in the response is 0x08, + * indicating success. + */ +int rio_karma_init(struct us_data *us) +{ + int result, partial; + char *recv; + static char init_cmd[] = RIOP_INIT; + unsigned long timeout; + + // us->iobuf is big enough to hold cmd but not receive + if (!(recv = kmalloc(RECV_LEN, GFP_KERNEL | __GFP_DMA))) + goto die_nomem; + + US_DEBUGP("Initializing Karma...\n"); + + memcpy(us->iobuf, init_cmd, sizeof(init_cmd)); + memset(&us->iobuf[sizeof(init_cmd)], 0, CMD_LEN - sizeof(init_cmd)); + + result = usb_stor_bulk_transfer_buf(us, us->send_bulk_pipe, + us->iobuf, CMD_LEN, &partial); + if (result != USB_STOR_XFER_GOOD) + goto die; + + result = usb_stor_bulk_transfer_buf(us, us->recv_bulk_pipe, + recv, RECV_LEN, &partial); + if (result != USB_STOR_XFER_GOOD) + goto die; + + us->iobuf[4] = 0x80; + us->iobuf[5] = 0; + timeout = jiffies + msecs_to_jiffies(3000); + for (;;) { + US_DEBUGP("Sending init command\n"); + result = usb_stor_bulk_transfer_buf(us, us->send_bulk_pipe, + us->iobuf, CMD_LEN, &partial); + if (result != USB_STOR_XFER_GOOD) + goto die; + + result = usb_stor_bulk_transfer_buf(us, us->recv_bulk_pipe, + recv, RECV_LEN, &partial); + if (result != USB_STOR_XFER_GOOD) + goto die; + + if (recv[5] == RIO_MSC) + break; + if (time_after(jiffies, timeout)) + goto die; + msleep(10); + } + US_DEBUGP("Karma initialized.\n"); + kfree(recv); + return 0; + +die: + kfree(recv); +die_nomem: + US_DEBUGP("Could not initialize karma.\n"); + return USB_STOR_TRANSPORT_FAILED; +} + diff --git a/drivers/usb/storage/rio_karma.h b/drivers/usb/storage/rio_karma.h new file mode 100644 index 0000000..99b44fd --- /dev/null +++ b/drivers/usb/storage/rio_karma.h @@ -0,0 +1,9 @@ +#ifndef _RIO_KARMA_H +#define _RIO_KARMA_H + +#include <linux/config.h> +#include "usb.h" + +int rio_karma_init(struct us_data *); + +#endif diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h index 0a9858f..a223519 100644 --- a/drivers/usb/storage/unusual_devs.h +++ b/drivers/usb/storage/unusual_devs.h @@ -145,6 +145,13 @@ UNUSUAL_DEV( 0x0451, 0x5416, 0x0100, 0x US_SC_DEVICE, US_PR_BULK, NULL, US_FL_NEED_OVERRIDE ), +#ifdef CONFIG_USB_STORAGE_KARMA +UNUSUAL_DEV( 0x045a, 0x5210, 0x0101, 0x0101, + "Rio", + "Rio Karma", + US_SC_SCSI, US_PR_BULK, rio_karma_init, US_FL_FIX_INQUIRY), +#endif + /* Patch submitted by Philipp Friedrich <philipp@void.at> */ UNUSUAL_DEV( 0x0482, 0x0100, 0x0100, 0x0100, "Kyocera", diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c index 3847ebe..caeaa5e 100644 --- a/drivers/usb/storage/usb.c +++ b/drivers/usb/storage/usb.c @@ -94,6 +94,9 @@ #ifdef CONFIG_USB_STORAGE_ONETOUCH #include "onetouch.h" #endif +#ifdef CONFIG_USB_STORAGE_KARMA +#include "rio_karma.h" +#endif /* Some informational data */ MODULE_AUTHOR("Matthew Dharm <mdharm-usb@one-eyed-alien.net>"); ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [usb-storage] Re: [PATCH] usb-storage: Add support for Rio Karma 2005-11-23 11:33 ` Bob Copeland @ 2005-11-23 18:18 ` Alan Stern 2005-11-23 18:39 ` Andries Brouwer 0 siblings, 1 reply; 8+ messages in thread From: Alan Stern @ 2005-11-23 18:18 UTC (permalink / raw) To: Bob Copeland; +Cc: linux-kernel, usb-storage On Wed, 23 Nov 2005, Bob Copeland wrote: > --- a/drivers/usb/storage/unusual_devs.h > +++ b/drivers/usb/storage/unusual_devs.h > @@ -145,6 +145,13 @@ UNUSUAL_DEV( 0x0451, 0x5416, 0x0100, 0x > US_SC_DEVICE, US_PR_BULK, NULL, > US_FL_NEED_OVERRIDE ), > > +#ifdef CONFIG_USB_STORAGE_KARMA > +UNUSUAL_DEV( 0x045a, 0x5210, 0x0101, 0x0101, > + "Rio", > + "Rio Karma", > + US_SC_SCSI, US_PR_BULK, rio_karma_init, US_FL_FIX_INQUIRY), Are you sure you need US_SC_SCSI and US_PR_BULK? Wouldn't US_SC_DEVICE and US_PR_DEVICE be sufficient? And do you really need US_FL_FIX_INQUIRY? Hardly any devices do (maybe none). Alan Stern ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [usb-storage] Re: [PATCH] usb-storage: Add support for Rio Karma 2005-11-23 18:18 ` [usb-storage] " Alan Stern @ 2005-11-23 18:39 ` Andries Brouwer 2005-11-24 4:08 ` Phil Dibowitz 0 siblings, 1 reply; 8+ messages in thread From: Andries Brouwer @ 2005-11-23 18:39 UTC (permalink / raw) To: Alan Stern; +Cc: Bob Copeland, usb-storage, linux-kernel On Wed, Nov 23, 2005 at 01:18:30PM -0500, Alan Stern wrote: > And do you really need US_FL_FIX_INQUIRY? Hardly any devices do (maybe > none). This one does: /* aeb */ UNUSUAL_DEV( 0x090c, 0x1132, 0x0000, 0xffff, "Feiya", "5-in-1 Card Reader", US_SC_DEVICE, US_PR_DEVICE, NULL, US_FL_FIX_CAPACITY ), Andries ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [usb-storage] Re: [PATCH] usb-storage: Add support for Rio Karma 2005-11-23 18:39 ` Andries Brouwer @ 2005-11-24 4:08 ` Phil Dibowitz 2005-11-24 11:23 ` Andries Brouwer 0 siblings, 1 reply; 8+ messages in thread From: Phil Dibowitz @ 2005-11-24 4:08 UTC (permalink / raw) To: Andries Brouwer; +Cc: Alan Stern, usb-storage, Bob Copeland, linux-kernel [-- Attachment #1: Type: text/plain, Size: 1006 bytes --] Andries Brouwer wrote: > On Wed, Nov 23, 2005 at 01:18:30PM -0500, Alan Stern wrote: > > >>And do you really need US_FL_FIX_INQUIRY? Hardly any devices do (maybe >>none). > > > This one does: > > /* aeb */ > UNUSUAL_DEV( 0x090c, 0x1132, 0x0000, 0xffff, > "Feiya", > "5-in-1 Card Reader", > US_SC_DEVICE, US_PR_DEVICE, NULL, > US_FL_FIX_CAPACITY ), Can you be more specific? Matthew added some code (specifically a delay) which should have taken care of most if not all of these a few kernel versions ago (.12-ish?)... Are you saying this device still doesn't work for you using the above entry in a recent kernel? -- Phil Dibowitz phil@ipom.com Freeware and Technical Pages Insanity Palace of Metallica http://www.phildev.net/ http://www.ipom.com/ "Be who you are and say what you feel, because those who mind don't matter and those who matter don't mind." - Dr. Suess [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 256 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [usb-storage] Re: [PATCH] usb-storage: Add support for Rio Karma 2005-11-24 4:08 ` Phil Dibowitz @ 2005-11-24 11:23 ` Andries Brouwer 0 siblings, 0 replies; 8+ messages in thread From: Andries Brouwer @ 2005-11-24 11:23 UTC (permalink / raw) To: Phil Dibowitz Cc: Andries Brouwer, Alan Stern, usb-storage, Bob Copeland, linux-kernel On Wed, Nov 23, 2005 at 08:08:32PM -0800, Phil Dibowitz wrote: > > UNUSUAL_DEV( 0x090c, 0x1132, 0x0000, 0xffff, > > "Feiya", > > "5-in-1 Card Reader", > > US_SC_DEVICE, US_PR_DEVICE, NULL, > > US_FL_FIX_CAPACITY ), > > Can you be more specific? Matthew added some code (specifically a delay) > which should have taken care of most if not all of these a few kernel > versions ago (.12-ish?)... I don't understand how adding a delay can influence the fact that it returns the wrong capacity. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [usb-storage] [PATCH] usb-storage: Add support for Rio Karma 2005-11-23 4:07 [PATCH] usb-storage: Add support for Rio Karma Bob Copeland 2005-11-23 6:54 ` Matthew Dharm @ 2005-11-23 15:35 ` Alan Stern 1 sibling, 0 replies; 8+ messages in thread From: Alan Stern @ 2005-11-23 15:35 UTC (permalink / raw) To: Bob Copeland; +Cc: linux-kernel, usb-storage, mdharm-usb On Tue, 22 Nov 2005, Bob Copeland wrote: > Add support for the Rio Karma portable digital audio player to usb-storage. > + if (!(recv = kmalloc(RECV_LEN, GFP_KERNEL | __GFP_DMA))) You don't want to use __GFP_DMA here. Alan Stern ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2005-11-24 11:23 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2005-11-23 4:07 [PATCH] usb-storage: Add support for Rio Karma Bob Copeland 2005-11-23 6:54 ` Matthew Dharm 2005-11-23 11:33 ` Bob Copeland 2005-11-23 18:18 ` [usb-storage] " Alan Stern 2005-11-23 18:39 ` Andries Brouwer 2005-11-24 4:08 ` Phil Dibowitz 2005-11-24 11:23 ` Andries Brouwer 2005-11-23 15:35 ` [usb-storage] " Alan Stern
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox