dde_linux: remove legacy_rpi_usb_host_drv

* Cleanup the dde_linux port

Fix genodelabs/genode#4965
This commit is contained in:
Stefan Kalkowski 2023-07-12 17:24:24 +02:00 committed by Norman Feske
parent 175ec07c06
commit ec60ad3a80
19 changed files with 2 additions and 6880 deletions

View File

@ -1,66 +0,0 @@
linux-x.x.x/drivers/net/ethernet/freescale/fec.h
linux-x.x.x/drivers/net/ethernet/freescale/fec_main.c
linux-x.x.x/drivers/net/ethernet/freescale/fec_ptp.c
linux-x.x.x/drivers/net/phy/mdio_bus.c
linux-x.x.x/drivers/net/phy/mdio_device.c
linux-x.x.x/drivers/net/phy/mdio-boardinfo.c
linux-x.x.x/drivers/net/phy/mdio-boardinfo.h
linux-x.x.x/drivers/net/phy/phy_device.c
linux-x.x.x/drivers/net/phy/phy.c
linux-x.x.x/drivers/net/phy/phy-c45.c
linux-x.x.x/drivers/net/phy/phy-core.c
linux-x.x.x/drivers/net/phy/at803x.c
linux-x.x.x/net/core/skbuff.c
linux-x.x.x/net/ethernet/eth.c
linux-x.x.x/include/asm-generic/atomic64.h
linux-x.x.x/include/asm-generic/bitops/non-atomic.h
linux-x.x.x/include/asm-generic/bitops/__ffs.h
linux-x.x.x/include/asm-generic/bitops/__fls.h
linux-x.x.x/include/asm-generic/bitops/ffs.h
linux-x.x.x/include/asm-generic/bitops/fls.h
linux-x.x.x/include/asm-generic/bitops/fls64.h
linux-x.x.x/include/linux/cgroup-defs.h
linux-x.x.x/include/linux/errqueue.h
linux-x.x.x/include/linux/ethtool.h
linux-x.x.x/include/linux/fec.h
linux-x.x.x/include/linux/gpio/consumer.h
linux-x.x.x/include/linux/if_ether.h
linux-x.x.x/include/linux/list.h
linux-x.x.x/include/linux/list_nulls.h
linux-x.x.x/include/linux/log2.h
linux-x.x.x/include/linux/mdio.h
linux-x.x.x/include/linux/mii.h
linux-x.x.x/include/linux/mod_devicetable.h
linux-x.x.x/include/linux/net.h
linux-x.x.x/include/linux/netdev_features.h
linux-x.x.x/include/linux/phy.h
linux-x.x.x/include/linux/ptp_clock_kernel.h
linux-x.x.x/include/linux/rbtree.h
linux-x.x.x/include/linux/rculist.h
linux-x.x.x/include/linux/rculist_nulls.h
linux-x.x.x/include/linux/refcount.h
linux-x.x.x/include/linux/skbuff.h
linux-x.x.x/include/linux/socket.h
linux-x.x.x/include/linux/timecounter.h
linux-x.x.x/include/net/dst.h
linux-x.x.x/include/net/dst_ops.h
linux-x.x.x/include/net/neighbour.h
linux-x.x.x/include/net/sock.h
linux-x.x.x/include/net/tcp_states.h
linux-x.x.x/include/net/tso.h
linux-x.x.x/include/uapi/linux/byteorder/little_endian.h
linux-x.x.x/include/uapi/linux/errqueue.h
linux-x.x.x/include/uapi/linux/ethtool.h
linux-x.x.x/include/uapi/linux/if.h
linux-x.x.x/include/uapi/linux/if_ether.h
linux-x.x.x/include/uapi/linux/if_packet.h
linux-x.x.x/include/uapi/linux/mdio.h
linux-x.x.x/include/uapi/linux/mii.h
linux-x.x.x/include/uapi/linux/net.h
linux-x.x.x/include/uapi/linux/net_tstamp.h
linux-x.x.x/include/uapi/linux/neighbour.h
linux-x.x.x/include/uapi/linux/ptp_clock.h
linux-x.x.x/include/uapi/linux/rtnetlink.h
linux-x.x.x/include/uapi/linux/socket.h
linux-x.x.x/include/uapi/linux/sockios.h
linux-x.x.x/include/uapi/linux/swab.h

View File

@ -1 +1 @@
7bf3bf76c9c7c9efdef30f0be5e10b16143dbf95
5a43907af132d86664c0b4595a4e6d7d39d40fc2

View File

@ -1,9 +1,6 @@
LICENSE := GPLv2
VERSION := individual (see sources)
DOWNLOADS := lxip.archive \
fec.archive \
usb_host.archive dwc_otg_host.git usb_hid.archive \
usb_modem.archive usb_net.archive
DOWNLOADS := lxip.archive usb_hid.archive usb_modem.archive usb_net.archive
#
# Tools
@ -14,23 +11,6 @@ $(call check_tool,bison)
FLEX = flex
YACC = bison
#
# The git checkout checks for the existence of SRC_DIR, which is created by the
# Linux extraction, therefore make sure to checkout the GIT sources first.
#
usb_host.archive: dwc_otg_host.git
#
# USB host controller
#
SRC_DIR_USB_HOST := src/drivers/usb_host
VERSION(usb_host) := 4.16.3
URL(usb_host) := https://www.kernel.org/pub/linux/kernel/v4.x/linux-${VERSION(usb_host)}.tar.xz
SHA(usb_host) := 0d6971a81da97e38b974c5eba31a74803bfe41aabc46d406c3acda56306c81a3
DIR(usb_host) := $(SRC_DIR_USB_HOST)
TAR_OPT(usb_host) := --strip-components=1 --files-from - < <(sed 's/-x.x.x/-${VERSION(usb_host)}/g' $(REP_DIR)/usb_host.list)
HASH_INPUT += $(REP_DIR)/usb_host.list
SRC_DIR_USB_HID := src/drivers/usb_hid
VERSION(usb_hid) := 4.16.3
@ -56,14 +36,6 @@ DIR(usb_modem) := $(SRC_DIR_USB_MODEM)
TAR_OPT(usb_modem) := --strip-components=1 --files-from - < <(sed 's/-x.x.x/-${VERSION(usb_modem)}/g' $(REP_DIR)/usb_modem.list)
HASH_INPUT += $(REP_DIR)/usb_modem.list
#
# Raspberry Pi USB controller
#
URL(dwc_otg_host) := https://github.com/cproc/dwc_otg.git
REV(dwc_otg_host) := r5
DIR(dwc_otg_host) := $(SRC_DIR_USB_HOST)/drivers/usb/host
#
# IP stack sources
#
@ -75,24 +47,9 @@ DIR(lxip) := $(SRC_DIR_LXIP)
TAR_OPT(lxip) := --strip-components=1 --files-from - < <(sed 's/-x.x.x/-${VERSION(lxip)}/g' $(REP_DIR)/lxip.list)
HASH_INPUT += $(REP_DIR)/lxip.list
#
# Freescale Ethernet controller
#
SRC_DIR_FEC := src/drivers/nic/fec
VERSION(fec) := 4.16.3
URL(fec) := https://www.kernel.org/pub/linux/kernel/v4.x/linux-${VERSION(fec)}.tar.xz
SHA(fec) := 0d6971a81da97e38b974c5eba31a74803bfe41aabc46d406c3acda56306c81a3
DIR(fec) := $(SRC_DIR_FEC)
TAR_OPT(fec) := --strip-components=1 --files-from - < <(sed 's/-x.x.x/-${VERSION(fec)}/g' $(REP_DIR)/fec.list)
HASH_INPUT += $(REP_DIR)/fec.list
#
# Patches
#
PATCHES += patches/fec_ndev_owner.patch
PATCHES += patches/fec_skbuff_cast.patch
PATCHES += patches/fec_tx_bounce_dma.patch
PATCHES += patches/fec_tx_sync_dma_write.patch
PATCHES += patches/lxip_icmp.patch
PATCHES += patches/lxip_ip_config.patch
PATCHES += patches/lxip_log2.patch
@ -105,11 +62,6 @@ PATCHES += patches/usb_hid_hid.patch
PATCHES += patches/usb_hid_input.patch
PATCHES += patches/usb_hid_usbhid.patch
PATCHES += patches/usb_hid_wacom_sys.patch
PATCHES += patches/usb_host_dwc_otg.patch
PATCHES += patches/usb_host_isoc_bei.patch
PATCHES += patches/usb_host_mem.patch
PATCHES += patches/usb_host_omap.patch
PATCHES += patches/usb_host_update_event_ring.patch
PATCHES += patches/usb_modem_skbuff_cast.patch
PATCHES += patches/usb_net_skbuff_cast.patch
@ -124,14 +76,6 @@ PATCH_OPT(patches/lxip_request_sock.patch) := $(LXIP_OPT)
PATCH_OPT(patches/lxip_sk_wq.patch) := $(LXIP_OPT)
PATCH_OPT(patches/lxip_skbuff_cast.patch) := $(LXIP_OPT)
# USB HOST
USB_HOST_OPT = -p1 -d$(SRC_DIR_USB_HOST)
PATCH_OPT(patches/usb_host_mem.patch) := $(USB_HOST_OPT)
PATCH_OPT(patches/usb_host_omap.patch) := $(USB_HOST_OPT)
PATCH_OPT(patches/usb_host_dwc_otg.patch) := $(USB_HOST_OPT)
PATCH_OPT(patches/usb_host_isoc_bei.patch) := $(USB_HOST_OPT)
PATCH_OPT(patches/usb_host_update_event_ring.patch) := $(USB_HOST_OPT)
# USB HID
USB_HID_OPT = -p1 -d$(SRC_DIR_USB_HID)
PATCH_OPT(patches/usb_hid_usbhid.patch) := $(USB_HID_OPT)
@ -148,10 +92,4 @@ PATCH_OPT(patches/usb_net_skbuff_cast.patch) := $(USB_NET_OPT)
USB_MODEM_OPT = -p1 -d$(SRC_DIR_USB_MODEM)
PATCH_OPT(patches/usb_modem_skbuff_cast.patch) := $(USB_MODEM_OPT)
# Freescale NIC
PATCH_OPT(patches/fec_skbuff_cast.patch) := -p1 -d$(SRC_DIR_FEC)
PATCH_OPT(patches/fec_tx_bounce_dma.patch) := -p1 -d$(SRC_DIR_FEC)
PATCH_OPT(patches/fec_tx_sync_dma_write.patch) := -p1 -d$(SRC_DIR_FEC)
PATCH_OPT(patches/fec_ndev_owner.patch) := -p1 -d$(SRC_DIR_FEC)
# vi: set ft=make :

View File

@ -1,65 +0,0 @@
USB host controller driver
##########################
The driver will start all USB controller types a platform offers
(USB 1.0/2.0/3.0). Controllers can be disabled as attribute in the config node
of the driver. Supported attributes are: 'uhci', 'ohci', 'ehci', and 'xhci'.
!<start name="usb_host_drv">
! <binary name="platform_specific_usb_host_drv_name"/>
! <resource name="RAM" quantum="10M"/>
! <provides><service name="Usb"/></provides>
! <config uhci="yes" ohci="yes" ehci="yes" xhci="yes">
! <report devices="yes"/>
! </config>
!</start>
The optional 'devices' report lists the connected devices and gets updated
when devices are added or removed.
Example report:
!<devices>
! <device label="usb-1-2" vendor_id="0x046d" product_id="0xc077" bus="0x0001" dev="0x0002" class="0x03"/>
! <device label="usb-1-1" vendor_id="0x1d6b" product_id="0x0002" bus="0x0001" dev="0x0001" class="0x09"/>
!</devices>
For every device a unique identifier is generated that is used to access the
USB device. Only devices that have a valid policy configured at the USB driver
can be accessed by a client. The following configuration allows 'comp1' to
access the device 'usb-1-6':
!<start name="usb_host_drv">
! <resource name="RAM" quantum="12M"/>
! <provides><service name="Usb"/></provides>
! <config>
! <report devices="yes"/>
! <policy label="comp1 -> usb-1-6" vendor_id="0x13fe" product_id="0x5200" bus="0x0001" dev="0x0006"/>
! </config>
!</start>
In addition to the mandatory 'label' attribute the policy node also
contains optional attribute tuples of which at least one has to be present.
The 'vendor_id' and 'product_id' tuple selects a device regardless of its
location on the USB bus and is mostly used in static configurations. The
'bus' and 'dev' tuple selects a specific device via its bus locations and
device address. It is mostly used in dynamic configurations because the device
address is not fixed and may change every time the same device is plugged in.
If the class attribute is defined only, the usb host controller driver allows
access to all devives of that class. In that case the actual device is chosen
by the last label given when a session gets opened.
BIOS Handoff
~~~~~~~~~~~~
Per default the USB driver performs a hand off of the USB controller from the
BIOS, since it still may access the controller when booting, for example, from
a USB device. The BIOS hand off induces the execution of BIOS/SMM USB driver
code and potentially DMA operations. Unfortunately, some ACPI tables report
wrong RMRR information, which implicates IOMMU faults on illegal DMA
operations and consequently the hand off may fail after noticeably long
timeouts. Therefore, the hand off can be disabled in the USB driver
configuration like follows.
! <config bios_handoff="no"/>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,175 +0,0 @@
/*
* \brief Startup USB driver library
* \author Sebastian Sumpf
* \date 2013-02-20
*/
/*
* Copyright (C) 2013-2017 Genode Labs GmbH
*
* This file is distributed under the terms of the GNU General Public License
* version 2.
*/
/* Genode */
#include <base/component.h>
#include <base/attached_rom_dataspace.h>
#include <base/sleep.h>
/* Local */
#include <signal.h>
#include <lx_emul.h>
#include <legacy/lx_kit/env.h>
#include <legacy/lx_kit/pci.h>
#include <legacy/lx_kit/irq.h>
#include <legacy/lx_kit/malloc.h>
#include <legacy/lx_kit/scheduler.h>
#include <legacy/lx_kit/timer.h>
#include <legacy/lx_kit/work.h>
using namespace Genode;
extern "C" int subsys_usb_init();
extern "C" void module_raw_driver_init();
extern "C" void start_input_service(void *ep, void *services);
struct workqueue_struct *system_power_efficient_wq;
struct workqueue_struct *system_wq;
struct workqueue_struct *tasklet_wq;
void breakpoint() { Genode::log("BREAK"); }
static void run_linux(void *s)
{
Services *services = (Services *)s;
system_power_efficient_wq = alloc_workqueue("system_power_efficient_wq", 0, 0);
system_wq = alloc_workqueue("system_wq", 0, 0);
tasklet_wq = alloc_workqueue("tasklet_wq", 0, 0);
/* low level interface */
module_raw_driver_init();
/* USB */
subsys_usb_init();
/* host controller */
platform_hcd_init(Lx_kit::env().env(), services);
while (true)
Lx::scheduler().current()->block_and_schedule();
}
static void start_usb_driver(Genode::Env &env)
{
/* initialize USB env */
Lx_kit::construct_env(env);
LX_MUTEX_INIT(init_usb_class_mutex);
LX_MUTEX_INIT(usb_bus_idr_lock);
LX_MUTEX_INIT(usb_port_peer_mutex);
LX_MUTEX_INIT(usbfs_mutex);
/* sets up backend alloc needed by malloc */
backend_alloc_init(env, env.ram(), Lx_kit::env().heap());
Lx::malloc_init(env, Lx_kit::env().heap());
static Services services(env);
Raw::init(env, services.raw_report_device_list);
Lx::scheduler(&env);
Lx::timer(&env, &env.ep(), &Lx_kit::env().heap(), &jiffies);
Lx::Irq::irq(&env.ep(), &Lx_kit::env().heap());
Lx::Work::work_queue(&Lx_kit::env().heap());
static Lx::Task linux(run_linux, &services, "linux", Lx::Task::PRIORITY_0,
Lx::scheduler());
Lx::scheduler().schedule();
}
namespace Usb_driver {
using namespace Genode;
struct Driver_starter { virtual void start_driver() = 0; };
struct Main;
}
struct Usb_driver::Main : Driver_starter
{
Env &_env;
/*
* Defer the startup of the USB driver until the first configuration
* becomes available. This is needed in scenarios where the configuration
* is dynamically generated and supplied to the USB driver via the
* report-ROM service.
*/
struct Initial_config_handler
{
Driver_starter &_driver_starter;
Attached_rom_dataspace _config;
Signal_handler<Initial_config_handler> _config_handler;
void _handle_config()
{
_config.update();
if (_config.xml().type() == "config")
_driver_starter.start_driver();
}
Initial_config_handler(Env &env, Driver_starter &driver_starter)
:
_driver_starter(driver_starter),
_config(env, "config"),
_config_handler(env.ep(), *this, &Initial_config_handler::_handle_config)
{
_config.sigh(_config_handler);
_handle_config();
}
};
void _handle_start()
{
if (_initial_config_handler.constructed()) {
_initial_config_handler.destruct();
start_usb_driver(_env);
}
}
Signal_handler<Main> _start_handler {
_env.ep(), *this, &Main::_handle_start };
Reconstructible<Initial_config_handler> _initial_config_handler { _env, *this };
/*
* Called from 'Initial_config_handler'
*/
void start_driver() override
{
Signal_transmitter(_start_handler).submit();
}
Main(Env &env) : _env(env) { }
};
void Component::construct(Genode::Env &env)
{
/* XXX execute constructors of global statics */
env.exec_static_constructors();
static Usb_driver::Main main(env);
}

View File

@ -1,61 +0,0 @@
/*
* \brief Platform specific definitions
* \author Sebastian Sumpf
* \date 2012-07-06
*
* These functions have to be implemented on all supported platforms.
*/
/*
* Copyright (C) 2012-2017 Genode Labs GmbH
*
* This file is distributed under the terms of the GNU General Public License
* version 2.
*/
#ifndef _PLATFORM_H_
#define _PLATFORM_H_
#include <base/log.h>
#include <util/xml_node.h>
#include <irq_session/capability.h>
#include <legacy/lx_kit/env.h>
struct Services
{
Genode::Env &env;
/* Controller types */
bool uhci = true; /* 1.0 */
bool ohci = true;
bool ehci = true; /* 2.0 */
bool xhci = true; /* 3.0 */
/* report generation */
bool raw_report_device_list = false;
Services(Genode::Env &env) : env(env)
{
using namespace Genode;
Genode::Xml_node config_node = Lx_kit::env().config_rom().xml();
try {
Genode::Xml_node node_report = config_node.sub_node("report");
raw_report_device_list = node_report.attribute_value("devices", false);
} catch (...) { }
uhci = config_node.attribute_value("uhci", uhci);
ohci = config_node.attribute_value("ohci", ohci);
ehci = config_node.attribute_value("ehci", ehci);
xhci = config_node.attribute_value("xhci", xhci);
}
};
void backend_alloc_init(Genode::Env &env, Genode::Ram_allocator &ram, Genode::Allocator &alloc);
void platform_hcd_init(Genode::Env &env, Services *services);
Genode::Irq_session_capability platform_irq_activate(int irq);
#endif /* _PLATFORM_H_ */

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +0,0 @@
#ifndef _RAW_H_
#define _RAW_H_
struct usb_device;
struct usb_driver;
extern struct usb_device_driver raw_driver;
extern struct usb_driver raw_intf_driver;
int raw_notify(struct notifier_block *nb, unsigned long action, void *data);
#endif /* _RAW_H_ */

View File

@ -1,94 +0,0 @@
/*
* \brief Low level USB access driver
* \author Sebastian Sumpf
* \date 2014-11-11
*/
/*
* Copyright (C) 2014-2017 Genode Labs GmbH
*
* This file is distributed under the terms of the GNU General Public License
* version 2.
*/
#include <linux/usb.h>
#include "raw.h"
static int raw_probe(struct usb_device *udev)
{
printk("RAW: vendor: %x product: %x dev %p\n",
udev->descriptor.idVendor, udev->descriptor.idProduct, udev);
return -ENODEV;
}
static void raw_disconnect(struct usb_device *udev)
{
printk("driver disconnect called\n");
}
struct usb_device_driver raw_driver =
{
.name = "raw",
.probe = raw_probe,
.disconnect = raw_disconnect,
.supports_autosuspend = 0,
};
static int raw_intf_probe(struct usb_interface *intf,
struct usb_device_id const *id)
{
struct usb_device *udev = interface_to_usbdev(intf);
printk("RAW_INTF: vendor: %04x product: %04x\n", udev->descriptor.idVendor,
udev->descriptor.idProduct);
return -ENODEV;
}
void raw_intf_disconnect(struct usb_interface *intf) { }
static const struct usb_device_id raw_intf_id_table[] = {
{ .driver_info = 1 }
};
struct usb_driver raw_intf_driver =
{
.name = "rawintf",
.probe = raw_intf_probe,
.disconnect = raw_intf_disconnect,
.supports_autosuspend = 0,
};
struct notifier_block usb_nb =
{
.notifier_call = raw_notify
};
static int raw_driver_init(void)
{
int err;
if ((err = usb_register_device_driver(&raw_driver, THIS_MODULE)))
return err;
printk("RAW: driver registered\n");
if ((err = usb_register(&raw_intf_driver)))
return err;
printk("RAW: interface driver registered\n");
usb_register_notify(&usb_nb);
printk("RAW: notify function registered\n");
return 0;
}
module_init(raw_driver_init);

View File

@ -1,52 +0,0 @@
/*
* \brief Main-signal receiver and signal-helper functions
* \author Sebastian Sumpf <sebastian.sumpf@genode-labs.com>
* \date 2012-05-23
*/
/*
* Copyright (C) 2012-2017 Genode Labs GmbH
*
* This file is distributed under the terms of the GNU General Public License
* version 2.
*/
#ifndef _SIGNAL_H_
#define _SIGNAL_H_
#include <platform.h>
#include <base/signal.h>
static bool const verbose = false;
/**
* Helper that holds sender and entrypoint
*/
class Signal_helper
{
private:
Genode::Env &_env;
Genode::Signal_transmitter _sender;
public:
Signal_helper(Genode::Env &env) : _env(env) { }
Genode::Entrypoint &ep() { return _env.ep(); }
Genode::Signal_transmitter &sender() { return _sender; }
Genode::Parent &parent() { return _env.parent(); }
Genode::Env &env() { return _env; }
Genode::Ram_allocator &ram() { return _env.ram(); }
Genode::Region_map &rm() { return _env.rm(); }
};
namespace Raw
{
void init(Genode::Env &env, bool report_device_list);
}
#endif /* _SIGNAL_H_ */

View File

@ -1,256 +0,0 @@
/*
* \brief ARM specific implemenations used on all SOCs
* \author Stefan Kalkowski
* \date 2020-08-18
*/
/*
* Copyright (C) 2020 Genode Labs GmbH
*
* This file is distributed under the terms of the GNU General Public License
* version 2.
*/
#include <platform_session/device.h>
#include <platform.h>
#include <lx_emul.h>
#include <legacy/lx_kit/backend_alloc.h>
#include <legacy/lx_kit/irq.h>
#include <legacy/lx_kit/malloc.h>
using namespace Genode;
struct Io_mem : List<Io_mem>::Element
{
static addr_t io_mem_start;
Io_mem_dataspace_capability cap;
addr_t start;
size_t size;
Constructible<Attached_dataspace> ds {};
Io_mem(Io_mem_dataspace_capability cap,
addr_t off,
size_t size,
List<Io_mem> & list)
: cap(cap), start(io_mem_start+off), size(size)
{
io_mem_start += align_addr(off+size+PAGE_SIZE, PAGE_SHIFT);
list.insert(this);
}
};
struct Irq : List<Irq>::Element
{
static unsigned irq_start;
Irq_session_capability cap;
unsigned nr { irq_start++ };
Irq(Irq_session_capability cap, List<Irq> & list)
: cap(cap) { list.insert(this); }
};
struct Resource_env
{
Platform::Connection platform;
List<Io_mem> io_mem_list;
List<Irq> irq_list;
Resource_env(Env & env) : platform(env) { };
};
enum {
MAX_RESOURCES = 64,
IO_MEM_START = 0xf0000,
IRQ_START = 32,
};
addr_t Io_mem::io_mem_start = IO_MEM_START;
unsigned Irq::irq_start = IRQ_START;
static Resource_env & resource_env(Genode::Env * env = nullptr)
{
static Resource_env r_env { *env };
return r_env;
}
void lx_platform_device_init()
{
using String = String<64>;
using Device = Platform::Device;
unsigned p_id = 0;
resource_env().platform.with_xml([&] (Xml_node & xml)
{
xml.for_each_sub_node("device", [&] (Xml_node node)
{
Device::Name name = node.attribute_value("name", Device::Name());
Device::Name type = node.attribute_value("type", Device::Name());
using Platform::Device_interface;
Capability<Device_interface> device_cap =
resource_env().platform.acquire_device(name);
platform_device *pdev = (platform_device *)kzalloc(sizeof(platform_device), 0);
pdev->name = (char *)kzalloc(64,0);
copy_cstring((char*)pdev->name, name.string(), 64);
pdev->id = p_id++;
unsigned res_count = 0;
pdev->resource = (resource*) kzalloc(MAX_RESOURCES*sizeof(resource), 0);
node.for_each_sub_node("io_mem", [&] (Xml_node node)
{
if (res_count >= MAX_RESOURCES)
return;
Device_interface::Range range { };
Io_mem_session_client io_mem_client {
device_cap.call<Device_interface::Rpc_io_mem>(res_count, range) };
Io_mem & iom = *new (Lx_kit::env().heap())
Io_mem(io_mem_client.dataspace(), range.start, range.size,
resource_env().io_mem_list);
pdev->resource[res_count++] = { iom.start, iom.start+iom.size-1,
"io_mem", IORESOURCE_MEM };
});
pdev->num_resources = res_count;
res_count = 0;
node.for_each_sub_node("irq", [&] (Xml_node node)
{
if (res_count+pdev->num_resources >= MAX_RESOURCES)
return;
Irq_session_capability irq_cap =
device_cap.call<Device_interface::Rpc_irq>(res_count);
Irq & irq = *new (Lx_kit::env().heap())
Irq(irq_cap, resource_env().irq_list);
pdev->resource[pdev->num_resources+res_count++] =
{ irq.nr, irq.nr, "irq", IORESOURCE_IRQ };
});
pdev->num_resources += res_count;
pdev->dev.of_node = (device_node*)kzalloc(sizeof(device_node), 0);
pdev->dev.of_node->dev = &pdev->dev;
property ** prop = &pdev->dev.of_node->properties;
*prop = (property*) kzalloc(sizeof(property), 0);
(*prop)->name = "compatible";
(*prop)->value = kzalloc(64,0);
copy_cstring((char*)(*prop)->value, type.string(), 64);
prop = &(*prop)->next;
node.for_each_sub_node("property", [&] (Xml_node node) {
*prop = (property*) kzalloc(sizeof(property), 0);
(*prop)->name = (char*)kzalloc(64,0);
(*prop)->value = kzalloc(64,0);
copy_cstring((char*)(*prop)->name, node.attribute_value("name", String()).string(), 64);
copy_cstring((char*)(*prop)->value, node.attribute_value("value", String()).string(), 64);
prop = &(*prop)->next;
});
/*
* Needed for DMA buffer allocation. See 'hcd_buffer_alloc' in 'buffer.c'
*/
static u64 dma_mask = ~(u64)0;
pdev->dev.dma_mask = &dma_mask;
pdev->dev.coherent_dma_mask = ~0;
platform_device_register(pdev);
});
});
resource_env().platform.update();
}
/****************************
** lx_kit/backend_alloc.h **
****************************/
void backend_alloc_init(Env & env, Ram_allocator&, Allocator&)
{
resource_env(&env);
}
Ram_dataspace_capability Lx::backend_alloc(addr_t size, Cache cache)
{
return resource_env().platform.alloc_dma_buffer(size, cache);
}
void Lx::backend_free(Ram_dataspace_capability cap)
{
return resource_env().platform.free_dma_buffer(cap);
}
Genode::addr_t Lx::backend_dma_addr(Genode::Ram_dataspace_capability cap)
{
return resource_env().platform.dma_addr(cap);
}
/**********************
** asm-generic/io.h **
**********************/
void * _ioremap(phys_addr_t phys_addr, unsigned long size, int)
{
for (Io_mem * iom = resource_env().io_mem_list.first(); iom; iom = iom->next()) {
if (iom->start <= phys_addr && iom->start+iom->size >= phys_addr+size) {
iom->ds.construct(Lx_kit::env().env().rm(), iom->cap);
addr_t off = phys_addr - iom->start;
off += iom->start & (addr_t)(PAGE_SIZE-1);
return (void*)((addr_t)iom->ds->local_addr<void>() + off);
}
}
warning("did not found physical resource ", (void*)phys_addr);
return nullptr;
}
void *ioremap(phys_addr_t offset, unsigned long size)
{
return _ioremap(offset, size, 0);
}
/***********************
** linux/interrupt.h **
***********************/
extern "C" int request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags,
const char *name, void *dev)
{
for (Irq * i = resource_env().irq_list.first(); i; i = i->next()) {
if (i->nr != irq) { continue; }
Lx::Irq::irq().request_irq(i->cap, irq, handler, dev);
}
return 0;
}
int devm_request_irq(struct device *dev, unsigned int irq, irq_handler_t handler, unsigned long irqflags, const char *devname, void *dev_id)
{
return request_irq(irq, handler, irqflags, devname, dev_id);
}

View File

@ -1,41 +0,0 @@
/*
* \brief USB initialization for Raspberry Pi
* \author Norman Feske
* \date 2013-09-11
*/
/*
* Copyright (C) 2013-2017 Genode Labs GmbH
*
* This file is distributed under the terms of the GNU General Public License
* version 2.
*/
/* emulation */
#include <platform.h>
#include <lx_emul.h>
/* dwc-otg */
#define new new_
#include <dwc_otg_dbg.h>
#undef new
using namespace Genode;
/*******************
** Init function **
*******************/
extern "C" void module_dwc_otg_driver_init();
extern bool fiq_enable, fiq_fsm_enable;
void platform_hcd_init(Genode::Env &env, Services *services)
{
/* disable fiq optimization */
fiq_enable = false;
fiq_fsm_enable = false;
module_dwc_otg_driver_init();
lx_platform_device_init();
}

View File

@ -1,47 +0,0 @@
include $(REP_DIR)/src/drivers/usb_host/target.inc
TARGET = legacy_rpi_usb_host_drv
REQUIRES = arm_v6
INC_DIR += $(REP_DIR)/src/drivers/usb_host/spec/arm
INC_DIR += $(REP_DIR)/src/include/spec/arm
SRC_CC += spec/arm/platform.cc
SRC_CC += spec/rpi/platform.cc
SRC_C += dwc_common_port/dwc_cc.c
SRC_C += dwc_common_port/dwc_common_linux.c
SRC_C += dwc_common_port/dwc_crypto.c
SRC_C += dwc_common_port/dwc_dh.c
SRC_C += dwc_common_port/dwc_mem.c
SRC_C += dwc_common_port/dwc_modpow.c
SRC_C += dwc_common_port/dwc_notifier.c
SRC_C += dwc_otg/dwc_otg_adp.c
SRC_C += dwc_otg/dwc_otg_attr.c
SRC_C += dwc_otg/dwc_otg_cfi.c
SRC_C += dwc_otg/dwc_otg_cil.c
SRC_C += dwc_otg/dwc_otg_cil_intr.c
SRC_C += dwc_otg/dwc_otg_driver.c
SRC_C += dwc_otg/dwc_otg_hcd.c
SRC_C += dwc_otg/dwc_otg_hcd_ddma.c
SRC_C += dwc_otg/dwc_otg_hcd_intr.c
SRC_C += dwc_otg/dwc_otg_hcd_linux.c
SRC_C += dwc_otg/dwc_otg_hcd_queue.c
CC_OPT += -DDWC_LINUX -DPLATFORM_INTERFACE
# needed for 'ehci-hcd.c', which we don't use on the rpi, but it is still
# part of the generic usb USB driver
CC_OPT += -DCONFIG_USB_EHCI_PCI=1
# for 'dwc_otg_hcd_linux.c' for enabling the FIQ, which we don't use anyway
CC_OPT += -DINTERRUPT_VC_USB=9
# for 'dwc_otg_driver.c' for preventing calls to set_irq_type
CC_OPT += -DIRQF_TRIGGER_LOW=1
INC_DIR += $(LX_CONTRIB_DIR)/drivers/usb/host/dwc_common_port \
$(LX_CONTRIB_DIR)/drivers/usb/host/dwc_otg \
$(REP_DIR)/src/lib/usb_host/spec/arm
vpath %.c $(LX_CONTRIB_DIR)/drivers/usb/host

View File

@ -1,69 +0,0 @@
LX_CONTRIB_DIR := $(call select_from_ports,dde_linux)/src/drivers/usb_host
SRC_CC = main.cc lx_emul.cc raw.cc
SRC_C = dummies.c raw_driver.c
LIBS = base usb_host_include lx_kit_setjmp format
CC_CXX_WARN_STRICT =
INC_DIR += $(PRG_DIR)
INC_DIR += $(REP_DIR)/src/drivers/usb_host
INC_DIR += $(REP_DIR)/src/include
# lx_kit
SRC_CC += lx_kit/printf.cc
SRC_CC += lx_kit/bug.cc
SRC_CC += lx_kit/work.cc
SRC_CC += lx_kit/timer.cc
SRC_CC += lx_kit/scheduler.cc
SRC_CC += lx_kit/irq.cc
SRC_CC += lx_kit/malloc.cc
SRC_CC += lx_kit/env.cc
# contrib code
SRC_C += usb/common/common.c
SRC_C += usb/core/buffer.c
SRC_C += usb/core/config.c
SRC_C += usb/core/devices.c
SRC_C += usb/core/driver.c
SRC_C += usb/core/endpoint.c
SRC_C += usb/core/file.c
SRC_C += usb/core/generic.c
SRC_C += usb/core/hcd.c
SRC_C += usb/core/hub.c
SRC_C += usb/core/message.c
SRC_C += usb/core/notify.c
SRC_C += usb/core/port.c
SRC_C += usb/core/quirks.c
SRC_C += usb/core/urb.c
SRC_C += usb/core/usb.c
SRC_C += usb/host/ehci-hcd.c
SRC_C += usb/host/xhci-dbg.c
SRC_C += usb/host/xhci-hub.c
SRC_C += usb/host/xhci-mem.c
SRC_C += usb/host/xhci-ring.c
SRC_C += usb/host/xhci.c
SRC_C += lib/ctype.c
SRC_C += lib/find_bit.c
CC_OPT += -U__linux__
CC_OPT += -D__KERNEL__
CC_OPT += -DCONFIG_OF=1
CC_OPT += -DCONFIG_USB_DEVICEFS=1
CC_OPT += -DCONFIG_HOTPLUG=1
CC_OPT += -DCONFIG_USB_PHY=1
CC_OPT += -DCONFIG_HAS_DMA=1
CC_C_OPT += -std=gnu89
CC_C_OPT += -Wno-pointer-sign
CC_C_OPT += -Wno-unused-variable
CC_C_OPT += -Wno-unused-function
CC_C_OPT += -Wno-implicit-int
CC_C_OPT += -Wno-unused-but-set-variable
CC_C_OPT += -Wno-uninitialized
CC_C_OPT += -Wno-maybe-uninitialized
CC_C_OPT += -Wno-unused-label
CC_C_OPT += -Wno-format
vpath lib/ctype.c $(LX_CONTRIB_DIR)
vpath lib/find_bit.c $(LX_CONTRIB_DIR)
vpath %.c $(LX_CONTRIB_DIR)/drivers
vpath %.cc $(REP_DIR)/src/lib/legacy
vpath % $(REP_DIR)/src/drivers/usb_host

View File

@ -1,180 +0,0 @@
linux-x.x.x/drivers/hid/hid-cherry.c
linux-x.x.x/drivers/hid/hid-core.c
linux-x.x.x/drivers/hid/hid-generic.c
linux-x.x.x/drivers/hid/hid-ids.h
linux-x.x.x/drivers/hid/hid-input.c
linux-x.x.x/drivers/hid/hid-microsoft.c
linux-x.x.x/drivers/hid/hid-multitouch.c
linux-x.x.x/drivers/hid/wacom.h
linux-x.x.x/drivers/hid/wacom_sys.c
linux-x.x.x/drivers/hid/wacom_wac.c
linux-x.x.x/drivers/hid/wacom_wac.h
linux-x.x.x/drivers/hid/usbhid/hid-core.c
linux-x.x.x/drivers/hid/usbhid/hid-quirks.c
linux-x.x.x/drivers/hid/usbhid/usbhid.h
linux-x.x.x/drivers/input/evdev.c
linux-x.x.x/drivers/input/input-compat.h
linux-x.x.x/drivers/input/input-mt.c
linux-x.x.x/drivers/input/input.c
linux-x.x.x/drivers/net/usb/asix_common.c
linux-x.x.x/drivers/net/usb/asix_devices.c
linux-x.x.x/drivers/net/usb/asix.h
linux-x.x.x/drivers/net/usb/ax88172a.c
linux-x.x.x/drivers/net/usb/ax88179_178a.c
linux-x.x.x/drivers/net/usb/cdc_ether.c
linux-x.x.x/drivers/net/usb/rndis_host.c
linux-x.x.x/drivers/net/usb/smsc95xx.h
linux-x.x.x/drivers/net/usb/smsc95xx.c
linux-x.x.x/drivers/net/usb/usbnet.c
linux-x.x.x/drivers/scsi/constants.c
linux-x.x.x/drivers/scsi/scsi_logging.h
linux-x.x.x/drivers/scsi/scsi.c
linux-x.x.x/drivers/scsi/scsi_priv.h
linux-x.x.x/drivers/usb/common/common.c
linux-x.x.x/drivers/usb/core/buffer.c
linux-x.x.x/drivers/usb/core/config.c
linux-x.x.x/drivers/usb/core/devices.c
linux-x.x.x/drivers/usb/core/driver.c
linux-x.x.x/drivers/usb/core/endpoint.c
linux-x.x.x/drivers/usb/core/file.c
linux-x.x.x/drivers/usb/core/generic.c
linux-x.x.x/drivers/usb/core/hcd.c
linux-x.x.x/drivers/usb/core/hcd-pci.c
linux-x.x.x/drivers/usb/core/hub.h
linux-x.x.x/drivers/usb/core/hub.c
linux-x.x.x/drivers/usb/core/message.c
linux-x.x.x/drivers/usb/core/notify.c
linux-x.x.x/drivers/usb/core/port.c
linux-x.x.x/drivers/usb/core/quirks.c
linux-x.x.x/drivers/usb/core/urb.c
linux-x.x.x/drivers/usb/core/usb.h
linux-x.x.x/drivers/usb/core/usb.c
linux-x.x.x/drivers/usb/dwc3/core.h
linux-x.x.x/drivers/usb/dwc3/core.c
linux-x.x.x/drivers/usb/dwc3/debug.h
linux-x.x.x/drivers/usb/dwc3/dwc3-exynos.c
linux-x.x.x/drivers/usb/dwc3/gadget.h
linux-x.x.x/drivers/usb/dwc3/host.c
linux-x.x.x/drivers/usb/dwc3/io.h
linux-x.x.x/drivers/usb/dwc3/platform_data.h
linux-x.x.x/drivers/usb/dwc3/trace.h
linux-x.x.x/drivers/usb/host/ehci-dbg.c
linux-x.x.x/drivers/usb/host/ehci-exynos.c
linux-x.x.x/drivers/usb/host/ehci.h
linux-x.x.x/drivers/usb/host/ehci-hcd.c
linux-x.x.x/drivers/usb/host/ehci-hub.c
linux-x.x.x/drivers/usb/host/ehci-mem.c
linux-x.x.x/drivers/usb/host/ehci-omap.c
linux-x.x.x/drivers/usb/host/ehci-pci.c
linux-x.x.x/drivers/usb/host/ehci-q.c
linux-x.x.x/drivers/usb/host/ehci-sched.c
linux-x.x.x/drivers/usb/host/ehci-sysfs.c
linux-x.x.x/drivers/usb/host/ehci-timer.c
linux-x.x.x/drivers/usb/host/ohci-hcd.c
linux-x.x.x/drivers/usb/host/ohci.h
linux-x.x.x/drivers/usb/host/ohci-hub.c
linux-x.x.x/drivers/usb/host/ohci-dbg.c
linux-x.x.x/drivers/usb/host/ohci-mem.c
linux-x.x.x/drivers/usb/host/ohci-q.c
linux-x.x.x/drivers/usb/host/ohci-pci.c
linux-x.x.x/drivers/usb/host/pci-quirks.h
linux-x.x.x/drivers/usb/host/pci-quirks.c
linux-x.x.x/drivers/usb/host/uhci-debug.c
linux-x.x.x/drivers/usb/host/uhci-hcd.h
linux-x.x.x/drivers/usb/host/uhci-hcd.c
linux-x.x.x/drivers/usb/host/uhci-hub.c
linux-x.x.x/drivers/usb/host/uhci-pci.c
linux-x.x.x/drivers/usb/host/uhci-q.c
linux-x.x.x/drivers/usb/host/xhci-dbg.c
linux-x.x.x/drivers/usb/host/xhci-ext-caps.h
linux-x.x.x/drivers/usb/host/xhci.h
linux-x.x.x/drivers/usb/host/xhci-hub.c
linux-x.x.x/drivers/usb/host/xhci-mem.c
linux-x.x.x/drivers/usb/host/xhci-mvebu.h
linux-x.x.x/drivers/usb/host/xhci-rcar.h
linux-x.x.x/drivers/usb/host/xhci.c
linux-x.x.x/drivers/usb/host/xhci-pci.c
linux-x.x.x/drivers/usb/host/xhci-plat.c
linux-x.x.x/drivers/usb/host/xhci-ring.c
linux-x.x.x/drivers/usb/host/xhci-trace.h
linux-x.x.x/drivers/usb/storage/debug.h
linux-x.x.x/drivers/usb/storage/initializers.h
linux-x.x.x/drivers/usb/storage/initializers.c
linux-x.x.x/drivers/usb/storage/option_ms.h
linux-x.x.x/drivers/usb/storage/option_ms.c
linux-x.x.x/drivers/usb/storage/protocol.h
linux-x.x.x/drivers/usb/storage/protocol.c
linux-x.x.x/drivers/usb/storage/scsiglue.h
linux-x.x.x/drivers/usb/storage/scsiglue.c
linux-x.x.x/drivers/usb/storage/sierra_ms.h
linux-x.x.x/drivers/usb/storage/sierra_ms.c
linux-x.x.x/drivers/usb/storage/transport.h
linux-x.x.x/drivers/usb/storage/transport.c
linux-x.x.x/drivers/usb/storage/unusual_alauda.h
linux-x.x.x/drivers/usb/storage/unusual_cypress.h
linux-x.x.x/drivers/usb/storage/unusual_datafab.h
linux-x.x.x/drivers/usb/storage/unusual_devs.h
linux-x.x.x/drivers/usb/storage/unusual_ene_ub6250.h
linux-x.x.x/drivers/usb/storage/unusual_freecom.h
linux-x.x.x/drivers/usb/storage/unusual_isd200.h
linux-x.x.x/drivers/usb/storage/unusual_jumpshot.h
linux-x.x.x/drivers/usb/storage/unusual_karma.h
linux-x.x.x/drivers/usb/storage/unusual_onetouch.h
linux-x.x.x/drivers/usb/storage/unusual_realtek.h
linux-x.x.x/drivers/usb/storage/unusual_sddr09.h
linux-x.x.x/drivers/usb/storage/unusual_sddr55.h
linux-x.x.x/drivers/usb/storage/unusual_usbat.h
linux-x.x.x/drivers/usb/storage/usb.h
linux-x.x.x/drivers/usb/storage/usb.c
linux-x.x.x/drivers/usb/storage/usual-tables.c
linux-x.x.x/include/asm-generic/bitops/__ffs.h
linux-x.x.x/include/asm-generic/bitops/__fls.h
linux-x.x.x/include/asm-generic/bitops/fls64.h
linux-x.x.x/include/asm-generic/bitops/non-atomic.h
linux-x.x.x/include/asm-generic/ioctl.h
linux-x.x.x/include/linux/ctype.h
linux-x.x.x/include/linux/hiddev.h
linux-x.x.x/include/linux/hid.h
linux-x.x.x/include/linux/input.h
linux-x.x.x/include/linux/input/mt.h
linux-x.x.x/include/linux/leds.h
linux-x.x.x/include/linux/list.h
linux-x.x.x/include/linux/log2.h
linux-x.x.x/include/linux/mod_devicetable.h
linux-x.x.x/include/linux/netdev_features.h
linux-x.x.x/include/linux/pci_ids.h
linux-x.x.x/include/linux/platform_data/usb-omap.h
linux-x.x.x/include/linux/power_supply.h
linux-x.x.x/include/linux/rndis.h
linux-x.x.x/include/linux/swab.h
linux-x.x.x/include/linux/usb.h
linux-x.x.x/include/linux/usb_usual.h
linux-x.x.x/include/linux/usb/ch9.h
linux-x.x.x/include/linux/usb/cdc.h
linux-x.x.x/include/linux/usb/ehci-dbgp.h
linux-x.x.x/include/linux/usb/ehci_def.h
linux-x.x.x/include/linux/usb/hcd.h
linux-x.x.x/include/linux/usb/input.h
linux-x.x.x/include/linux/usb/rndis_host.h
linux-x.x.x/include/linux/io-64-nonatomic-lo-hi.h
linux-x.x.x/include/linux/usb/otg.h
linux-x.x.x/include/linux/usb/phy.h
linux-x.x.x/include/linux/usb/quirks.h
linux-x.x.x/include/linux/usb/storage.h
linux-x.x.x/include/linux/usb/usbnet.h
linux-x.x.x/include/scsi/scsi.h
linux-x.x.x/include/scsi/scsi_host.h
linux-x.x.x/include/scsi/scsi_proto.h
linux-x.x.x/include/uapi/asm-generic/ioctl.h
linux-x.x.x/include/uapi/linux/byteorder/little_endian.h
linux-x.x.x/include/uapi/linux/hid.h
linux-x.x.x/include/uapi/linux/input.h
linux-x.x.x/include/uapi/linux/input-event-codes.h
linux-x.x.x/include/uapi/linux/pci_regs.h
linux-x.x.x/include/uapi/linux/stat.h
linux-x.x.x/include/uapi/linux/swab.h
linux-x.x.x/include/uapi/linux/usb/ch11.h
linux-x.x.x/include/uapi/linux/usb/ch9.h
linux-x.x.x/include/uapi/linux/usb/cdc.h
linux-x.x.x/lib/ctype.c
linux-x.x.x/lib/int_sqrt.c

View File

@ -1,135 +0,0 @@
linux-x.x.x/drivers/usb/chipidea/bits.h
linux-x.x.x/drivers/usb/chipidea/ci.h
linux-x.x.x/drivers/usb/chipidea/ci_hdrc_imx.c
linux-x.x.x/drivers/usb/chipidea/ci_hdrc_imx.h
linux-x.x.x/drivers/usb/chipidea/ci_hdrc_msm.c
linux-x.x.x/drivers/usb/chipidea/ci_hdrc_usb2.c
linux-x.x.x/drivers/usb/chipidea/ci_hdrc_zevio.c
linux-x.x.x/drivers/usb/chipidea/core.c
linux-x.x.x/drivers/usb/chipidea/host.c
linux-x.x.x/drivers/usb/chipidea/host.h
linux-x.x.x/drivers/usb/chipidea/otg.c
linux-x.x.x/drivers/usb/chipidea/otg.h
linux-x.x.x/drivers/usb/chipidea/otg_fsm.h
linux-x.x.x/drivers/usb/chipidea/udc.h
linux-x.x.x/drivers/usb/chipidea/usbmisc_imx.c
linux-x.x.x/drivers/usb/common/common.c
linux-x.x.x/drivers/usb/core/buffer.c
linux-x.x.x/drivers/usb/core/config.c
linux-x.x.x/drivers/usb/core/devices.c
linux-x.x.x/drivers/usb/core/driver.c
linux-x.x.x/drivers/usb/core/endpoint.c
linux-x.x.x/drivers/usb/core/file.c
linux-x.x.x/drivers/usb/core/generic.c
linux-x.x.x/drivers/usb/core/hcd.c
linux-x.x.x/drivers/usb/core/hcd-pci.c
linux-x.x.x/drivers/usb/core/hub.h
linux-x.x.x/drivers/usb/core/hub.c
linux-x.x.x/drivers/usb/core/message.c
linux-x.x.x/drivers/usb/core/otg_whitelist.h
linux-x.x.x/drivers/usb/core/notify.c
linux-x.x.x/drivers/usb/core/port.c
linux-x.x.x/drivers/usb/core/quirks.c
linux-x.x.x/drivers/usb/core/urb.c
linux-x.x.x/drivers/usb/core/usb.h
linux-x.x.x/drivers/usb/core/usb.c
linux-x.x.x/drivers/usb/dwc3/core.c
linux-x.x.x/drivers/usb/dwc3/core.h
linux-x.x.x/drivers/usb/dwc3/debug.h
linux-x.x.x/drivers/usb/dwc3/dwc3-exynos.c
linux-x.x.x/drivers/usb/dwc3/gadget.h
linux-x.x.x/drivers/usb/dwc3/host.c
linux-x.x.x/drivers/usb/dwc3/io.h
linux-x.x.x/drivers/usb/dwc3/trace.h
linux-x.x.x/drivers/usb/host/ehci-dbg.c
linux-x.x.x/drivers/usb/host/ehci-exynos.c
linux-x.x.x/drivers/usb/host/ehci.h
linux-x.x.x/drivers/usb/host/ehci-hcd.c
linux-x.x.x/drivers/usb/host/ehci-hub.c
linux-x.x.x/drivers/usb/host/ehci-mem.c
linux-x.x.x/drivers/usb/host/ehci-omap.c
linux-x.x.x/drivers/usb/host/ehci-pci.c
linux-x.x.x/drivers/usb/host/ehci-q.c
linux-x.x.x/drivers/usb/host/ehci-sched.c
linux-x.x.x/drivers/usb/host/ehci-sysfs.c
linux-x.x.x/drivers/usb/host/ehci-timer.c
linux-x.x.x/drivers/usb/host/ohci-hcd.c
linux-x.x.x/drivers/usb/host/ohci.h
linux-x.x.x/drivers/usb/host/ohci-hub.c
linux-x.x.x/drivers/usb/host/ohci-dbg.c
linux-x.x.x/drivers/usb/host/ohci-mem.c
linux-x.x.x/drivers/usb/host/ohci-q.c
linux-x.x.x/drivers/usb/host/ohci-pci.c
linux-x.x.x/drivers/usb/host/pci-quirks.h
linux-x.x.x/drivers/usb/host/pci-quirks.c
linux-x.x.x/drivers/usb/host/uhci-debug.c
linux-x.x.x/drivers/usb/host/uhci-hcd.h
linux-x.x.x/drivers/usb/host/uhci-hcd.c
linux-x.x.x/drivers/usb/host/uhci-hub.c
linux-x.x.x/drivers/usb/host/uhci-pci.c
linux-x.x.x/drivers/usb/host/uhci-q.c
linux-x.x.x/drivers/usb/host/xhci-dbg.c
linux-x.x.x/drivers/usb/host/xhci-dbgcap.h
linux-x.x.x/drivers/usb/host/xhci-debugfs.h
linux-x.x.x/drivers/usb/host/xhci-ext-caps.h
linux-x.x.x/drivers/usb/host/xhci.h
linux-x.x.x/drivers/usb/host/xhci-hub.c
linux-x.x.x/drivers/usb/host/xhci-mem.c
linux-x.x.x/drivers/usb/host/xhci-mtk.h
linux-x.x.x/drivers/usb/host/xhci-mvebu.h
linux-x.x.x/drivers/usb/host/xhci-rcar.h
linux-x.x.x/drivers/usb/host/xhci.c
linux-x.x.x/drivers/usb/host/xhci-pci.c
linux-x.x.x/drivers/usb/host/xhci-plat.c
linux-x.x.x/drivers/usb/host/xhci-plat.h
linux-x.x.x/drivers/usb/host/xhci-ring.c
linux-x.x.x/drivers/usb/host/xhci-trace.h
linux-x.x.x/drivers/usb/phy/phy-mxs-usb.c
linux-x.x.x/include/asm-generic/atomic64.h
linux-x.x.x/include/asm-generic/bitops/__ffs.h
linux-x.x.x/include/asm-generic/bitops/__fls.h
linux-x.x.x/include/asm-generic/bitops/fls64.h
linux-x.x.x/include/asm-generic/bitops/non-atomic.h
linux-x.x.x/include/asm-generic/ioctl.h
linux-x.x.x/include/linux/ctype.h
linux-x.x.x/include/linux/extcon.h
linux-x.x.x/include/linux/hiddev.h
linux-x.x.x/include/linux/hid.h
linux-x.x.x/include/linux/input.h
linux-x.x.x/include/linux/input/mt.h
linux-x.x.x/include/linux/kfifo.h
linux-x.x.x/include/linux/list.h
linux-x.x.x/include/linux/log2.h
linux-x.x.x/include/linux/mod_devicetable.h
linux-x.x.x/include/linux/netdev_features.h
linux-x.x.x/include/linux/pci_ids.h
linux-x.x.x/include/linux/platform_data/usb-omap.h
linux-x.x.x/include/linux/power_supply.h
linux-x.x.x/include/linux/rbtree.h
linux-x.x.x/include/linux/refcount.h
linux-x.x.x/include/linux/swab.h
linux-x.x.x/include/linux/usb.h
linux-x.x.x/include/linux/usb_usual.h
linux-x.x.x/include/linux/usb/ch9.h
linux-x.x.x/include/linux/usb/chipidea.h
linux-x.x.x/include/linux/usb/cdc.h
linux-x.x.x/include/linux/usb/ehci-dbgp.h
linux-x.x.x/include/linux/usb/ehci_def.h
linux-x.x.x/include/linux/usb/hcd.h
linux-x.x.x/include/linux/io-64-nonatomic-lo-hi.h
linux-x.x.x/include/linux/usb/of.h
linux-x.x.x/include/linux/usb/otg.h
linux-x.x.x/include/linux/usb/otg-fsm.h
linux-x.x.x/include/linux/usb/phy.h
linux-x.x.x/include/linux/usb/quirks.h
linux-x.x.x/include/uapi/asm-generic/ioctl.h
linux-x.x.x/include/uapi/linux/byteorder/little_endian.h
linux-x.x.x/include/uapi/linux/pci_regs.h
linux-x.x.x/include/uapi/linux/stat.h
linux-x.x.x/include/uapi/linux/swab.h
linux-x.x.x/include/uapi/linux/usb/ch11.h
linux-x.x.x/include/uapi/linux/usb/ch9.h
linux-x.x.x/include/uapi/linux/usb/charger.h
linux-x.x.x/include/uapi/linux/usb/cdc.h
linux-x.x.x/lib/ctype.c
linux-x.x.x/lib/find_bit.c