diff --git a/dde_linux/Makefile b/dde_linux/Makefile index 86352fc0c1..5379eec27a 100644 --- a/dde_linux/Makefile +++ b/dde_linux/Makefile @@ -9,9 +9,9 @@ VERBOSE ?= @ ECHO = @echo PATCHES := $(shell find patches -name \*.patch) -LINUX = linux-3.8.6 +LINUX = linux-3.9-rc8 LINUX_TBZ2 = $(LINUX).tar.bz2 -LINUX_URL = http://www.kernel.org/pub/linux/kernel/v3.x/$(LINUX_TBZ2) +LINUX_URL = http://www.kernel.org/pub/linux/kernel/v3.x/testing/$(LINUX_TBZ2) # Linux utilities CONTENT += include/linux/list.h @@ -30,8 +30,8 @@ CONTENT += include/uapi/asm-generic/ioctl.h # USB core CONTENT_CORE = buffer.c config.c devices.c driver.c endpoint.c file.c generic.c \ - hcd.c hcd-pci.c hub.c message.c notify.c quirks.c urb.c \ - usb.c usb.h + hcd.c hcd-pci.c hub.h hub.c message.c notify.c quirks.c port.c \ + urb.c usb.c usb.h CONTENT += $(addprefix drivers/usb/core/,$(CONTENT_CORE)) CONTENT += drivers/usb/usb-common.c CONTENT_INCLUDE_USB := ehci_def.h hcd.h input.h otg.h quirks.h storage.h @@ -78,8 +78,10 @@ CONTENT_NET += asix_devices.c asix_common.c ax88172a.c asix.h CONTENT += $(addprefix drivers/net/usb/,$(CONTENT_NET)) CONTENT += include/linux/usb/usbnet.h include/linux/netdev_features.h +# OMAP +CONTENT += include/linux/platform_data/usb-omap.h + # Arndale -CONTENT_ARNDALE = ehci.h usb-phy.h CONTENT += arch/arm/plat-samsung/include/plat/usb-phy.h CONTENT += include/linux/platform_data/usb-ehci-s5p.h diff --git a/dde_linux/lib/mk/usb.inc b/dde_linux/lib/mk/usb.inc index 273aaea2c2..cea599ab45 100644 --- a/dde_linux/lib/mk/usb.inc +++ b/dde_linux/lib/mk/usb.inc @@ -87,7 +87,6 @@ $(SRC_C:.c=.o) $(SRC_CC:.cc=.o): $(GEN_INCLUDES) # Add suffix, since there are two hid-core.c with the same module init function # hid/hid-core.o: MOD_SUFFIX="_core" -hid/hid-generic.o: MOD_SUFFIX="_generic" $(GEN_INCLUDES): $(VERBOSE)mkdir -p $(dir $@) diff --git a/dde_linux/patches/csum.patch b/dde_linux/patches/csum.patch index 1f9f477954..f85d75264f 100644 --- a/dde_linux/patches/csum.patch +++ b/dde_linux/patches/csum.patch @@ -1,7 +1,7 @@ -diff -r c094ecb374e9 drivers/net/usb/smsc95xx.c ---- a/drivers/net/usb/smsc95xx.c Thu Apr 11 15:47:15 2013 +0200 -+++ b/drivers/net/usb/smsc95xx.c Thu Apr 11 15:52:01 2013 +0200 -@@ -1747,7 +1747,13 @@ +diff -r d30e545c9a57 drivers/net/usb/smsc95xx.c +--- a/drivers/net/usb/smsc95xx.c Mon Apr 22 16:19:09 2013 +0200 ++++ b/drivers/net/usb/smsc95xx.c Mon Apr 22 16:19:46 2013 +0200 +@@ -1714,7 +1714,13 @@ static void smsc95xx_rx_csum_offload(struct sk_buff *skb) { diff --git a/dde_linux/patches/evdev.patch b/dde_linux/patches/evdev.patch index 140d60f5e4..7144af97d0 100644 --- a/dde_linux/patches/evdev.patch +++ b/dde_linux/patches/evdev.patch @@ -1,6 +1,6 @@ -diff -r 3e2b660685e7 drivers/input/evdev.c ---- a/drivers/input/evdev.c Wed Apr 17 11:36:09 2013 +0200 -+++ b/drivers/input/evdev.c Wed Apr 17 11:36:46 2013 +0200 +diff -r 2949c3919d29 drivers/input/evdev.c +--- a/drivers/input/evdev.c Mon Apr 22 16:19:56 2013 +0200 ++++ b/drivers/input/evdev.c Mon Apr 22 16:20:32 2013 +0200 @@ -1008,6 +1008,9 @@ if (error) goto err_cleanup_evdev; diff --git a/dde_linux/patches/mem.patch b/dde_linux/patches/mem.patch index d46a9e3a48..43e5868941 100644 --- a/dde_linux/patches/mem.patch +++ b/dde_linux/patches/mem.patch @@ -1,6 +1,6 @@ -diff -r 7c6a35bba203 drivers/hid/usbhid/hid-core.c ---- a/drivers/hid/usbhid/hid-core.c Thu Apr 18 14:21:39 2013 +0200 -+++ b/drivers/hid/usbhid/hid-core.c Fri Apr 19 14:53:15 2013 +0200 +diff -r d22e0f3e9541 drivers/hid/usbhid/hid-core.c +--- a/drivers/hid/usbhid/hid-core.c Mon Apr 22 16:20:42 2013 +0200 ++++ b/drivers/hid/usbhid/hid-core.c Mon Apr 22 16:22:55 2013 +0200 @@ -895,7 +895,7 @@ &usbhid->inbuf_dma); usbhid->outbuf = usb_alloc_coherent(dev, usbhid->bufsize, GFP_KERNEL, @@ -19,13 +19,9 @@ diff -r 7c6a35bba203 drivers/hid/usbhid/hid-core.c dbg_hid("couldn't allocate rdesc memory\n"); return -ENOMEM; } -diff -r 7c6a35bba203 drivers/net/usb/.smsc95xx.c.swp -Binary file drivers/net/usb/.smsc95xx.c.swp has changed -diff -r 7c6a35bba203 drivers/net/usb/.usbnet.c.swp -Binary file drivers/net/usb/.usbnet.c.swp has changed -diff -r 7c6a35bba203 drivers/net/usb/usbnet.c ---- a/drivers/net/usb/usbnet.c Thu Apr 18 14:21:39 2013 +0200 -+++ b/drivers/net/usb/usbnet.c Fri Apr 19 14:53:15 2013 +0200 +diff -r d22e0f3e9541 drivers/net/usb/usbnet.c +--- a/drivers/net/usb/usbnet.c Mon Apr 22 16:20:42 2013 +0200 ++++ b/drivers/net/usb/usbnet.c Mon Apr 22 16:22:55 2013 +0200 @@ -234,7 +234,7 @@ period = max ((int) dev->status->desc.bInterval, (dev->udev->speed == USB_SPEED_HIGH) ? 7 : 3); @@ -86,12 +82,12 @@ diff -r 7c6a35bba203 drivers/net/usb/usbnet.c - req = kmalloc(sizeof(struct usb_ctrlrequest), GFP_ATOMIC); + req = kmalloc(sizeof(struct usb_ctrlrequest), GFP_NOIO); - if (!req) { - netdev_err(dev->net, "Failed to allocate memory for %s\n", - __func__); -diff -r 7c6a35bba203 drivers/usb/core/config.c ---- a/drivers/usb/core/config.c Thu Apr 18 14:21:39 2013 +0200 -+++ b/drivers/usb/core/config.c Fri Apr 19 14:53:15 2013 +0200 + if (!req) + goto fail_free_buf; + +diff -r d22e0f3e9541 drivers/usb/core/config.c +--- a/drivers/usb/core/config.c Mon Apr 22 16:20:42 2013 +0200 ++++ b/drivers/usb/core/config.c Mon Apr 22 16:22:55 2013 +0200 @@ -689,7 +689,7 @@ if (!dev->rawdescriptors) goto err2; @@ -110,10 +106,10 @@ diff -r 7c6a35bba203 drivers/usb/core/config.c if (!bigbuffer) { result = -ENOMEM; goto err; -diff -r 7c6a35bba203 drivers/usb/core/devices.c ---- a/drivers/usb/core/devices.c Thu Apr 18 14:21:39 2013 +0200 -+++ b/drivers/usb/core/devices.c Fri Apr 19 14:53:15 2013 +0200 -@@ -506,7 +506,7 @@ +diff -r d22e0f3e9541 drivers/usb/core/devices.c +--- a/drivers/usb/core/devices.c Mon Apr 22 16:20:42 2013 +0200 ++++ b/drivers/usb/core/devices.c Mon Apr 22 16:22:55 2013 +0200 +@@ -513,7 +513,7 @@ return 0; /* allocate 2^1 pages = 8K (on i386); * should be more than enough for one device */ @@ -122,10 +118,10 @@ diff -r 7c6a35bba203 drivers/usb/core/devices.c if (!pages_start) return -ENOMEM; -diff -r 7c6a35bba203 drivers/usb/core/hub.c ---- a/drivers/usb/core/hub.c Thu Apr 18 14:21:39 2013 +0200 -+++ b/drivers/usb/core/hub.c Fri Apr 19 14:53:15 2013 +0200 -@@ -1077,7 +1077,7 @@ +diff -r d22e0f3e9541 drivers/usb/core/hub.c +--- a/drivers/usb/core/hub.c Mon Apr 22 16:20:42 2013 +0200 ++++ b/drivers/usb/core/hub.c Mon Apr 22 16:22:55 2013 +0200 +@@ -1049,7 +1049,7 @@ hcd = bus_to_hcd(hdev->bus); if (hcd->driver->update_hub_device) { ret = hcd->driver->update_hub_device(hcd, hdev, @@ -134,7 +130,7 @@ diff -r 7c6a35bba203 drivers/usb/core/hub.c if (ret < 0) { dev_err(hub->intfdev, "Host not " "accepting hub info " -@@ -1217,7 +1217,7 @@ +@@ -1195,7 +1195,7 @@ init3: hub->quiescing = 0; @@ -143,9 +139,9 @@ diff -r 7c6a35bba203 drivers/usb/core/hub.c if (status < 0) dev_err(hub->intfdev, "activate --> %d\n", status); if (hub->has_indicators && blinkenlights) -@@ -1352,20 +1352,20 @@ - int maxp, ret, i; - char *message = "out of memory"; +@@ -1286,20 +1286,20 @@ + unsigned unit_load; + unsigned full_load; - hub->buffer = kmalloc(sizeof(*hub->buffer), GFP_KERNEL); + hub->buffer = kmalloc(sizeof(*hub->buffer), GFP_NOIO); @@ -167,7 +163,7 @@ diff -r 7c6a35bba203 drivers/usb/core/hub.c if (!hub->descriptor) { ret = -ENOMEM; goto fail; -@@ -3437,9 +3437,9 @@ +@@ -3444,9 +3444,9 @@ /* * usb_enable_lpm() can be called as part of a failed device reset, * which may be initiated by an error path of a mass storage driver. @@ -179,7 +175,7 @@ diff -r 7c6a35bba203 drivers/usb/core/hub.c if (!sel_values) return -ENOMEM; -@@ -4921,7 +4921,7 @@ +@@ -4942,7 +4942,7 @@ len = max(len, old_length); } @@ -188,9 +184,9 @@ diff -r 7c6a35bba203 drivers/usb/core/hub.c if (buf == NULL) { dev_err(&udev->dev, "no mem to re-read configs after reset\n"); /* assume the worst */ -diff -r 7c6a35bba203 drivers/usb/core/message.c ---- a/drivers/usb/core/message.c Thu Apr 18 14:21:39 2013 +0200 -+++ b/drivers/usb/core/message.c Fri Apr 19 14:53:15 2013 +0200 +diff -r d22e0f3e9541 drivers/usb/core/message.c +--- a/drivers/usb/core/message.c Mon Apr 22 16:20:42 2013 +0200 ++++ b/drivers/usb/core/message.c Mon Apr 22 16:22:55 2013 +0200 @@ -50,7 +50,7 @@ init_completion(&ctx.done); urb->context = &ctx; @@ -250,9 +246,9 @@ diff -r 7c6a35bba203 drivers/usb/core/message.c if (!new_interfaces[n]) { dev_err(&dev->dev, "Out of memory\n"); ret = -ENOMEM; -diff -r 7c6a35bba203 drivers/usb/storage/alauda.c ---- a/drivers/usb/storage/alauda.c Thu Apr 18 14:21:39 2013 +0200 -+++ b/drivers/usb/storage/alauda.c Fri Apr 19 14:53:15 2013 +0200 +diff -r d22e0f3e9541 drivers/usb/storage/alauda.c +--- a/drivers/usb/storage/alauda.c Mon Apr 22 16:20:42 2013 +0200 ++++ b/drivers/usb/storage/alauda.c Mon Apr 22 16:22:55 2013 +0200 @@ -448,8 +448,8 @@ num_zones = MEDIA_INFO(us).capacity >> (MEDIA_INFO(us).zoneshift @@ -311,9 +307,9 @@ diff -r 7c6a35bba203 drivers/usb/storage/alauda.c if (!us->extra) { US_DEBUGP("init_alauda: Gah! Can't allocate storage for" "alauda info struct!\n"); -diff -r 7c6a35bba203 drivers/usb/storage/datafab.c ---- a/drivers/usb/storage/datafab.c Thu Apr 18 14:21:39 2013 +0200 -+++ b/drivers/usb/storage/datafab.c Fri Apr 19 14:53:15 2013 +0200 +diff -r d22e0f3e9541 drivers/usb/storage/datafab.c +--- a/drivers/usb/storage/datafab.c Mon Apr 22 16:20:42 2013 +0200 ++++ b/drivers/usb/storage/datafab.c Mon Apr 22 16:22:55 2013 +0200 @@ -174,7 +174,7 @@ // bounce buffer and the actual transfer buffer. @@ -359,9 +355,9 @@ diff -r 7c6a35bba203 drivers/usb/storage/datafab.c if (!us->extra) { US_DEBUGP("datafab_transport: Gah! " "Can't allocate storage for Datafab info struct!\n"); -diff -r 7c6a35bba203 drivers/usb/storage/jumpshot.c ---- a/drivers/usb/storage/jumpshot.c Thu Apr 18 14:21:39 2013 +0200 -+++ b/drivers/usb/storage/jumpshot.c Fri Apr 19 14:53:15 2013 +0200 +diff -r d22e0f3e9541 drivers/usb/storage/jumpshot.c +--- a/drivers/usb/storage/jumpshot.c Mon Apr 22 16:20:42 2013 +0200 ++++ b/drivers/usb/storage/jumpshot.c Mon Apr 22 16:22:55 2013 +0200 @@ -188,7 +188,7 @@ // bounce buffer and the actual transfer buffer. @@ -398,9 +394,9 @@ diff -r 7c6a35bba203 drivers/usb/storage/jumpshot.c if (!us->extra) { US_DEBUGP("jumpshot_transport: Gah! Can't allocate storage for jumpshot info struct!\n"); return USB_STOR_TRANSPORT_ERROR; -diff -r 7c6a35bba203 drivers/usb/storage/karma.c ---- a/drivers/usb/storage/karma.c Thu Apr 18 14:21:39 2013 +0200 -+++ b/drivers/usb/storage/karma.c Fri Apr 19 14:53:15 2013 +0200 +diff -r d22e0f3e9541 drivers/usb/storage/karma.c +--- a/drivers/usb/storage/karma.c Mon Apr 22 16:20:42 2013 +0200 ++++ b/drivers/usb/storage/karma.c Mon Apr 22 16:22:55 2013 +0200 @@ -182,11 +182,11 @@ static int rio_karma_init(struct us_data *us) { @@ -415,9 +411,9 @@ diff -r 7c6a35bba203 drivers/usb/storage/karma.c if (!data->recv) { kfree(data); goto out; -diff -r 7c6a35bba203 drivers/usb/storage/onetouch.c ---- a/drivers/usb/storage/onetouch.c Thu Apr 18 14:21:39 2013 +0200 -+++ b/drivers/usb/storage/onetouch.c Fri Apr 19 14:53:15 2013 +0200 +diff -r d22e0f3e9541 drivers/usb/storage/onetouch.c +--- a/drivers/usb/storage/onetouch.c Mon Apr 22 16:20:42 2013 +0200 ++++ b/drivers/usb/storage/onetouch.c Mon Apr 22 16:22:55 2013 +0200 @@ -163,7 +163,7 @@ usb_kill_urb(onetouch->irq); break; @@ -427,9 +423,9 @@ diff -r 7c6a35bba203 drivers/usb/storage/onetouch.c dev_err(&onetouch->irq->dev->dev, "usb_submit_urb failed\n"); break; -diff -r 7c6a35bba203 drivers/usb/storage/realtek_cr.c ---- a/drivers/usb/storage/realtek_cr.c Thu Apr 18 14:21:39 2013 +0200 -+++ b/drivers/usb/storage/realtek_cr.c Fri Apr 19 14:53:15 2013 +0200 +diff -r d22e0f3e9541 drivers/usb/storage/realtek_cr.c +--- a/drivers/usb/storage/realtek_cr.c Mon Apr 22 16:20:42 2013 +0200 ++++ b/drivers/usb/storage/realtek_cr.c Mon Apr 22 16:22:55 2013 +0200 @@ -367,7 +367,7 @@ u8 cmnd[12] = { 0 }; u8 *buf; @@ -466,9 +462,9 @@ diff -r 7c6a35bba203 drivers/usb/storage/realtek_cr.c if (!buf) return USB_STOR_TRANSPORT_ERROR; -diff -r 7c6a35bba203 drivers/usb/storage/sddr09.c ---- a/drivers/usb/storage/sddr09.c Thu Apr 18 14:21:39 2013 +0200 -+++ b/drivers/usb/storage/sddr09.c Fri Apr 19 14:53:15 2013 +0200 +diff -r d22e0f3e9541 drivers/usb/storage/sddr09.c +--- a/drivers/usb/storage/sddr09.c Mon Apr 22 16:20:42 2013 +0200 ++++ b/drivers/usb/storage/sddr09.c Mon Apr 22 16:22:55 2013 +0200 @@ -692,7 +692,7 @@ return result; } @@ -534,9 +530,9 @@ diff -r 7c6a35bba203 drivers/usb/storage/sddr09.c if (!us->extra) return -ENOMEM; us->extra_destructor = sddr09_card_info_destructor; -diff -r 7c6a35bba203 drivers/usb/storage/sddr55.c ---- a/drivers/usb/storage/sddr55.c Thu Apr 18 14:21:39 2013 +0200 -+++ b/drivers/usb/storage/sddr55.c Fri Apr 19 14:53:15 2013 +0200 +diff -r d22e0f3e9541 drivers/usb/storage/sddr55.c +--- a/drivers/usb/storage/sddr55.c Mon Apr 22 16:20:42 2013 +0200 ++++ b/drivers/usb/storage/sddr55.c Mon Apr 22 16:22:55 2013 +0200 @@ -216,7 +216,7 @@ len = min((unsigned int) sectors, (unsigned int) info->blocksize >> @@ -584,9 +580,9 @@ diff -r 7c6a35bba203 drivers/usb/storage/sddr55.c if (!us->extra) return USB_STOR_TRANSPORT_ERROR; us->extra_destructor = sddr55_card_info_destructor; -diff -r 7c6a35bba203 drivers/usb/storage/shuttle_usbat.c ---- a/drivers/usb/storage/shuttle_usbat.c Thu Apr 18 14:21:39 2013 +0200 -+++ b/drivers/usb/storage/shuttle_usbat.c Fri Apr 19 14:53:15 2013 +0200 +diff -r d22e0f3e9541 drivers/usb/storage/shuttle_usbat.c +--- a/drivers/usb/storage/shuttle_usbat.c Mon Apr 22 16:20:42 2013 +0200 ++++ b/drivers/usb/storage/shuttle_usbat.c Mon Apr 22 16:22:55 2013 +0200 @@ -1068,7 +1068,7 @@ if (!us || !info) return USB_STOR_TRANSPORT_ERROR; @@ -632,9 +628,9 @@ diff -r 7c6a35bba203 drivers/usb/storage/shuttle_usbat.c if (!us->extra) { US_DEBUGP("init_usbat: Gah! Can't allocate storage for usbat info struct!\n"); return 1; -diff -r 7c6a35bba203 drivers/usb/storage/transport.c ---- a/drivers/usb/storage/transport.c Thu Apr 18 14:21:39 2013 +0200 -+++ b/drivers/usb/storage/transport.c Fri Apr 19 14:53:15 2013 +0200 +diff -r d22e0f3e9541 drivers/usb/storage/transport.c +--- a/drivers/usb/storage/transport.c Mon Apr 22 16:20:42 2013 +0200 ++++ b/drivers/usb/storage/transport.c Mon Apr 22 16:22:55 2013 +0200 @@ -151,7 +151,7 @@ us->current_urb->transfer_dma = us->iobuf_dma; @@ -653,9 +649,9 @@ diff -r 7c6a35bba203 drivers/usb/storage/transport.c if (result) { US_DEBUGP("usb_sg_init returned %d\n", result); return USB_STOR_XFER_ERROR; -diff -r 7c6a35bba203 drivers/usb/storage/usb.c ---- a/drivers/usb/storage/usb.c Thu Apr 18 14:21:39 2013 +0200 -+++ b/drivers/usb/storage/usb.c Fri Apr 19 14:53:15 2013 +0200 +diff -r d22e0f3e9541 drivers/usb/storage/usb.c +--- a/drivers/usb/storage/usb.c Mon Apr 22 16:20:42 2013 +0200 ++++ b/drivers/usb/storage/usb.c Mon Apr 22 16:22:55 2013 +0200 @@ -453,7 +453,7 @@ usb_set_intfdata(intf, us); diff --git a/dde_linux/src/lib/usb/arm/platform_device.c b/dde_linux/src/lib/usb/arm/platform_device.c index 23deb503ae..ef3a90151f 100644 --- a/dde_linux/src/lib/usb/arm/platform_device.c +++ b/dde_linux/src/lib/usb/arm/platform_device.c @@ -15,8 +15,6 @@ #define to_platform_driver(drv) (container_of((drv), struct platform_driver, \ driver)) -#define to_platform_device(x) container_of((x), struct platform_device, dev) - static int platform_match(struct device *dev, struct device_driver *drv) { diff --git a/dde_linux/src/lib/usb/arm/platform_panda/platform.cc b/dde_linux/src/lib/usb/arm/platform_panda/platform.cc index c57fd2ac90..1d018388bb 100644 --- a/dde_linux/src/lib/usb/arm/platform_panda/platform.cc +++ b/dde_linux/src/lib/usb/arm/platform_panda/platform.cc @@ -17,6 +17,7 @@ #include #include +#include using namespace Genode; @@ -387,7 +388,7 @@ void platform_hcd_init(Services *services) _ehci_data.port_mode[0] = OMAP_EHCI_PORT_MODE_PHY; - _ehci_data.port_mode[1] = OMAP_EHCI_PORT_MODE_NONE; + _ehci_data.port_mode[1] = OMAP_USBHS_PORT_MODE_UNUSED; _ehci_data.phy_reset = 0; pdev->dev.platform_data = &_ehci_data; diff --git a/dde_linux/src/lib/usb/dummies.c b/dde_linux/src/lib/usb/dummies.c index 78b8992130..1fe4d4527e 100644 --- a/dde_linux/src/lib/usb/dummies.c +++ b/dde_linux/src/lib/usb/dummies.c @@ -303,6 +303,9 @@ int sysfs_create_group(struct kobject *kobj, const struct attribute_group *grp) { TRACE; return 0; } void sysfs_remove_group(struct kobject *kobj, const struct attribute_group *grp) { TRACE; } +int sysfs_create_link(struct kobject *kobj, struct kobject *target, + const char *name) { TRACE; return 0; } +void sysfs_remove_link(struct kobject *kobj, const char *name) { TRACE; } int fasync_helper(int fd, struct file * filp, int on, struct fasync_struct **fapp) { TRACE; return 0; } @@ -326,6 +329,7 @@ void pm_runtime_no_callbacks(struct device *dev) { TRACE; } void pm_runtime_set_autosuspend_delay(struct device *dev, int delay) { TRACE; } int pm_runtime_get_sync(struct device *dev) { TRACE; return 0; } int pm_runtime_put_sync(struct device *dev) { TRACE; return 0; } +int pm_runtime_put(struct device *dev) { TRACE; return 0; } /*********************** @@ -339,6 +343,13 @@ int device_set_wakeup_enable(struct device *dev, bool enable) { TRACE; return 0 bool device_can_wakeup(struct device *dev) { TRACE; return 0; } +/******************** + ** linux/pm_qos.h ** + ********************/ + +int dev_pm_qos_expose_flags(struct device *dev, s32 value) { TRACE; return 0; } + + /******************** ** linux/device.h ** ********************/ @@ -484,6 +495,13 @@ const struct file_operations simple_dir_operations; const struct inode_operations simple_dir_inode_operations; +struct inode *file_inode(struct file *f) +{ + TRACE; + static struct inode _i; + return &_i; +} + /******************* ** linux/namei.h ** *******************/ @@ -842,7 +860,6 @@ int skb_checksum_start_offset(const struct sk_buff *skb) { TRACE; return 0; } struct sk_buff *skb_copy_expand(const struct sk_buff *skb, int newheadroom, int newtailroom, gfp_t gfp_mask) { TRACE; return 0; } -int skb_tailroom(const struct sk_buff *skb) { TRACE; return 0; } int skb_queue_empty(const struct sk_buff_head *list) { TRACE; return 1; } void skb_queue_purge(struct sk_buff_head *list) { TRACE; } @@ -1031,7 +1048,7 @@ void phy_stop(struct phy_device *phydev) { TRACE; } int genphy_resume(struct phy_device *phydev) { TRACE; return 0; } struct phy_device * phy_connect(struct net_device *dev, const char *bus_id, - void (*handler)(struct net_device *), u32 flags, + void (*handler)(struct net_device *), phy_interface_t interface) { TRACE; return 0; } void phy_disconnect(struct phy_device *phydev) { TRACE; } diff --git a/dde_linux/src/lib/usb/include/arm/platform/lx_emul.h b/dde_linux/src/lib/usb/include/arm/platform/lx_emul.h index 5136b78819..72a126bcd7 100644 --- a/dde_linux/src/lib/usb/include/arm/platform/lx_emul.h +++ b/dde_linux/src/lib/usb/include/arm/platform/lx_emul.h @@ -48,30 +48,6 @@ enum { #define ULPI_SET(a) (a + 1) -/******************************************* - ** arch/arm/plat-omap/include/plat/usb.h ** - *******************************************/ - -enum { OMAP3_HS_USB_PORTS = 2 }; - -enum usbhs_omap_port_mode -{ - OMAP_EHCI_PORT_MODE_NONE, - OMAP_EHCI_PORT_MODE_PHY, -}; - -struct regulator { }; - -struct ehci_hcd_omap_platform_data -{ - enum usbhs_omap_port_mode port_mode[OMAP3_HS_USB_PORTS]; - int reset_gpio_port[OMAP3_HS_USB_PORTS]; - struct regulator *regulator[OMAP3_HS_USB_PORTS]; - unsigned phy_reset; - -}; - - /***************************** ** linux/platform_device.h ** @@ -97,6 +73,8 @@ int platform_driver_register(struct platform_driver *); int platform_device_register(struct platform_device *); +#define to_platform_device(x) container_of((x), struct platform_device, dev) + /********************** ** asm/generic/io.h ** **********************/ @@ -127,6 +105,7 @@ static inline void __raw_writeb(u8 b, volatile void __iomem *addr) ** linux/regulator/consumer.h ** ********************************/ +struct regulator { }; int regulator_enable(struct regulator *); int regulator_disable(struct regulator *); void regulator_put(struct regulator *regulator); @@ -141,16 +120,6 @@ int omap_usbhs_enable(struct device *dev); void omap_usbhs_disable(struct device *dev); -/**************** - ** linux/pm.h ** - ****************/ - -struct dev_pm_ops { - int (*suspend)(struct device *dev); - int (*resume)(struct device *dev); -}; - - /***************** ** linux/clk.h ** *****************/ @@ -232,8 +201,16 @@ void phy_stop(struct phy_device *phydev); int genphy_resume(struct phy_device *phydev); struct phy_device * phy_connect(struct net_device *dev, const char *bus_id, - void (*handler)(struct net_device *), u32 flags, + void (*handler)(struct net_device *), phy_interface_t interface); void phy_disconnect(struct phy_device *phydev); + +/******************************* + ** linux/usb/samsung_usb_phy ** + *******************************/ + +enum samsung_usb_phy_type { USB_PHY_TYPE_HOST = 1 }; + + #endif /* _ARM__PLATFORM__LX_EMUL_H_ */ diff --git a/dde_linux/src/lib/usb/include/lx_emul.h b/dde_linux/src/lib/usb/include/lx_emul.h index d7a44620b4..c76a50af55 100644 --- a/dde_linux/src/lib/usb/include/lx_emul.h +++ b/dde_linux/src/lib/usb/include/lx_emul.h @@ -60,7 +60,7 @@ extern "C" { #endif #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) -#define LINUX_VERSION_CODE KERNEL_VERSION(3,8,6) +#define LINUX_VERSION_CODE KERNEL_VERSION(3,9,0) #define KBUILD_MODNAME "mod-noname" @@ -403,66 +403,75 @@ struct page * Note that the codes do not correspond to those of the Linux kernel. */ enum { - EINVAL = 1, - ENODEV = 2, - ENOMEM = 3, - EFAULT = 4, - EBADF = 5, - EAGAIN = 6, - ERESTARTSYS = 7, - ENOSPC = 8, - EIO = 9, - EBUSY = 10, - EPERM = 11, - EINTR = 12, - ENOMSG = 13, - ECONNRESET = 14, - ENOENT = 15, - EHOSTUNREACH = 16, - ESRCH = 17, - EPIPE = 18, - ENODATA = 19, - EREMOTEIO = 20, - ENOTTY = 21, - ENOIOCTLCMD = 22, - EADDRINUSE = 23, - ENFILE = 23, - EXFULL = 24, - EIDRM = 25, - ESHUTDOWN = 26, - EMSGSIZE = 27, - E2BIG = 28, - EINPROGRESS = 29, - ESPIPE = 29, - ETIMEDOUT = 30, - ENOSYS = 31, - ENOTCONN = 32, - EPROTO = 33, - ENOTSUPP = 34, - EISDIR = 35, - EEXIST = 36, - ENOTEMPTY = 37, - ENXIO = 38, - ENOEXEC = 39, - EXDEV = 40, - EOVERFLOW = 41, - ENOSR = 42, - ECOMM = 43, - EFBIG = 44, - EILSEQ = 45, - ETIME = 46, - EALREADY = 47, - EOPNOTSUPP = 48, - EDOM = 49, - ENOLINK = 50, - EADDRNOTAVAIL= 51, + EINVAL = 1, + ENODEV = 2, + ENOMEM = 3, + EFAULT = 4, + EBADF = 5, + EAGAIN = 6, + ERESTARTSYS = 7, + ENOSPC = 8, + EIO = 9, + EBUSY = 10, + EPERM = 11, + EINTR = 12, + ENOMSG = 13, + ECONNRESET = 14, + ENOENT = 15, + EHOSTUNREACH = 16, + ESRCH = 17, + EPIPE = 18, + ENODATA = 19, + EREMOTEIO = 20, + ENOTTY = 21, + ENOIOCTLCMD = 22, + EADDRINUSE = 23, + ENFILE = 23, + EXFULL = 24, + EIDRM = 25, + ESHUTDOWN = 26, + EMSGSIZE = 27, + E2BIG = 28, + EINPROGRESS = 29, + ESPIPE = 29, + ETIMEDOUT = 30, + ENOSYS = 31, + ENOTCONN = 32, + EPROTO = 33, + ENOTSUPP = 34, + EISDIR = 35, + EEXIST = 36, + ENOTEMPTY = 37, + ENXIO = 38, + ENOEXEC = 39, + EXDEV = 40, + EOVERFLOW = 41, + ENOSR = 42, + ECOMM = 43, + EFBIG = 44, + EILSEQ = 45, + ETIME = 46, + EALREADY = 47, + EOPNOTSUPP = 48, + EDOM = 49, + ENOLINK = 50, + EADDRNOTAVAIL = 51, + EPROBE_DEFER = 52, }; -static inline bool IS_ERR(void *ptr) { + +/***************** + ** linux/err.h ** + *****************/ + +static inline bool IS_ERR(void const *ptr) { return (unsigned long)(ptr) > (unsigned long)(-1000); } long PTR_ERR(const void *ptr); +static inline long IS_ERR_OR_NULL(const void *ptr) { + return !ptr || IS_ERR(ptr); } + /******************* ** linux/major.h ** @@ -1154,6 +1163,8 @@ extern struct task_struct *current; /* asm/processor.h */ void cpu_relax(void); +#define memalloc_noio_save() 0 +#define memalloc_noio_restore(x) /********************* ** linux/kthread.h ** @@ -1312,24 +1323,34 @@ int sysfs_create_group(struct kobject *kobj, const struct attribute_group *grp); void sysfs_remove_group(struct kobject *kobj, const struct attribute_group *grp); +int sysfs_create_link(struct kobject *kobj, struct kobject *target, + const char *name); +void sysfs_remove_link(struct kobject *kobj, const char *name); /**************** ** linux/pm.h ** ****************/ +struct device; + typedef struct pm_message { int event; } pm_message_t; struct dev_pm_info { bool is_prepared; }; +struct dev_pm_ops { + int (*suspend)(struct device *dev); + int (*resume)(struct device *dev); +}; + #define PMSG_IS_AUTO(msg) 0 +enum { PM_EVENT_AUTO_SUSPEND = 0x402 }; + /************************ ** linux/pm_runtime.h ** ************************/ -struct device; - int pm_runtime_set_active(struct device *dev); void pm_suspend_ignore_children(struct device *dev, bool enable); void pm_runtime_enable(struct device *dev); @@ -1343,6 +1364,7 @@ void pm_runtime_no_callbacks(struct device *dev); void pm_runtime_set_autosuspend_delay(struct device *dev, int delay); int pm_runtime_get_sync(struct device *dev); int pm_runtime_put_sync(struct device *dev); +int pm_runtime_put(struct device *dev); /*********************** @@ -1356,6 +1378,14 @@ int device_set_wakeup_enable(struct device *dev, bool enable); bool device_can_wakeup(struct device *dev); +/******************** + ** linux/pm_qos.h ** + ********************/ + + enum { PM_QOS_FLAG_NO_POWER_OFF = 1 }; + + int dev_pm_qos_expose_flags(struct device *dev, s32 value); + /******************** ** linux/device.h ** ********************/ @@ -1416,6 +1446,7 @@ struct device_type { void (*release)(struct device *dev); int (*uevent)(struct device *dev, struct kobj_uevent_env *env); char *(*devnode)(struct device *dev, mode_t *mode); + const struct dev_pm_ops *pm; }; struct class @@ -1837,6 +1868,7 @@ extern const struct inode_operations simple_dir_inode_operations; static inline loff_t no_llseek(struct file *file, loff_t offset, int origin) { return -ESPIPE; } +struct inode *file_inode(struct file *f); /******************* ** linux/namei.h ** @@ -2924,6 +2956,7 @@ bool skb_defer_rx_timestamp(struct sk_buff *); void dev_kfree_skb(struct sk_buff *); void dev_kfree_skb_any(struct sk_buff *); +void kfree_skb(struct sk_buff *); /********************* diff --git a/dde_linux/src/lib/usb/main.cc b/dde_linux/src/lib/usb/main.cc index e532f068b6..1f5fbf5a77 100644 --- a/dde_linux/src/lib/usb/main.cc +++ b/dde_linux/src/lib/usb/main.cc @@ -38,9 +38,9 @@ extern "C" void subsys_input_init(); extern "C" void module_evdev_init(); extern "C" void module_hid_init(); extern "C" void module_hid_init_core(); -extern "C" void module_hid_init_generic(); +extern "C" void module_hid_generic_init(); extern "C" void module_usb_stor_init(); -extern "C" void module_ch_init(); +extern "C" void module_ch_driver_init(); extern "C" void start_input_service(void *ep); @@ -67,8 +67,8 @@ static void init(Services *services) /* HID */ module_hid_init_core(); module_hid_init(); - module_hid_init_generic(); - module_ch_init(); + module_hid_generic_init(); + module_ch_driver_init(); } /* host controller */ diff --git a/dde_linux/src/lib/usb/nic/nic.cc b/dde_linux/src/lib/usb/nic/nic.cc index d79442469b..6613933fda 100644 --- a/dde_linux/src/lib/usb/nic/nic.cc +++ b/dde_linux/src/lib/usb/nic/nic.cc @@ -351,7 +351,8 @@ struct sk_buff *_alloc_skb(unsigned int size, bool tx) size = (size + 3) & ~(0x3); - skb->tail = skb->end = skb->start + size; + skb->end = skb->start + size; + skb->tail = skb->start; skb->truesize = size; return skb; @@ -392,6 +393,8 @@ void dev_kfree_skb(struct sk_buff *skb) void dev_kfree_skb_any(struct sk_buff *skb) { dev_kfree_skb(skb); } +void kfree_skb(struct sk_buff *skb) { dev_kfree_skb(skb); } + /** * Reserve 'len' @@ -455,6 +458,13 @@ unsigned int skb_headroom(const struct sk_buff *skb) } +int skb_tailroom(const struct sk_buff *skb) +{ + return skb->end - skb->tail; +} + + + /** * Take 'len' from front */