Hello, I have seen an intermittent problem in the driver: drivers/ata/pata_mpc52xx.c
The intermittent error is that the bestcomm dma engine gets stuck. I don't believe the driver itself is causing the dma error. However, I do want to enhance the driver so that it can recover from the dma error and continue operation. I haven't been able to find much information on the ata driver layer other than the code. I've looked through and run some test code. The ata layer will call either the driver's softreset() or hardreset() operation if an error is detected. I'm thinking about adding one or both of these reset routines, but I'm not sure if this is the right approach since the error isn't with the ata device itself. An alternative could be to recover dma from mpc52xx_bmdma_status() - when the error is detected and reported. How is error recovery supposed to work in the ata layer, and what is the best approach for recovering from a dma error (as opposed to a drive error)? What is supposed to be the difference between the softreset() and hardreset() routines? If recovering from the dma error, would one of these routines be better to use? Thanks for your help, - John _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev