mirror of
https://github.com/genodelabs/genode.git
synced 2025-04-08 03:45:24 +00:00
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.
This commit is contained in:
parent
fc1005c7ee
commit
5774a864b1
@ -46,11 +46,11 @@ set config {
|
||||
<any-service> <parent/> <any-child/> </any-service>
|
||||
</default-route>
|
||||
<start name="timer">
|
||||
<resource name="RAM" quantum="512K"/>
|
||||
<resource name="RAM" quantum="1M"/>
|
||||
<provides> <service name="Timer"/> </provides>
|
||||
</start>
|
||||
<start name="usb_drv">
|
||||
<resource name="RAM" quantum="6M"/>
|
||||
<resource name="RAM" quantum="12M"/>
|
||||
<provides>
|
||||
<service name="Nic"/>
|
||||
</provides>
|
||||
|
@ -79,7 +79,7 @@ append config {
|
||||
<provides> <service name="Timer"/> </provides>
|
||||
</start>
|
||||
<start name="usb_drv">
|
||||
<resource name="RAM" quantum="6M"/>
|
||||
<resource name="RAM" quantum="12M"/>
|
||||
<provides> <service name="Block"/> </provides>
|
||||
<config uhci="yes" ehci="yes" xhci="yes"><storage /></config>
|
||||
</start>
|
||||
|
@ -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);
|
||||
|
@ -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; }
|
||||
|
||||
|
||||
/*****************
|
||||
|
@ -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 **
|
||||
|
Loading…
x
Reference in New Issue
Block a user