lkml.org 
[lkml]   [2009]   [Jan]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: amd5536udc interrupts bug
Date
On Thursday 08 January 2009 08:40:28 Thomas Dahlmann wrote:
> Maybe you want to try this. It should work to place the register init
> from udc_probe()
>
> /* udc csr registers base */
> dev->csr = dev->virt_addr + UDC_CSR_ADDR;
> /* dev registers base */
> dev->regs = dev->virt_addr + UDC_DEVCFG_ADDR;
> /* ep registers base */spin_lock_init(&dev->lock);
> dev->ep_regs = dev->virt_addr + UDC_EPREGS_ADDR;
> /* fifo's base */
> dev->rxfifo = (u32 __iomem *)(dev->virt_addr + UDC_RXFIFO_ADDR);
> dev->txfifo = (u32 __iomem *)(dev->virt_addr + UDC_TXFIFO_ADDR);
>
> just before request_irq(...) to allow the interrupt handler to read the
> interrupt status
> registers.

I did this. Actually, I also yanked the "spin_lock_init(&dev->lock)" bit
before the request_irq() as well, since that field was also obviously
needed for the irq routine. (I didn't check for any other necessary but
less-obvious fields.) With these changes, the module modprobes just
fine.

Alas, the hardware doesn't work. When I try plugging in the other end of
the USB cable, absolutely nothing happens. Not even an interrupt:
/proc/interrupts for the amd5536udc line stays at zero. Any thoughts on
possible ways to tackle this / what could be going wrong / etc?

-- Vadim Lobanov



\
 
 \ /
  Last update: 2009-01-09 03:05    [W:1.049 / U:0.428 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site