mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-20 17:52:52 +00:00
dde_linux: remove legacy_rpi_usb_host_drv
* Cleanup the dde_linux port Fix genodelabs/genode#4965
This commit is contained in:
parent
175ec07c06
commit
ec60ad3a80
@ -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
|
@ -1 +1 @@
|
||||
7bf3bf76c9c7c9efdef30f0be5e10b16143dbf95
|
||||
5a43907af132d86664c0b4595a4e6d7d39d40fc2
|
||||
|
@ -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 :
|
||||
|
@ -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
@ -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);
|
||||
}
|
@ -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
@ -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_ */
|
@ -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);
|
@ -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_ */
|
@ -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);
|
||||
}
|
@ -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();
|
||||
}
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
Loading…
x
Reference in New Issue
Block a user