Oh... I forgot to mention something. I traced DMA command execution and the following is what happens. 1. host setups DMA engine (programs BMDMA controller) 2. host issues PACKET 3. device sets BSY 4. host transfers CDB when BSY clears and DRQ sets (Status turns to 0xd0) 5. host activates BMDMA engine 6. device reports 0xd0 for all TF regs for short moment and then it clears BSY and sets DRQ and other regs. 7. nothing happens for quite long time (>10s) 8. after a while, device seems to give up and clears DRQ and sets DRDY. 9. BMDMA status is 0x21 and doesn't change. 10. after a while, timeout occurrs. I cleared the buffer before issuing commnad and checked whether DMA engine delievered anything from EH. It transfered nothing. It looks like for some reason the BMDMA engine is losing its chance to start. Thanks. -- tejun - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html