From 5774a864b17f8cd114a4c266935334928fa1a18b Mon Sep 17 00:00:00 2001 From: Sebastian Sumpf Date: Thu, 24 Oct 2013 15:11:15 +0200 Subject: [PATCH] usb_drv: Fix PHY initialization for DWC3 XHCI Make high speed (HS) and super speed (SS) hub use the same reference clock. Also upgrade some quotas in USB run scripts. Fixes #929. --- dde_linux/run/usb_net.run | 4 ++-- dde_linux/run/usb_storage.run | 2 +- dde_linux/src/lib/usb/arm/platform_arndale/platform.cc | 7 +++++-- dde_linux/src/lib/usb/dummies.c | 2 -- dde_linux/src/lib/usb/include/lx_emul.h | 6 ++++-- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/dde_linux/run/usb_net.run b/dde_linux/run/usb_net.run index b021bff29..99dbb8f33 100644 --- a/dde_linux/run/usb_net.run +++ b/dde_linux/run/usb_net.run @@ -46,11 +46,11 @@ set config { - + - + diff --git a/dde_linux/run/usb_storage.run b/dde_linux/run/usb_storage.run index 2beb8b1c6..72405ac48 100644 --- a/dde_linux/run/usb_storage.run +++ b/dde_linux/run/usb_storage.run @@ -79,7 +79,7 @@ append config { - + diff --git a/dde_linux/src/lib/usb/arm/platform_arndale/platform.cc b/dde_linux/src/lib/usb/arm/platform_arndale/platform.cc index 4d9347bf4..53655875a 100644 --- a/dde_linux/src/lib/usb/arm/platform_arndale/platform.cc +++ b/dde_linux/src/lib/usb/arm/platform_arndale/platform.cc @@ -243,8 +243,11 @@ struct Phy_usb3 : Genode::Mmio /* setup clock */ Phy_clk_rst::access_t clk = 0; - /* set external clock */ - Phy_clk_rst::Ref_clk_sel::set(clk, 3); + /* + * Use same reference clock for high speed + * as for super speed + */ + Phy_clk_rst::Ref_clk_sel::set(clk, 0x2); /* 24 MHz */ Phy_clk_rst::Fsel::set(clk, 0x2a); Phy_clk_rst::Mpll_mult::set(clk, 0x68); diff --git a/dde_linux/src/lib/usb/dummies.c b/dde_linux/src/lib/usb/dummies.c index c23285ede..3df2acc56 100644 --- a/dde_linux/src/lib/usb/dummies.c +++ b/dde_linux/src/lib/usb/dummies.c @@ -191,7 +191,6 @@ s64 ktime_us_delta(const ktime_t later, const ktime_t earlier) { TRACE; return 0 ** linux/timer.h ** *******************/ -int del_timer_sync(struct timer_list *timer) { TRACE; return 0; } unsigned long round_jiffies(unsigned long j) { TRACE; return 1; } void add_timer(struct timer_list *timer) { TRACE; } void set_timer_slack(struct timer_list *time, int slack_hz) { TRACE; } @@ -671,7 +670,6 @@ void dma_unmap_page(struct device *dev, dma_addr_t dma_address, size_t size, enum dma_data_direction direction) { SKIP;; } int dma_mapping_error(struct device *dev, dma_addr_t dma_addr) { SKIP; return 0; } -int dma_set_mask(struct device *dev, u64 mask) { TRACE; return 0; } /***************** diff --git a/dde_linux/src/lib/usb/include/lx_emul.h b/dde_linux/src/lib/usb/include/lx_emul.h index ce4445173..20f2ca3dd 100644 --- a/dde_linux/src/lib/usb/include/lx_emul.h +++ b/dde_linux/src/lib/usb/include/lx_emul.h @@ -953,7 +953,6 @@ struct timer_list { void init_timer(struct timer_list *); int mod_timer(struct timer_list *timer, unsigned long expires); int del_timer(struct timer_list * timer); -int del_timer_sync(struct timer_list * timer); void setup_timer(struct timer_list *timer,void (*function)(unsigned long), unsigned long data); int timer_pending(const struct timer_list * timer); @@ -962,6 +961,9 @@ unsigned long round_jiffies(unsigned long j); void add_timer(struct timer_list *timer); void set_timer_slack(struct timer_list *time, int slack_hz); +static inline +int del_timer_sync(struct timer_list * timer) { return del_timer(timer); } + /********************* ** linux/hrtimer.h ** @@ -1650,7 +1652,7 @@ void dma_free_coherent(struct device *, size_t, void *, dma_addr_t); #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1)) static inline int dma_set_coherent_mask(struct device *dev, u64 mask) { dev->coherent_dma_mask = mask; return 0; } -int dma_set_mask(struct device *dev, u64 mask); +static inline int dma_set_mask(struct device *dev, u64 mask) { *dev->dma_mask = mask; return 0; } /********************* ** linux/uaccess.h **