This driver is doing a writel to some random u32, rather than to a device register. btw, can all these drivers please be cleaned up to meet standard coding style? The spaces between the function name and the opening paren are ugly and distracting. drivers/usb/gadget/net2280.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN drivers/usb/gadget/net2280.c~net2280-writel-fix drivers/usb/gadget/net2280.c --- 25-power4/drivers/usb/gadget/net2280.c~net2280-writel-fix 2003-05-13 21:32:46.000000000 -0700 +++ 25-power4-akpm/drivers/usb/gadget/net2280.c 2003-05-13 21:32:46.000000000 -0700 @@ -1260,7 +1260,7 @@ static int net2280_wakeup (struct usb_ga if (!_gadget) return 0; dev = container_of (_gadget, struct net2280, gadget); - writel (1 << GENERATE_RESUME, dev->usb->usbstat); + writel (1 << GENERATE_RESUME, &dev->usb->usbstat); /* pci writes may still be posted */ return 0; _