From: Magnus D. <mag...@gm...> - 2007-11-08 08:30:13
|
On Nov 7, 2007 12:06 PM, Paul Mundt <le...@li...> wrote: > On Wed, Nov 07, 2007 at 11:38:42AM +0900, Magnus Damm wrote: > > On Nov 7, 2007 8:49 AM, Paul Mundt <le...@li...> wrote: > > > On Tue, Nov 06, 2007 at 08:43:16PM +0900, Magnus Damm wrote: > > > > I happen to have two of these R2D-1 boards and I can't get CF working > > > > using the latest kernel (latest sh-2.6 git, post 2.6.24-rc1) : > > > > > > > > ... > > > > irq 107: nobody cared (try booting with the "irqpoll" option) > > > > [stack dump] > > > > [call trace] > > > > handlers: > > > > [<8c24f660>] (ata_interrupt+0x0/0x240) > > > > Disabling IRQ #107 > > > > ... > > > > > > > Did R2D-1 CF work for you with IRQs prior to this change? And does > > > reverting it fix get R2D-1 CF working again? The nobody cared thing is > > > curious, if you can provide the stack dump/call trace and register state > > > it might shed some light on why ata_interrupt isn't handling it. > > > > The CF for R2D-1 was disabled without this patch - mainly because I > > had trouble trying to use it. I thought it had something to do with > > the access size and this patch would solve it, but apparently not. I > > wonder if CF support in 2.6.24-rc2 works on R2D-1 for other people... > > > The access size problem causes a bus lock, so that's still a problem, > even if IRQs are hosed. Sure. But the author of this patch - Aoi Shinkai - claims that he could use a root file system on CF so I assume that he had something working there. Aoi Shinkai, are you there? Does CF work for you with rc2 on R2D-1? > > I'm guessing that something is wrong with trigger level. The R2D-1 > > documentation does say something about the CF IDE interrupt level to > > be H while the rest of the sources are L what ever that means. I don't > > think we can control it in the FPGA either. > > > That suggestions that R2D-1 is using level high. It's possible to set the > sense selection on this already at request_irq() time, blackfin ended up > having to do this, and so added the ability to pass on IRQ flags via > private data. See pata_platform_info->irq_flags in linux/pata_platform.h. > I suppose we should be setting the sense selection level high for all of > the R2D boards, in that case. But does setting these flags really change anything in the interrupt code? There are unfortunately no registers to set the actual sense configuration in the fpga so whatever you pass to request_irq() will be ignored since we have no means to change the sense settings. > > > > I can get things working by hacking in code to enable polling in > > > > pata_platform.c though, so I assume that the IO-ports are ok. > > > > > > > It might be worthwhile making the polling configurable, if you want to > > > tidy up a patch for that we can see if it's something work abstracting. > > > It's handy for debugging, at least. > > > > The generic ata code needed an IRQ last time i checked. Otherwise i'd > > prefer to not set the interrupt in the platform data to enable > > polling. In the end the only thing required is this (mangled patch > > hunk): > > > That's easy enough to fix. How about this? Looks good. I have not tested your patch, but I'd be happy to see such a feature go in. I happen to know a few different boards that would be more than happy to make use of this kind of feature... Thanks. / magnus |