Hi Domen, On Tue, Jun 13, 2006 at 10:16:42AM +0200, Domen Puncer wrote: > First a note, that your patch [dbdma.patch] doesn't make any > difference for me. Well... at least not an obvious one. That's exactly what it should do, since it's a bug that I do not yet expect to happen. So no difference is good for now. Including the patch, so hopefully Ralf sees it again. :-) > OK. I have an IDE drive connected now. It's a bit weird, with > CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA I can't enable dma with > hdparm, but if works on about 6 MB/sec. > With CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA, I can enable DMA, > but it works slow, like 1.7 MB/sec. > > Seems odd to me. Hmmmm, strange. You should at least expect the other way around. Transferring you to the mailing list, hopefully somebody over there has got a clue. -- $ cat ~/.signature Freddy Spierenburg <freddy@xxxxxxxxxxxxxxx> http://freddy.snarl.nl/ GnuPG: 0x7941D1E1=C948 5851 26D2 FA5C 39F1 E588 6F17 FD5D 7941 D1E1 $ # Please read http://www.ietf.org/rfc/rfc2015.txt before complain!
--- linux-2.6.16-orig/include/asm-mips/mach-au1x00/au1xxx_dbdma.h 2006-03-20 11:35:39.000000000 +0000 +++ linux-2.6.16/include/asm-mips/mach-au1x00/au1xxx_dbdma.h 2006-03-31 14:31:56.000000000 +0000 @@ -200,7 +200,10 @@ #define DSCR_CMD0_ALWAYS 31 #define DSCR_NDEV_IDS 32 /* THis macro is used to find/create custom device types */ -#define DSCR_DEV2CUSTOM_ID(x,d) (((((x)&0xFFFF)<<8)|0x32000000)|((d)&0xFF)) +#define DSCR_ID_BASE 0x32000000 +#define DSCR_ID_OFFSET 0x1000 +#define DSCR_ID_FREE DSCR_ID_BASE +#define DSCR_DEV2CUSTOM_ID(x,d) (((((x)&0xFFFF)<<8)|DSCR_ID_BASE)|((d)&0xFF)) #define DSCR_CUSTOM2DEV_ID(x) ((x)&0xFF) --- linux-2.6.16-orig/arch/mips/au1000/common/dbdma.c 2006-03-20 11:35:39.000000000 +0000 +++ linux-2.6.16/arch/mips/au1000/common/dbdma.c 2006-03-31 14:31:58.000000000 +0000 @@ -162,22 +162,22 @@ { DSCR_CMD0_ALWAYS, DEV_FLAGS_ANYUSE, 0, 0, 0x00000000, 0, 0 }, /* Provide 16 user definable device types */ - { 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0 }, + { DSCR_ID_FREE, 0, 0, 0, 0, 0, 0 }, + { DSCR_ID_FREE, 0, 0, 0, 0, 0, 0 }, + { DSCR_ID_FREE, 0, 0, 0, 0, 0, 0 }, + { DSCR_ID_FREE, 0, 0, 0, 0, 0, 0 }, + { DSCR_ID_FREE, 0, 0, 0, 0, 0, 0 }, + { DSCR_ID_FREE, 0, 0, 0, 0, 0, 0 }, + { DSCR_ID_FREE, 0, 0, 0, 0, 0, 0 }, + { DSCR_ID_FREE, 0, 0, 0, 0, 0, 0 }, + { DSCR_ID_FREE, 0, 0, 0, 0, 0, 0 }, + { DSCR_ID_FREE, 0, 0, 0, 0, 0, 0 }, + { DSCR_ID_FREE, 0, 0, 0, 0, 0, 0 }, + { DSCR_ID_FREE, 0, 0, 0, 0, 0, 0 }, + { DSCR_ID_FREE, 0, 0, 0, 0, 0, 0 }, + { DSCR_ID_FREE, 0, 0, 0, 0, 0, 0 }, + { DSCR_ID_FREE, 0, 0, 0, 0, 0, 0 }, + { DSCR_ID_FREE, 0, 0, 0, 0, 0, 0 }, }; #define DBDEV_TAB_SIZE (sizeof(dbdev_tab) / sizeof(dbdev_tab_t)) @@ -208,9 +208,9 @@ { u32 ret = 0; dbdev_tab_t *p=NULL; - static u16 new_id=0x1000; + static u16 new_id=DSCR_ID_OFFSET; - p = find_dbdev_id(0); + p = find_dbdev_id(DSCR_ID_FREE); if ( NULL != p ) { memcpy(p, dev, sizeof(dbdev_tab_t));
Attachment:
signature.asc
Description: Digital signature