Signed-of-by: Nikolai Zhubr <n-a-zhubr@yandex.ru>
SVN-Revision: 32823
#ifndef DWC_HOST_ONLY
if (otg_dev->pcd) {
#ifndef DWC_HOST_ONLY
if (otg_dev->pcd) {
- dwc_otg_pcd_remove(pdev);
+ dwc_otg_pcd_remove(&pdev->dev);
}
#endif
if (otg_dev->core_if) {
}
#endif
if (otg_dev->core_if) {
/*
* Initialize the PCD
*/
/*
* Initialize the PCD
*/
- retval = dwc_otg_pcd_init(pdev);
+ retval = dwc_otg_pcd_init(&pdev->dev);
if (retval != 0) {
DWC_ERROR("dwc_otg_pcd_init failed\n");
otg_dev->pcd = NULL;
if (retval != 0) {
DWC_ERROR("dwc_otg_pcd_init failed\n");
otg_dev->pcd = NULL;
desc->wHubCharacteristics = 0x08;
desc->bPwrOn2PwrGood = 1;
desc->bHubContrCurrent = 0;
desc->wHubCharacteristics = 0x08;
desc->bPwrOn2PwrGood = 1;
desc->bHubContrCurrent = 0;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)
desc->u.hs.DeviceRemovable[0] = 0;
desc->u.hs.DeviceRemovable[1] = 0xff;
desc->u.hs.DeviceRemovable[0] = 0;
desc->u.hs.DeviceRemovable[1] = 0xff;
break;
case GetHubStatus:
DWC_DEBUGPL(DBG_HCD, "DWC OTG HCD HUB CONTROL - "
break;
case GetHubStatus:
DWC_DEBUGPL(DBG_HCD, "DWC OTG HCD HUB CONTROL - "
#include <linux/list.h>
#include <linux/usb.h>
#include <linux/list.h>
#include <linux/usb.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)
#include <linux/usb/hcd.h>
#include <linux/usb/hcd.h>
+#else
+#include <../drivers/usb/core/hcd.h>
+#endif
# include <linux/usb_ch9.h>
#endif
# include <linux/usb_ch9.h>
#endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
+#include <linux/usb/gadget.h>
+#else
#include <linux/usb_gadget.h>
#include <linux/usb_gadget.h>
#include "dwc_otg_driver.h"
#include "dwc_otg_pcd.h"
#include "dwc_otg_driver.h"
#include "dwc_otg_pcd.h"
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
/**
* This function allocates an I/O buffer to be used for a transfer
* to/from the specified endpoint.
/**
* This function allocates an I/O buffer to be used for a transfer
* to/from the specified endpoint.
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)) || defined(CONFIG_MIPS)
if(usb_req->length)
dma_cache_wback_inv((unsigned long)usb_req->buf, usb_req->length + 2);
if(usb_req->length)
dma_cache_wback_inv((unsigned long)usb_req->buf, usb_req->length + 2);
.alloc_request = dwc_otg_pcd_alloc_request,
.free_request = dwc_otg_pcd_free_request,
.alloc_request = dwc_otg_pcd_alloc_request,
.free_request = dwc_otg_pcd_free_request,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
.alloc_buffer = dwc_otg_pcd_alloc_buffer,
.free_buffer = dwc_otg_pcd_free_buffer,
.alloc_buffer = dwc_otg_pcd_alloc_buffer,
.free_buffer = dwc_otg_pcd_free_buffer,
.queue = dwc_otg_pcd_ep_queue,
.dequeue = dwc_otg_pcd_ep_dequeue,
.queue = dwc_otg_pcd_ep_queue,
.dequeue = dwc_otg_pcd_ep_dequeue,
.alloc_request = dwc_otg_pcd_alloc_request,
.free_request = dwc_otg_pcd_free_request,
.alloc_request = dwc_otg_pcd_alloc_request,
.free_request = dwc_otg_pcd_free_request,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
.alloc_buffer = dwc_otg_pcd_alloc_buffer,
.free_buffer = dwc_otg_pcd_free_buffer,
.alloc_buffer = dwc_otg_pcd_alloc_buffer,
.free_buffer = dwc_otg_pcd_free_buffer,
.queue = dwc_otg_pcd_ep_queue,
.dequeue = dwc_otg_pcd_ep_dequeue,
.queue = dwc_otg_pcd_ep_queue,
.dequeue = dwc_otg_pcd_ep_dequeue,
otg_dev->pcd = pcd;
s_pcd = pcd;
pcd->gadget.name = pcd_name;
otg_dev->pcd = pcd;
s_pcd = pcd;
pcd->gadget.name = pcd_name;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
strcpy(pcd->gadget.dev.bus_id, "gadget");
strcpy(pcd->gadget.dev.bus_id, "gadget");
+#else
+ dev_set_name(&pcd->gadget.dev, "%s", "gadget");
+#endif
pcd->otg_dev = dev_get_drvdata(dev);
pcd->otg_dev = dev_get_drvdata(dev);
*/
DWC_DEBUGPL(DBG_ANY, "registering handler for irq%d\n", otg_dev->irq);
retval = request_irq(otg_dev->irq, dwc_otg_pcd_irq,
*/
DWC_DEBUGPL(DBG_ANY, "registering handler for irq%d\n", otg_dev->irq);
retval = request_irq(otg_dev->irq, dwc_otg_pcd_irq,
- SA_SHIRQ, pcd->gadget.name, pcd);
+ IRQF_SHARED, pcd->gadget.name, pcd);
if (retval != 0) {
DWC_ERROR("request of irq%d failed\n", otg_dev->irq);
device_unregister(&pcd->gadget.dev);
if (retval != 0) {
DWC_ERROR("request of irq%d failed\n", otg_dev->irq);
device_unregister(&pcd->gadget.dev);
*
* @param driver The driver being registered
*/
*
* @param driver The driver being registered
*/
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)
+int usb_gadget_probe_driver(struct usb_gadget_driver *driver, int (*bind)(struct usb_gadget *))
+#else
int usb_gadget_register_driver(struct usb_gadget_driver *driver)
int usb_gadget_register_driver(struct usb_gadget_driver *driver)
+ int (*d_bind)(struct usb_gadget *);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)
+ d_bind = bind;
+#else
+ d_bind = driver->bind;
+#endif
DWC_DEBUGPL(DBG_PCD, "registering gadget driver '%s'\n", driver->driver.name);
if (!driver || driver->speed == USB_SPEED_UNKNOWN ||
DWC_DEBUGPL(DBG_PCD, "registering gadget driver '%s'\n", driver->driver.name);
if (!driver || driver->speed == USB_SPEED_UNKNOWN ||
!driver->unbind ||
!driver->disconnect ||
!driver->setup) {
!driver->unbind ||
!driver->disconnect ||
!driver->setup) {
s_pcd->gadget.dev.driver = &driver->driver;
DWC_DEBUGPL(DBG_PCD, "bind to driver %s\n", driver->driver.name);
s_pcd->gadget.dev.driver = &driver->driver;
DWC_DEBUGPL(DBG_PCD, "bind to driver %s\n", driver->driver.name);
- retval = driver->bind(&s_pcd->gadget);
+ retval = d_bind(&s_pcd->gadget);
if (retval) {
DWC_ERROR("bind to driver %s --> error %d\n",
driver->driver.name, retval);
if (retval) {
DWC_ERROR("bind to driver %s --> error %d\n",
driver->driver.name, retval);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)
+EXPORT_SYMBOL(usb_gadget_probe_driver);
+#else
EXPORT_SYMBOL(usb_gadget_register_driver);
EXPORT_SYMBOL(usb_gadget_register_driver);
/**
* This function unregisters a gadget driver
/**
* This function unregisters a gadget driver
# include <linux/usb_ch9.h>
#endif
# include <linux/usb_ch9.h>
#endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
+#include <linux/usb/gadget.h>
+#else
#include <linux/usb_gadget.h>
#include <linux/usb_gadget.h>
#include <linux/interrupt.h>
#include <linux/dma-mapping.h>
#include <linux/interrupt.h>
#include <linux/dma-mapping.h>