#include <linux/slab.h>
#include <linux/interrupt.h>
#include <linux/platform_device.h>
-#include <linux/usb_ch9.h>
+#include <linux/usb/ch9.h>
#include <linux/usb_gadget.h>
#include <linux/usb.h>
#include <linux/usb/otg.h>
* OTG related functions
*
* These shoud be separated into omap-otg.c driver module, as they are used
- * by various transceivers. These functions are needed in the UDC-only case
+ * by various transceivers. These functions are needed in the UDC-only case
* as well. These functions are copied from GPL isp1301_omap.c
* ---------------------------------------------------------------------------
*/
}
return request_irq(tahvo_otg_dev->resource[1].start,
- omap_otg_irq, SA_INTERRUPT, DRIVER_NAME,
+ omap_otg_irq, IRQF_DISABLED, DRIVER_NAME,
&tahvo_usb_device);
}
return 0;
}
-static void tahvo_usb_irq_work(void *data)
+static void tahvo_usb_irq_work(struct work_struct *work)
{
- struct tahvo_usb *tu = (struct tahvo_usb *)data;
+ struct tahvo_usb *tu = container_of(work, struct tahvo_usb, irq_work);
mutex_lock(&tu->serialize);
check_vbus_state(tu);
#endif
#endif
- INIT_WORK(&tu->irq_work, tahvo_usb_irq_work, tu);
+ INIT_WORK(&tu->irq_work, tahvo_usb_irq_work);
mutex_init(&tu->serialize);
/* Set initial state, so that we generate kevents only on