usb_host_drv: support command timeouts and bool properties

Fixes #4047
This commit is contained in:
Christian Prochaska 2021-03-15 14:54:47 +01:00 committed by Norman Feske
parent 2c85e48a0d
commit 0cfafa1c8f
2 changed files with 22 additions and 12 deletions

View File

@ -840,7 +840,6 @@ int of_device_is_compatible(const struct device_node *device, const char *c
** linux/property.h **
**********************/
bool device_property_read_bool(struct device *dev, const char *propname) { TRACE; return false; }
int device_property_read_u8(struct device *dev, const char *propname, u8 *val) { TRACE; return 0; }
int device_property_read_u32(struct device *dev, const char *propname, u32 *val) { TRACE; return 0; }
@ -949,12 +948,6 @@ ktime_t ktime_mono_to_real(ktime_t mono)
return -1;
}
bool mod_delayed_work(struct workqueue_struct *q, struct delayed_work *w, unsigned long v)
{
TRACE;
return false;
}
int mutex_lock_killable(struct mutex *lock)
{
TRACE_AND_STOP;
@ -989,11 +982,6 @@ int pci_reset_function_locked(struct pci_dev *dev)
return -1;
}
void reinit_completion(struct completion *x)
{
TRACE_AND_STOP;
}
size_t sg_pcopy_from_buffer(struct scatterlist *sgl, unsigned int nents, const void *buf, size_t buflen, off_t skip)
{
TRACE_AND_STOP;

View File

@ -711,6 +711,12 @@ long __wait_completion(struct completion *work, unsigned long timeout)
}
void reinit_completion(struct completion *work)
{
init_completion(work);
}
/***********************
** linux/workqueue.h **
***********************/
@ -718,6 +724,13 @@ long __wait_completion(struct completion *work, unsigned long timeout)
#include <lx_emul/impl/work.h>
bool mod_delayed_work(struct workqueue_struct *wq, struct delayed_work *dwork,
unsigned long delay)
{
return queue_delayed_work(wq, dwork, delay);
}
void tasklet_init(struct tasklet_struct *t, void (*f)(unsigned long), unsigned long d)
{
t->func = f;
@ -1014,6 +1027,15 @@ int device_property_read_string(struct device *dev, const char *propname, const
}
bool device_property_read_bool(struct device *dev, const char *propname)
{
for (property * p = dev->of_node ? dev->of_node->properties : nullptr; p; p = p->next)
if (Genode::strcmp(propname, p->name) == 0) return true;
return false;
}
/****************
** linux/of.h **
****************/